PHP Handbuch

PHP Handbuch

Stig Sæther Bakken, Alexander Aulbach, Egon Schmid, Jim Winstead, Lars Torben Wilson, Rasmus Lerdorf, Andrei Zmievski, Jouni Ahto

Herausgegeben von

Egon Schmid

Bei der bersetzung wirkten mit:

Sebastian Bergmann, Friedhelm Betz, Cornelia Boenigk, Ali Chahvand, Wolfgang Drews, Ralf Ebert, Thomas Fromm, Johann-Peter Hartmann, Hartmut Holzgraefe, Martin Jansen, Michael Kaiser, Mark Kronsbein, Hakan Kckyilmaz, Sven Lauer, Jan Lehnardt, Sebastian Nohn, Catharina Paulsen, Peter Petermann, Georg Richter, Stefan Saasen, Martin Samesch, Egon Schmid, Thomas Schfbeck, Holger Schranz, Thomas Schrmann, Uwe Steinmann, Christian Ullrich, Mark Wiesemann

Diese Datei wurde generiert am: Thu Apr 29 02:15:22 2004
Die aktuelle Version finden Sie auf http://www.php.net/docs.php.

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 PHP-Dokumentationsgruppe


PHP Handbuch

Stig Sæther Bakken
Alexander Aulbach
Egon Schmid
Jim Winstead
Lars Torben Wilson
Rasmus Lerdorf
Andrei Zmievski
Jouni Ahto

Herausgegeben von

Egon Schmid
Bei der Übersetzung wirkten mit:
Sebastian Bergmann
Friedhelm Betz
Cornelia Boenigk
Ali Chahvand
Wolfgang Drews
Ralf Ebert
Thomas Fromm
Stefan Hanauska
Johann-Peter Hartmann
Hartmut Holzgraefe
Martin Jansen
Michael Kaiser
Mark Kronsbein
Hakan Kücükyilmaz
Sven Lauer
Jan Lehnardt
Sebastian Nohn
Tobias Orterer
Catharina Paulsen
Peter Petermann
Sebastian-H. Picklum
Franziskus Domig
Georg Richter
Stefan Saasen
Martin Samesch
Egon Schmid
Thomas Schöfbeck
Holger Schranz
Thomas Schürmann
Uwe Steinmann
Christian Ullrich
Mark Wiesemann

29-04-2004

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 der PHP-Dokumentationsgruppe

Vorwort
I. Einführung
1. Einleitung
2. Kleines Tutorial
3. Installation
4. Konfiguration
II. Sprachreferenz
5. Grundlagen der Syntax
6. Typen
7. Variablen
8. Konstanten
9. Ausdrücke
10. Operatoren
11. Kontroll-Strukturen
12. Funktionen
13. Klassen und Objekte
14. Referenzen in PHP
III. Sicherheit
15. Sicherheit
IV. Features
16. HTTP-Authentifizierung mit PHP
17. Cookies
18. Steuerung von Dateiuploads
19. Zugriff auf entfernte Dateien
20. Verbindungssteuerung
21. Persistente Datenbankverbindungen
22. Safe Mode
23. PHP auf der Kommandozeile
V. Funktionsreferenz
I. Apache-spezifische Funktionen
II. Array Funktionen
III. Aspell Funktionen [veraltet]
IV. Mathematische Funktionen mit beliebiger Genauigkeit
V. Bzip2 Komprimierungsfunktionen
VI. Kalender-Funktionen
VII. CCVS API Funktionen
VIII. COM Support Funktionen für Windows
IX. Klassen- und Objekt-Funktionen
X. ClibPDF Funktionen
XI. Crack Funktionen
XII. cURL, Client URL Bibiothek-Funktionen
XIII. Cybercash Bezahl Funktionen
XIV. Cyrus IMAP administration Functions
XV. Character type functions
XVI. dba Datenbank (dbm-style) Abstraktions-Funktionen
XVII. Datums- und Zeit-Funktionen
XVIII. dBase Funktionen
XIX. DBM Datenbankfunktionen
XX. dbx Funktionen
XXI. DB++ Functions
XXII. Direkte Ein-/Ausgabe Funktionen
XXIII. Verzeichnis-Funktionen
XXIV. DOM XML Funktionen
XXV. .NET Funktionen
XXVI. Error Handling and Logging Functions
XXVII. File Alteration Monitor Functions
XXVIII. FrontBase Funktionen
XXIX. filePro Funktionen
XXX. Funktionen des Dateisystems
XXXI. Forms Data Format Funktionen
XXXII. FriBiDi Funktionen
XXXIII. FTP-Funktionen
XXXIV. Function Handling functions
XXXV. GNU Gettext
XXXVI. GMP Functions
XXXVII. HTTP functions
XXXVIII. Hyperwave Functions
XXXIX. Hyperwave API Functions
XL. iconv Funktionen
XLI. Grafik-Funktionen
XLII. IMAP, POP3 und NNTP Funktionen
XLIII. Informix Funktionen
XLIV. InterBase-Funktionen
XLV. Ingres II Funktionen
XLVI. IRC Gateway Funktionen
XLVII. Java
XLVIII. LDAP Funktionen
XLIX. LZF Functions
L. Mail-Funktionen
LI. mailparse Functions
LII. Mathematische Funktionen
LIII. Multibyte String Functions
LIV. MCAL Funktionen
LV. Mcrypt Encryption Functions
LVI. MCVE Payment Functions
LVII. Hash Funktionen
LVIII. Mimetype Functions
LIX. Microsoft SQL Server Funktionen
LX. Ming functions for Flash
LXI. Sonstige Funktionen
LXII. mnoGoSearch Funktionen
LXIII. mSQL Funktionen
LXIV. MySQL Funktionen
LXV. Verbesserte MySQL Erweiterung
LXVI. Mohawk Software Session Handler Funktionen
LXVII. muscat Functions
LXVIII. Netzwerk Funktionen
LXIX. Ncurses Terminal Screen Control Functions
LXX. Lotus Notes Functions
LXXI. NSAPI-specific Functions
LXXII. ODBC Funktionen
LXXIII. Object Aggregation/Composition Functions
LXXIV. Oracle 8 Funktionen
LXXV. OpenSSL Funktionen
LXXVI. Oracle Funktionen
LXXVII. Ovrimos SQL Functions
LXXVIII. Funktionen zur Ausgabesteuerung
LXXIX. Object property and method call overloading
LXXX. PDF Funktionen
LXXXI. Verisign Payflow Pro Funktionen
LXXXII. PHP Optionen und Informationen
LXXXIII. POSIX Funktionen
LXXXIV. PostgreSQL Funktionen
LXXXV. Process Control Functions
LXXXVI. Funktionen zur Programmausführung
LXXXVII. Printer Functions
LXXXVIII. Pspell Funktionen
LXXXIX. GNU Readline
XC. GNU Recode Funktionen
XCI. Reguläre Ausdrücke Funktionen (Perl-kompatibel)
XCII. qtdom Functions
XCIII. Reguläre Ausdrücke Funktionen (POSIX erweitert)
XCIV. Semaphor und Shared Memory Funktionen
XCV. SESAM Datenbankfunktionen
XCVI. Session Funktionen
XCVII. Shared Memory Funktionen (Gemeinsamer Speicher)
XCVIII. SimpleXML functions
XCIX. SOAP Functions
C. SQLite
CI. Shockwave Flash Funktionen
CII. SNMP Funktionen
CIII. Socket Funktionen
CIV. Standard PHP Library (SPL) Functions
CV. Stream Functions
CVI. String-Funktionen
CVII. Sybase Funktionen
CVIII. TCP Wrappers Functions
CIX. Tidy Functions
CX. Tokenizer Functions
CXI. URL Funktionen
CXII. Variablen-Funktionen
CXIII. vpopmail Functions
CXIV. W32api Functions
CXV. WDDX Funktionen
CXVI. XML Parser Functions
CXVII. XML-RPC Functions
CXVIII. xdiff Functions
CXIX. XSL functions
CXX. XSLT Funktionen
CXXI. YAZ Functions
CXXII. YP/NIS Funktionen
CXXIII. ZIP Funktionen (Lesezugriff)
CXXIV. Zlib Komprimierungsfunktionen
VI. Zend API
24. Overview
25. Extension Possibilities
26. Source Layout
27. PHP's Automatic Build System
28. Creating Extensions
29. Using Extensions
30. Troubleshooting
31. Source Discussion
32. Accepting Arguments
33. Creating Variables
34. Duplicating Variable Contents: The Copy Constructor
35. Returning Values
36. Printing Information
37. Startup and Shutdown Functions
38. Calling User Functions
39. Initialization File Support
40. Where to Go from Here
41. Reference: Some Configuration Macros
42. API Macros
VII. PHP API: Schnittstellen für Programmierer
43. Streams API for PHP Extension Authors
VIII. FAQ: Frequently Asked Questions
44. Allgemeine Informationen
45. Mailing-Listen
46. Obtaining PHP
47. Database issues
48. Installation
49. Probleme bei der Compilierung
50. PHP benutzen
51. PHP und HTML
52. PHP and COM
53. PHP und andere Sprachen
54. Von PHP 2 auf PHP 3 umsteigen
55. Von PHP 3 auf PHP 4 umsteigen
56. Verschiedene Fragen
IX. Anhang
A. Die Geschichte von PHP und verwandten Projekten
B. Migrating from PHP 4 to PHP 5
C. Migrating from PHP 3 to PHP 4
D. Migration von PHP/FI 2.0 zu PHP 3.0
E. Der PHP-Debugger
F. Extending PHP 3
G. Liste der Funktion Aliase
H. Reservierte Wörter in PHP
I. Liste von Ressourcentypen
J. List of Supported Protocols/Wrappers
K. List of Available Filters
L. List of Supported Socket Transports
M. PHP type comparison tables
N. List of Parser Tokens
O. Über das Handbuch
P. Open Publication License
Q. Funktions-Index
R. Fehlendes
X. Windows HTML Hilfe
57. Über diese Ausgabe
58. Using PHP Manual CHM Edition
59. The Full Text Search
60. Specialities of this Edition
61. Integrating the PHP Manual
62. Skin development
63. CHM Edition Credits

Nach vorne
Vorwort


Vorwort

PHP ist die Abkürzung für "PHP: Hypertext Preprocessor", eine weitverbreitete Open Source Skriptsprache speziell für Webentwicklungen. PHP läßt sich in HTML einbinden. Seine Syntax erinnert an C, Java und Perl und es ist einfach zu erlernen. Das Hauptziel dieser Sprache ist es, Webentwicklern die Möglichkeit zu geben, schnell dynamisch generierte Webseiten zu erzeugen. Aber PHP kann noch mehr.

Dieses Handbuch besteht vorranging aus einer Funktionsreferenz, enthält aber zusätzlich auch eine Sprachreferenz, Erklärungen zu den wichtigsten Features und anderen ergänzenden Informationen.

Sie können dieses Handbuch in verschiedenen Formaten unter http://www.php.net/docs.php herunterladen. Die Downloads werden aktualisert sobald sich der Inhalt verändert. Weitere Informationen wie dieses Handbuch erstellt wird finden Sie im Anhang unter dem Kapitel 'Über dieses Handbuch'.

Zurück | Zum Anfang | Nach vorne
PHP Handbuch |  | Einführung


Einführung

PHP Handbuch
Zurück Nach vorne

I. Einführung

Inhaltsverzeichnis
1. Einleitung
2. Kleines Tutorial
3. Installation
4. Konfiguration

Zurück | Zum Anfang | Nach vorne
Vorwort |  | Einleitung


Einleitung

PHP Handbuch
Zurück Nach vorne

Kapitel 1. Einleitung

Inhaltsverzeichnis
Was ist PHP?
Was kann PHP?

Was ist PHP?

PHP PHP (Akronym für "PHP: Hypertext Preprocessor") ist eine weit verbreitete und für den allgemeinen Gebrauch bestimmte Open Source Skriptsprache, welche speziell für die Webprogrammierung geeignet ist, und in HTML eingebettet werden kann.

Hört sich einfach an, aber was heißt es genau? Ein Beispiel:

Beispiel 1-1. Ein einleitendes Beispiel

<html>
    <head>
        <title>Beispiel</title>
    </head>
    <body>

        <?php
        echo "Hallo, ich bin ein PHP-Skript!";
        ?>

    </body>
</html>

Beachten Sie den Unterschied zu einem Skript, welches in anderen Sprachen wie Perl oder C geschrieben wurde -- anstatt ein Programm mit vielen Anweisungen zur Ausgabe von HTML zu schreiben, schreibt man einen HTML-Code mit einigen eingebetteten Anweisungen, um etwas auszuführen (z.B. um - wie oben - Text auszugeben). Der PHP-Code steht zwischen speziellen Anfangs- und Schlusstags, mit denen man in den PHP-Modus und zurück wechseln kann.

Was PHP von clientseitigen Sprachen wie Javaskript unterscheidet, ist dass der Code auf dem Server ausgeführt wird. Sollten Sie ein Skript wie das obige auf ihrem Server ausführen, würde der Besucher nur das Ergebnis empfangen, ohne die Möglichkeit herauszufinden, wie der zugrundeliegende Code aussieht. Sie können ihren Webserver auch anweisen, alle ihre HTML-Dateien mit PHP zu parsen, denn dann gibt es wirklich nichts, das dem Benutzer sagt, was sie in petto haben.

Das Beste an der Verwendung von PHP ist, dass es für Neulinge extrem simpel ist, aber auch einen riesigen Funktionsumfang für den professionellen Programmierer bietet. Scheuen Sie sich nicht, die lange Liste der PHP-Funktionen zu lesen. Sie können einsteigen, und binnen weniger Stunden bereits mit dem Schreiben von einfachen Skripten beginnen.

Auch wenn die Entwicklung von PHP auf serverseitige Skripte fokussiert ist, können Sie mit PHP weitaus mehr anstellen. Lesen Sie mehr im Abschnitt Was kann PHP?

Zurück | Zum Anfang | Nach vorne
Einführung | Nach oben | Was kann PHP?


Was kann PHP?

Alles. PHP ist hauptsächlich auf serverseitige Skripte fokussiert, weshalb Sie alles tun können, was auch ein anderes CGI Programm kann, wie z.B. Formulardaten sammeln, dynamische Inhalte für Websites generieren oder Cookies senden und empfangen. Aber PHP kann noch viel mehr.

Es gibt drei Hauptgebiete, in denen PHP Skripte genutzt werden.

  • Serverseitige Skripte. Dies ist das traditionelle und auch Hauptfeld von PHP. Sie benötigen dazu drei Dinge. Den PHP Parser (CGI oder Server-Modul), einen Webserver und einen Webbrowser. Sie müssen den Webserver, verbunden mit einer PHP Installation laufen lassen. Sie können Sich Ausgabe der PHP Programme über den Server mit einem Webbrowser ansehen. Für weitere Informationen lesen Sie bitte im Abschnitt Installation weiter.

  • Skripte auf der Kommandozeile. Sie können auch PHP Skripte schreiben, um sie ohne einen Server oder einen Browser laufen zu lassen. Hierfür benötigen Sie nur den PHP Parser. Diese Art der Verwendung ist für die regelmäßig auszuführende Skripte mittels cron (unter *nix oder Linux) oder dem Task Scheduler (unter Windows). Diese Skripte können auch für einfache Aufgaben zur Verarbeitung von Text verwendet werden. Weitere Informationen dazu finden Sie im Abschnitt Using PHP from the command line.

  • Schreiben clientseitiger GUI Applikationen. PHP ist wahrscheinlich nicht die allerbeste Sprache um GUI-Applikationen zu schreiben, aber wenn Sie PHP sehr gut kennen und einige weiterführende Funktionen in Ihren clientseitigen Applikationen nutzen möchten, können Sie PHP-GTK nutzen, um derartige Programme zu schreiben. Auf diese Art haben Sie auch die Möglichkeit, Plattformübergreifende Applikationen zu schreiben. PHP-GTK ist eine Erweiterung von PHP, welche in der Hauptdistribution nicht enthalten ist. Sollten Sie daran interessiert sein, besuchen Sie die PHP-GTK Website.

PHP kann auf allen gängigen Betriebssystemen verwendet werden, inkl. Linux, vielen Unix-Varianten (inkl. HP-UX, Solaris und OpenBSD), Microsoft Windows, Mac OS X, RISC OS, und wahrscheinlich anderen. PHP unterstützt auch die meisten der heute gebräuchlichen Webserver. Dies umfasst Apache, Microsoft Internet Information Server, Personal Web Server, Netscape und iPlanet Server, Oreilly Website Pro Server, Caudium, Xitami, OmniHTTPd, und viele andere. Für den Großteil der Server bietet PHP ein eigenes Modul, für die anderen, welche den CGI Standard unterstützen, kann PHP als CGI Prozessor arbeiten.

So haben Sie Freiheit, PHP auf dem Betriebssystem und dem Webserver Ihrer Wahl laufen zu lassen. Weiters können Sie je nach Vorliebe prozedural, objektorientiert, oder gemischt programmieren. Auch wenn in der derzeitigen Version von PHP nicht jedes Standard OOP Feature realisiert ist, sind viele Bibliotheken und große Applikationen (inklusive der PEAR Bibliothek) exklusiv unter Verwendung von OOP Code geschrieben worden.

Mit PHP sind Sie nicht auf die Ausgabe von HTML beschränkt. Seine Fähigkeiten umfassen auch das dynamische Generieren von Bildern, PDF Dateien und Flash Animationen (mittels libswf und Ming). Sie können auch leicht jede Art von Text, wie XHTML oder irgendeine andere XML Datei ausgeben. PHP kann diese Dateien automatisch generieren und im Dateisystem speichern, anstatt diese nur auszugeben bzw. auszudrucken, und formt auch serverseitigen Zwischenspeicher Ihrer dynamischen Inhalte.

Vielleicht die größte und bemerkenswerteste Stärke von PHP ist seine Unterstützung für eine breite Masse von Datenbanken. Eine datenbankgestützte Website zu erstellen ist unglaublich einfach. Die folgenden Datenbanken werden zur Zeit unterstützt:

Adabas D | Ingres | Oracle (OCI7 und OCI8)
dBase | InterBase | Ovrimos
Empress | FrontBase | PostgreSQL
FilePro (nur Lesezugriff) | mSQL | Solid
Hyperwave | Direct MS-SQL | Sybase
IBM DB2 | MySQL | Velocis
Informix | ODBC | Unix dbm

Wir haben auch die Erweiterung DBX zur Datenbankabstraktion, welche Ihnen die transparente Verwendung irgendeiner von dieser Erweiterung unterstützten Datenbank erlaubt. Weiters unterstützt PHP ODBC, den Open Database Connection Standard, mit welchem Sie sich zu jeder anderen diesen Weltstandard unterstützenden Datenbank verbinden können.

PHP unterstützt auch die Kommunikation mit anderen Services, welche Protokolle wie LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (auf Windows) und unzählige andere unterstützen. Sie können auch einfache Netzwerk Sockets öffnen, und unter Verwendung irgendeines Protokolls kommunizieren. PHP unterstützt auch WDDX (Web Distributed Data Exchange) zum Austausch komplexer Daten zwischen Programmiersprachen. Da wir gerade vom Zusammenwirken sprechen: PHP bietet auch Unterstützung zur Instantiierung von Java Objekten, und deren transparente Verwendung als PHP Objekte. Sie können auch unsere CORBA Erweiterung verwenden, um auf entfernte Objekte zuzugreifen.

PHP verfügt über äußerst hilfreiche Textverarbeitungsfunktionen, von den regulären Ausdrücken (POSIX erweitert oder Perl) bis zum Parsen von XML Dokumenten. Für den Zugriff und das Parsen von XML Dokumenten unterstützen wir die Standards SAX und DOM. Sie können unsere XSLT Erweiterung verwenden, um XML Dokumente zu transformieren.

Wenn Sie PHP im Bereich des E-Commerce nutzen, werden Sie Funktionen für Cybercash Payment, CyberMUT, VeriSign Payflow Pro und CCVS für Ihre Onlineprogramme zur Zahlungsabwicklung zu schätzen lernen.

Wir haben viele andere interessante Erweiterungen, wie mnoGoSearch für Suchmaschinen, die IRC Gateway Funktionen, viele Komprimierungswerkzeuge (gzip, bz2), Kalenderumrechnung, Übersetzung...

Wie Sie sehen können, reicht diese Seite nicht aus, um alle Möglichkeiten und Vorteile von PHP aufzulisten. Lesen Sie im Abschnitt Installation weiter, und konsultieren Sie auch die Funktionsreferenz für weitere Erläuterungen der einzelnen hier erwähnten Erweiterungen.

Zurück | Zum Anfang | Nach vorne
Einleitung | Nach oben | Kleines Tutorial


Kleines Tutorial

PHP Handbuch
Zurück Nach vorne

Kapitel 2. Kleines Tutorial

Inhaltsverzeichnis
Was brauche ich?
Ihre erste PHP-erweiterte Seite
Nützliches
Formulare verarbeiten
Alten Code mit neuen PHP-Versionen benutzen
Und weiter?

Auf diesen Seiten möchten wir Ihnen die Grundlagen von PHP in einem kleinen Tutorial vorstellen. Dieser Text behandelt nur das Erstellen von dynamischen Web-Seiten, obwohl PHP natürlich nicht nur dafür geeignet ist. Weitere Informationen finden Sie im Abschnitt Was kann PHP?.

Mit PHP erweiterte Web-Seiten werden wie normale HTML-Seiten behandelt. Sie können sie genauso wie normale HTML-Seiten erstellen und bearbeiten.

Was brauche ich?

In diesem Tutorial gehen wir davon aus, dass auf Ihrem Server die PHP-Unterstützung aktiviert ist und dass die Dateiendung .php PHP zugeordnet ist. Auf den meisten Servern ist dies die Standardeinstellung für PHP-Dateien, aber fragen Sie bitte Ihren Server-Administrator, um sicherzugehen. Wenn Ihr Server PHP unterstützt, müssen Sie nichts machen. Erstellen Sie einfach Ihre .php-Dateien und legen Sie diese in Ihr Web-Verzeichnis - der Server wird sie dann für Sie parsen. Sie müssen nichts kompilieren und auch keine Zusatz-Tools installieren. Stellen Sie sich diese PHP-erweiterten Dateien wie normale HTML-Seiten mit einer ganzen Familie von "magischen" Tags, die Sie verschiedenste Dinge tun lassen, vor.

Angenommen, Sie möchten Bandbreite sparen und lokal entwickeln. In diesem Fall müssen Sie einen Webserver wie z.B. Apache und natürlich PHP installieren. Sehr empfehlenswert ist auch die Installation einer Datenbank wie z.B. MySQL. Sie können diese Programm entweder eins nach dem anderen selbst installieren oder nach einem vorkonfigurierten Paket suchen, dass automatisch alle benötigen Programme mit einigen wenigen Mausklicks installieren kann. Es ist sehr einfach, einen Webserver mit PHP-Support unter jedem Betriebssystem, wie Linux oder Windows, zu installieren. Unter Linux ist rpmfind nützlich, um RPMs zu finden.

Zurück | Zum Anfang | Nach vorne
Was kann PHP? | Nach oben | Ihre erste PHP-erweiterte Seite


Ihre erste PHP-erweiterte Seite

Erstellen Sie eine Datei mit dem Namen hallo.php und speichern Sie sie im Root-Verzeichnis Ihres Webservers (DOCUMENT_ROOT) mit dem folgenden Inhalt:

Beispiel 2-1. Unser erstes PHP-Skript: hallo.php

<html>
<head>
  <title>PHP-Test</title>
</head>
<body>
<?php echo "<p>Hallo Welt</p>"; ?>
 </body>
</html>

Benutzen Sie Ihren Browser, um die Datei über den Webserver-URL aufzurufen. Der URL muss mit "/halle.php" enden. Wenn Sie lokal entwickeln, sieht der URL z.B. so aus: http://localhost/hallo.php oder http://127.0.0.1/hallo.php - andere Adressen sind aber, abhängig vom Webserver, auch möglich. Sie können sich auch die Direktiven DocumentRoot und ServerName in der Konfigurationsdatei Ihres Webservers für weitere Informationen anschauen (bei Apache lautet der Name dieser Datei httpd.conf). Wenn Sie alles korrekt installiert haben, wird die Datei von PHP geparst und Sie werden die folgende Ausgabe in Ihrem Browser sehen:

<html>
 <head>
  <title>PHP-Test</title>
 </head>
 <body>
 <p>Hallo Welt</p>
 </body>
</html>

Beachten Sie, dass dies nicht mit einem CGI-Skript vergleichbar ist. Die Datei muss nicht ausführbar oder sonst irgendwie speziell sein. Stellen Sie sich die Datei wie eine normale HTML-Datei vor, die eine spezielle Menge von Tags zur Verfügung stellt, mit denen Sie viele interessante Dinge machen können.

Das Beispiel ist extrem einfach und natürlich brauchen Sie PHP nicht, um eine Seite wie diese zu erstellen. Denn es macht nicht mehr, als Hallo Welt mit der echo()-Anweisung von PHP auszugeben.

Wenn Sie dieses Beispiel ausprobiert haben und Sie aber keine Ausgabe erhalten haben oder zum Download aufgefordert worden sind oder die komplette Datei als Text erhalten haben, dann ist es sehr wahrscheinlich, dass auf Ihrem Server PHP nicht aktiviert ist. Fragen Sie in diesem Fall Ihren Administrator und weisen Sie ihn auf das Installations-Kapitel hin. Wenn Sie lokal entwickeln, lesen Sie bitte das Installations-Kapitel, um festzustellen, ob alles richtig konfiguriert wurde. Sollten Ihre Probleme nach Lesen dieses Kapitels immer noch bestehen, zögern Sie nicht und nutzen Sie eines der vielen Support-Angebote.

Der wichtigste Punkt im Beispiel ist, Ihnen das spezielle PHP Tag-Format zu zeigen. Im Beispiel wurde <?php verwendet, um den Beginn eines PHP-Tags zu kennzeichnen. Anschließend folgte die PHP-Anweisung. Mit dem schließenden Tag, ?>, wurde der PHP-Modus wieder verlassen. Sie können an jeder Stelle und so oft Sie wollen, in den PHP-Modus wechseln und ihn wieder verlassen. Für weitere Details lesen Sie bitte den Abschnitt zu den Grundlagen der Syntax von PHP.

Anmerkung zu Text-Editoren: Es gibt eine ganze Reihe von Text-Editoren und Integrated Development Environments (IDEs), mit denen Sie Ihre PHP-Dateien erstellen, bearbeiten und managen können. Eine Liste solcher Programme finden Sie hier: PHP Editor's List. Wenn Sie einen Editor vorschlagen möchten, besuchen Sie bitte die genannte Seite und bitten Sie den Betreiber der Seite, dass er den Editor der Liste hinzufügt. Wir empfehlen Ihnen einen Editor zu benutzen, der Syntax-Highlighting bietet.

Anmerkung zu Textverarbeitungen: Textverarbeitungen wie StarOffice Writer, Microsoft Word und Abiword sind keine gute Wahl, um PHP-Dateien zu bearbeiten. Wenn Sie eines dieser Programme für dieses Test-Skript nutzen möchten, dann müssen Sie sicherstellen, dass die Datei als "Nur Text"-Datei gespeichert wird, da PHP sonst das Skript nicht lesen und nicht ausführen kann.

Anmerkung zu Notepad, dem Windows-Standard-Editor: Wenn Sie Ihre PHP-Skripte mit Notepad schreiben, müssen Sie sicherstellen, dass Ihre Dateien mit der Endung .php gespeichert werden. (Notepad fügt die Endung .txt automatisch an den Dateinamen an, wenn Sie das nicht mit einem der folgenden Schritte verhindern.) Wenn Sie die Datei speichern und einen Namen für die Datei eingeben sollen, dann setzen Sie den Dateinamen in Anführungszeichen (z.B. "hallo.php"). Alternativ können Sie auch im "Datei speichern"-Fenster in der Drop-Down-Liste "Dateityp" die Einstellung auf "Alle Dateien" ändern. Sie können dann den Dateinamen ohne Anführungszeichen eingeben.

Nachdem Sie jetzt erfolgreich ein einfaches, funktionierendes PHP-Skript geschrieben haben, wird es Zeit, das berühmteste PHP-Skript zu schreiben. Rufen Sie die Funktion phpinfo() auf und Sie bekommen viele nützliche Informationen über Ihr System und Ihre Installation wie z.B. die verfügbaren vordefinierten Variablen, die geladenen PHP-Module und die Konfigurations-Einstellungen. Nehmen Sie sich etwas Zeit und schauen Sie sich diese wichtigen Informationen an.

Zurück | Zum Anfang | Nach vorne
Kleines Tutorial | Nach oben | Nützliches


Nützliches

Kommen wir nun zu einem etwas nützlicheren Beispiel. Wir wollen prüfen, welchen Browser die Person, die die Seite besucht, benutzt. Um das zu tun, prüfen wir den "user agent"-String, den der Browser als Teil seiner HTTP-Anforderung sendet. Diese Information ist in einer Variablen abgelegt. In PHP beginnen Variablen immer mit einem Dollar-Zeichen. Die Variable, die uns jetzt interessiert, ist $_SERVER["HTTP_USER_AGENT"].

PHP Autoglobals-Anmerkung: $_SERVER ist eine speziell reservierte PHP-Variable, die alle Informationen über den Webserver enthält. Diese Variable wird auch als auto- oder superglobal bezeichnet. Mehr Informationen darüber Sie auf der Manual-Seite über Autoglobals. Diese speziellen Variablen wurden in PHP 4.1.0 eingeführt. Vorher wurden stattdessen die älteren $HTTP_*_VARS-Arrays benutzt, also z.B. $HTTP_SERVER_VARS. Auch wenn diese Variablen nicht mehr genutzt werden sollen - sie existieren weiterhin. (Beachten Sie auch die Seite Alten Code mit neuen PHP-Versionen benutzen.)

Um die Variable auszugeben, schreiben wir einfach:

Beispiel 2-2. Variable ausgeben (Array-Element)

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>

Die Ausgabe dieses Beispiel könnte so aussehen:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Es gibt viele Typen von Variablen. Im obigen Beispiel haben wir ein Array-Element ausgegeben. Arrays können sehr nützlich sein.

$_SERVER ist nur eine von vielen Variablen, die Ihnen automatisch von PHP zur Verfügung gestellt werden. Eine Liste finden Sie auf der Seite Reservierte Variablen im Manual. Eine vollständige Liste können Sie auch bekommen, wenn Sie eine Datei wie die folgende erstellen:

Beispiel 2-3. Alle vordefinierten Variablen mit phpinfo() ausgeben

<?php phpinfo(); ?>

Wenn Sie diese Datei in Ihrem Browser öffnen, sehen Sie eine Seite mit vielen Informationen über PHP zusammen mit einer Liste aller für Sie verfügbaren Variablen.

Sie können mehrere PHP-Anweisungen innerhalb eines PHP-Tags platzieren und so kleine Code-Blöcke schreiben, die mehr als nur eine Ausgabe mit echo() enthalten. Wenn wir zum Beispiel prüfen möchten, ob es sich beim Browser des Besuchers um den Internet Explorer handelt, können wir folgenden Code benutzen:

Beispiel 2-4. Beispiel, das Kontrollstrukturen und Funktionen benutzt

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
  echo "Sie benutzen Internet Explorer<br />";
}
?>

Die Ausgabe dieses Skripte könnte so aussehen:
Sie benutzen Internet Explorer<br />

Hier haben wir Ihnen eine ganze Reihe von neuen Konzepten vorgestellt. Wir haben hier zuerst eine if-Anweisung. Wenn Sie mit der Grundlagen-Syntax von der Programmiersprache C vertraut sind, sollte Ihnen dies logisch erscheinen. Wenn Sie C oder eine andere Sprache, die die obige Syntax benutzt, nicht gut genug kennen, dann sollten Sie sich ein Buch mit einer PHP-Einführung besorgen und die ersten Kapitel lesen. Sie können natürlich auch in die Sprachreferenz des Manuals schauen. Eine Liste von PHP-Büchern finden Sie unter http://www.php.net/books.php.

Das zweite hier vorgestellte Konzept ist der Aufruf der Funktion strstr(). strstr ist eine in PHP eingebaute Funktion, die nach einem String in einem anderen String sucht. In diesem Fall suchen wir nach "MSIE" in $_SERVER["HTTP_USER_AGENT"]. Wenn der String gefunden wird, gibt die Funktion TRUE zurück, wird er nicht gefunden, dann wird FALSE zurückgegeben. Wenn TRUE zurückgeben wird, wird die if-Anweisung zu TRUE ausgewertet und der Code innerhalb der geschweiften Klammern wird ausgeführt. Wenn aber FALSE zurückgegeben wird, wird der Code innerhalb der Klammern nicht ausgeführt. Probieren Sie weitere ähnliche Beispiele mit if, else und anderen Funktionen wie strtoupper() oder strlen(). Jede dieser Manual-Seiten enthält weitere Beispiele.

Wir können jetzt einen Schritt weitergehen und sehen, wie Sie innerhalb eines PHP-Blocks den PHP-Modus verlassen und wieder in ihn hinein gelangen können:

Beispiel 2-5. HTML- und PHP-Modus vermischt

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr muss true zurückgegeben haben</h3>
<center><b>Sie benutzen Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr muss false zurückgegeben haben</h3>
<center><b>Sie benutzen nicht Internet Explorer</b></center>
<?php
}
?>

Die Ausgabe dieses Skripts könnte so aussehen:
<h3>strstr muss true zurückgegeben haben</h3>
<center><b>Sie benutzen Internet Explorer</b></center>

Anstatt die PHP echo-Anweisung für die Ausgabe zu benutzen, haben wir den PHP-Modus verlassen und normales HTML verwendet. Der wichtige Punkt hierbei ist, dass der logische Ablauf des Skripts dadurch nicht gestört wird. Nur einer der beiden HTML-Blöcke wird ausgegeben - abhängig davon, ob strstr() TRUE oder FALSE zurückgibt bzw. ob der String MSIE gefunden wird oder nicht.

Zurück | Zum Anfang | Nach vorne
Ihre erste PHP-erweiterte Seite | Nach oben | Formulare verarbeiten


Formulare verarbeiten

Eine der mächtigsten Funktionen von PHP ist die Art, wie HTML-Formulare verarbeitet werden. Sie sollten wissen, dass jedes Element eines Formulars automatisch in Ihren PHP-Skripts verfügbar ist. Bitte lesen Sie die Seite Variablen außerhalb von PHP für weitere Informationen und Beispiele über das Benutzen von Formularen mit PHP. Hier ist ein Beispiel-HTML-Formular:

Beispiel 2-6. Ein einfaches HTML-Formular

<form action="action.php" method="POST">
 Ihr Name: <input type="text" name="name" />
 Ihr Alter: <input type="text" name="alter" />
 <input type="submit">
</form>

An diesem Formular ist nichts Besonderes. Es ist ein normales HTML-Formular ohne irgendwelche speziellen Tags. Wenn der Benutzer das Formular ausfüllt und den Submit-Button anklickt, wird die Seite action.php aufgerufen. Diese Datei könnte so aussehen:

Beispiel 2-7. Daten des Formulars ausgeben

Hallo <?php echo $_POST["name"]; ?>.
Sie sind <?php echo $_POST["alter"]; ?> Jahre alt.

Die Ausgabe des Skripts könnte dann so aussehen:
Hallo Joe.
Sie sind 22 Jahre alt.

Es sollte einfach zu verstehen sein, was hier passiert. Die Variablen $_POST["name"] und $_POST["alter"] werden für Sie automatisch von PHP gesetzt. Weiter oben haben wir das autoglobale Array $_SERVER eingeführt, jetzt benutzen wir hier das - ebenfalls autoglobale - Array $_POST, dass alle POST-Daten enthält. Beachten Sie, dass die im Formular verwendete Methode POST ist. Hätten wir GET verwendet, dann wären die Daten unseres Formulars stattdessen im autoglobalen Array $_GET verfügbar. Sie können auch das autoglobale Array $_REQUEST benutzen, wenn die Quelle der Daten keine Rolle spielt. Dieses Array enthält die GET-, POST-, COOKIE- und FILE-Daten. Vgl. auch die import_request_variables()-Funktion.

Zurück | Zum Anfang | Nach vorne
Nützliches | Nach oben | Alten Code mit neuen PHP-Versionen benutzen


Alten Code mit neuen PHP-Versionen benutzen

Dadurch dass PHP eine immer beliebtere Skriptsprache ist, gibt es immer mehr Quellen, die Ihnen Code-Listings zur Verfügung zu stellen. Die PHP-Entwickler haben versucht, den größten Teil der Sprache abwärtskompatibel zu halten. Das bedeutet, dass ein Skript, das für eine ältere PHP-Version geschrieben wurde, (im Idealfall) ohne Änderungen auch unter einer neueren PHP-Version läuft. In der Praxis sind aber meist einige Änderungen nötig.

Zwei der wichtigsten aktuellen Änderungen, die alten Code betreffen, sind:

  • Die Missbilligung der alten $HTTP_*_VARS-Arrays (die global gemacht werden mussten, wenn man sie innerhalb einer Funktion nutzen wollte). In PHP 4.1.0 wurden die folgenden autoglobalen Arrays eingeführt: $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_REQUEST und $_SESSION. Die älteren $HTTP_*_VARS-Arrays, wie $HTTP_POST_VARS, existierten bereits seit PHP 3 und sind auch immer noch verfügbar.

  • Externe Variablen werden standardmäßig nicht mehr im globalen Namensraum registriert. Mit anderen Worten, seit PHP 4.2.0 ist off die Standard-Einstellung für die PHP-Direktive register_globals. Die empfohlene Methode, auf diese Werte zuzugreifen, ist, die oben genannten autoglobalen Arrays zu verwenden. Ältere Skripte, Bücher und Tutorials gehen eventuell davon aus, dass diese Einstellung auf on steht. Wäre die Einstellung on, wäre die Variable $id aus der URL http://www.example.com/foo.php?id=42 verfügbar. Unabhängig davon, ob on oder off, ist immer $_GET['id'] verfügbar.

Für weitere Details über diese Änderungen siehe die Seite über vordefinierte Variablen und die Links dort.

Zurück | Zum Anfang | Nach vorne
Formulare verarbeiten | Nach oben | Und weiter?


Und weiter?

Mit dem Wissen, das Sie jetzt haben, sollte es Ihnen möglich sein, das meiste aus diesem Manual und die vielen Beispiel-Skripte in den Beispiel-Archiven zu verstehen. Sie können weitere auf den php.net-Seiten verfügbare Beispiele auf der folgenden Seite finden: http://www.php.net/links.php.

Zurück | Zum Anfang | Nach vorne
Alten Code mit neuen PHP-Versionen benutzen | Nach oben | Installation


Installation

PHP Handbuch
Zurück Nach vorne

Kapitel 3. Installation

Inhaltsverzeichnis
Generelle Überlegungen zur Installation
Unix/HP-UX Installationen
Unix/Linux Installationen
Unix/Mac OS X Installationen
Unix/OpenBSD Installation
Unix/Solaris Installation
Installation auf UNIX Systemen
Installation auf Windows Systemen
Server-CGI/Commandline
Server - Apache
Servers-Apache 2.0
Server - Caudium
Server - fhttpd
Servers-IIS/PWS
Servers-Netscape, iPlanet and SunONE
Servers-OmniHTTPd Server
Servers-Oreilly Website Pro
Servers-Sambar
Servers-Xitami
Servers-Other web servers
Problems?
Komplette Liste der Konfigurationsoptionen

Generelle Überlegungen zur Installation

Noch vor der Installation sollten Sie wissen, wofür Sie PHP einsetzen wollen. Es gibt drei Haupteinsatzbereiche von PHP, wie in dem Abschnitt Was kann PHP? beschrieben:

  • Serverseitige Skripte

  • Skripte auf der Kommandozeile

  • Clientseitige GUI Applikationen

Für den ersten und sehr weit verbreiteten Einsatzbereich benötigen Sie drei Dinge: PHP selbst, einen Webserver und einen Webbrowser. Sie haben wahrscheinlich bereits einen Webbrowser, und abhängig von Ihrer Betriebssystemkonfiguration haben Sie vielleicht auch schon einen Webserver (z.B. Apache auf Linux oder IIS auf Windows). Sie können Webspace bei einem Provider mieten. Dann benötigen Sie nichts selbst, sondern schreiben nur Ihre PHP Skripte, laden Sie zu dem gemieteten Server hoch, und sehen sich das Ergebnis in Ihrem Browser an.

Wenn Sie Ihren Server und PHP selbst installieren, können Sie zwischen zwei Methoden wählen, wie Sie PHP mit dem Server verbinden. PHP verfügt für viele Server über eine direkte Modulschnittstelle (auch SAPI genannt). Diese Server sind zum Beispiel Apache, Microsoft Internet Information Server, Netscape und iPlanet Server. Viele andere Server unterstützen die Microsoft Modulschnittstelle ISAPI (z.B. OmniHTTPd). Sollte PHP keine Modulschnittstelle für Ihren Webserver unterstützen, können Sie es immer über die CGI Schnittstelle betreiben. Das heißt, dass Sie Ihren Webserver so konfigurieren, dass bei jeder Anforderung von PHP Dateien an den Server das Kommandozeilenprogramm von PHP (php.exe auf Windows) zur Abarbeitung der Skripte benutzt wird.

Wenn Sie PHP auch für Skripte auf der Kommandozeile benutzen möchten (z.B. für Skripte, die offline entsprechend ein paar von Ihnen übergebenen Parametern automatisch Bilder erzeugen oder Textdateien verarbeiten), benötigen Sie das Kommandozeilenprogramm. Weitere Informationen hierzu finden Sie unter writing command line PHP applications. In diesem Fall benötigen Sie weder einen Server, noch einen Browser.

Sie können mit PHP und der PHP-GTK Erweiterung auch clientseitige GUI Applikationen erstellen. Dies ist ein völlig anderer Ansatz als das Schreiben von Webseiten, da Sie zwar kein HTML ausgeben, dafür aber Fenster und Objekte handhaben. Weitere Informationen zu PHP-GTK finden Sie auf der Webseite zu dieser Erweiterung. PHP-GTK ist nicht in offiziellen PHP Distribution enthalten.

Von nun an befasst sich dieser Abschnitt mit der Installation von PHP für Webserver auf Unix und Windows mit Servermodulen und CGI Schnittstellen.

Den Quellcode von PHP sowie die Binärdistributionen für Windows erhalten Sie unter http://www.php.net/. Wir empfehlen, den Download der Distributionen von dem Ihnen am nächsten liegenden Mirror durchzuführen.

Zurück | Zum Anfang | Nach vorne
Und weiter? | Nach oben | Unix/HP-UX Installationen


Unix/HP-UX Installationen

Dieser Abschnitt enthält Anmerkungen und Hinweise zur Installation von PHP auf HP-UX Systemen. (Beigesteuert von paul_mckay at clearwater-it dot co dot uk).

Anmerkung: Diese Tipps sind für PHP 4.0.4 und Apache 1.3.9.

  1. Sie brauchen gzip, holen Sie sich eine Binärdistribution von http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z dekomprimieren Sie die Datei, und installieren Sie sie mit swinstall

  2. Sie brauchen gcc, holen Sie sich eine Binärdistribution von http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz. Dekomprimieren Sie die Datei und installieren Sie gcc mit swinstall.

  3. Sie brauchen die GNU binutils, eine Binärdistribution können Sie von http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz herunterladen. Dekomprimieren Sie die Datei und installieren Sie binutils mit swinstall.

  4. Nun benötigen Sie bison, holen Sie sich eine Binärdistribution von http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz und installieren Sie sie wie o.a.

  5. Nun benötigen Sie flex, laden Sie sich den Sourcecode von einem der http://www.gnu.org Mirrors herunter. Er befindet sich in dem non-gnu Verzeichnis der FTP-Site. Downloaden Sie die Datei, gunzip, dann tar -xvf 'en Sie sie. Gehen Sie in das erstellte Verzeichnis flex, und führen ./configure aus, dann make, und dann make install.

    Sollten dabei Fehler auftreten liegt es vielleicht daran, dass gcc etc. nicht im PATH sind. Ist das der Fall, fügen Sie diese dem PATH hinzu.

  6. Laden Sie die Sourcecodes von PHP und Apache herunter.

  7. Führen Sie gunzip und tar -xvf an ihnen aus. Wir müssen einige Dateien ändern, damit sie richtig kompiliert werden können.

  8. Erst muss die Konfigurationsdatei geändert werden, denn es scheint als würde sie aus den Augen verlieren, dass sie auf einer hpux Maschine ist. Es gibt sicher einen besseren Weg dies zu tun, aber ein einfacher Weg ist es, lt_target=hpux10.20 in die Zeile 47286 des configure Skriptes zu schreiben.

  9. Als nächstes müssen wir die Apache GuessOS Datei ändern. Unter apache_1.3.9/src/helpers ändern Sie die Zeile 89 von echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0 auf: echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0.

  10. Sie können PHP nicht als Shared Object unter HP-UX installieren, weshalb Sie es statisch kompilieren müssen; folgen Sie einfach den Anweisungen auf der Apache Seite.

  11. Das Kompilieren von PHP und Apache sollte OK gehen, aber Apache wird nicht starten. Sie müssen einen neuen User für Apache einrichten, z.B. www oder apache. Dann ändern Sie die Zeilen 252 und 253 der conf/httpd.conf in Apache so, dass statt

    User nobody
Group nogroup

    etwas ähnliches steht wie

    User www
Group sys

    Das hat den Grund, dass Sie Apache unter HP-UX nicht als nobody laufen lassen können. Jetzt sollten Apache und PHP laufen.

Zurück | Zum Anfang | Nach vorne
Installation | Nach oben | Unix/Linux Installationen


Unix/Linux Installationen

Dieser Abschnitt enthält Anmerkungen und Hinweise zur Installation von PHP auf Linux Distributionen.

Pakete verwenden

Viele Linux Distributionen haben eine Art Paketinstallation, wie z.B. RPM. Das kann beim Setup einer Standardkonfiguration helfen, aber wenn Sie andere Features (wie einen Secure Server, oder einen anderen Datenbanktreiber) benötigen könnte es sein, dass ein Build von PHP und/oder Ihres Webservers nötig ist. Wenn Sie mit dem Erstellen und Kompilieren Ihrer Software nicht vertraut sind, sollten Sie sich nach einer von jemand anders bereits erstellten Paketversion von PHP mit den von Ihnen benötigten Features umsehen.

Zurück | Zum Anfang | Nach vorne
Unix/HP-UX Installationen | Nach oben | Unix/Mac OS X Installationen


Unix/Mac OS X Installationen

Dieser Abschnitt enthält Anmerkungen und Hinweise zur Installation von PHP auf dem Mac OS X Server.

Pakete verwenden

Es gibt ein paar vorgefertigte und kompilierte Pakete von PHP für Mac OS X. Das ist hilfreich um eine Standardkonfiguration aufzusetzen, doch sollten Sie eine davon abweichende Konfiguration benötigen (wie z.B. einen Secure Server oder einen anderen Datenbanktreiber), müssen Sie evtl. PHP und/oder Ihren Webserver selbst erstellen. Wenn Sie mit dem Erstellen und Kompilieren Ihrer Software nicht vertraut sind, sollten Sie sich nach einer von jemand anders bereits erstellten Paketversion von PHP mit den von Ihnen benötigten Features umsehen.

Kompilieren für OS X Server

Es gibt zwei leicht unterschiedliche Versionen von Mac OS X, den Client und den Server. Die folgende Beschreibung ist für OS X Server.

Beispiel 3-1. Mac OS X Server Installation

1. Beschaffen Sie sich die aktuellen Distributionen von Apache und PHP
2. Untar'en Sie sie, und starten configure an Apache wie folgt
    ./configure --exec-prefix=/usr \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --libexecdir=/System/Library/Apache/Modules \
    --iconsdir=/System/Library/Apache/Icons \
    --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
    --enable-shared=max \
    --enable-module=most \
    --target=apache

4. Sie können auch folgende Zeile hinzufügen:
    setenv OPTIM=-O2
    Wenn Sie wollen, dass der Compiler Optimierungen durchführt.

5. Wechseln Sie in das Verzeichnis mit dem PHP Source und führen configure aus
    ./configure --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --with-xml \
    --with-apache=/src/apache_1.3.12

    Wenn Sie andere Ergänzungen haben (MySQL, GD, etc.), fügen Sie diese
    hier hinzu. Geben Sie bei der Option --with-apache den Pfad zu dem
    Verzeichnis mit Ihrem Apache Source an, z.B. "/src/apache_1.3.12".
6. make
7. make install
    Dies fügt Ihrem Apache Source Verzeichnis das Verzeichnis
    src/modules/php4 hinzu.

8. Nun konfigurieren Sie Apache neu, inkl. PHP 4 Modul.
    ./configure --exec-prefix=/usr \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --libexecdir=/System/Library/Apache/Modules \
    --iconsdir=/System/Library/Apache/Icons \
    --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
    --enable-shared=max \
    --enable-module=most \
    --target=apache \
    --activate-module=src/modules/php4/libphp4.a

    Sollten Sie eine Meldung erhalten, dass libmodphp4.a nicht mehr gültig ist,
    wechseln Sie in Ihrem Apache Source Verzeichnis zu src/modules/php4 und
    führen folgenden Befehl aus:

    ranlib libmodphp4.a

    Gehen Sie dann in das Hauptverzeichnis des Apache Source zurück, und führen
    den obigen configure Befehl erneut aus. Das aktualisiert die Linktabelle.

9. make

10. make install

11. Kopieren Sie die Datei php.ini-dist von Ihrem Verzeichnis mit dem PHP 4
    Source in Ihr "bin" Verzeichnis, und benennen Sie sie um:
    cp php.ini-dist /usr/local/bin/php.ini

    oder (wenn Sie kein lokales Verzeichnis haben)

    cp php.ini-dist /usr/bin/php.ini

Kompilieren für MacOS X Client

Diese Tipps wurden freundlicherweise von Marc Liyanage zur Verfügung gestellt.

Das PHP Modul für den Apache Webserver ist in Mac OS X inkludiert. Diese Version unterstützt die MySQL und PostgreSQL Datenbanken.

Anmerkung: Vorsicht wenn Sie dies tun, Sie könnten Ihren Apache Webserver vermurksen!

Installationsschritte:

  • 1. Öffnen Sie ein Terminalfenster

  • 2. Geben Sie "wget http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz" ein, und warten Sie bis der Download beendet ist

  • 3. Geben Sie "gunzip libphp4.so.gz" ein

  • 4. Geben Sie "sudo apxs -i -a -n php4 libphp4.so" ein

Nun geben Sie "sudo open -a TextEdit /etc/httpd/httpd.conf" ein. TextEdit öffnet daraufhin die Konfigurationsdatei des Webservers. Suchen Sie diese beiden Zeilen in Richtung Dateiende: (Benutzen Sie den Befehl Find)
#AddType application/x-httpd-php .php
   #AddType application/x-httpd-php-source .phps
Entfernen Sie die beiden Rautezeichen (#), speichern die Datei, und beenden TextEdit.

Starten Sie mit "sudo apachectl graceful" den Webserver neu.

PHP sollte nun laufen. Sie können dies testen, indem Sie in Ihrem Verzeichnis "Sites" eine Datei mit dem Namen "test.php" erstellen und folgende Zeile hineinschreiben: "<?php phpinfo() ?>".

Nun öffnen Sie 127.0.0.1/~your_username/test.php in Ihrem Webbrowser. Sie sollten nun eine Tabelle mit Informationen über das PHP Modul sehen.

Zurück | Zum Anfang | Nach vorne
Unix/Linux Installationen | Nach oben | Unix/OpenBSD Installation


Unix/OpenBSD Installation

Dieser Abschnitt enthält Anmerkungen und Hinweise zur Installation von PHP auf OpenBSD 3.2.

Binärpakete verwenden

Die Installation von PHP auf OpenBSD mittels Binärpaketen ist die empfohlene und auch einfachste Methode. Das Kernpaket wurde von den verschiedenen Modulen getrennt, wodurch jedes Paket unabhängig von den anderen installiert und entfernt werden kann. Die nötigen Dateien finden Sie auf Ihrer OpenBSD CD oder auf der FTP Site.

Das zur Installation benötigte Hauptpaket ist php4-core-4.2.3.tgz, welches das Basisprogramm (plus gettext und iconv) enthält. Achten Sie als nächstes auf die Modulpakete, wie php4-mysql-4.2.3.tgz oder php4-imap-4.2.3.tgz. Sie müssen das phpxs Kommando verwenden, um diese Module in Ihrer php.ini zu aktivieren bzw. zu deaktivieren.

Beispiel 3-2. OpenBSD Paket Installationsbeispiel

# pkg_add php4-core-4.2.3.tgz
# /usr/local/sbin/phpxs -s
# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
  (in mysql hinzufügen)
# pkg_add php4-mysql-4.2.3.tgz
# /usr/local/sbin/phpxs -a mysql
  (in imap hinzufügen)
# pkg_add php4-imap-4.2.3.tgz
# /usr/local/sbin/phpxs -a imap
  (mysql als Test entfernen)
# pkg_delete php4-mysql-4.2.3
# /usr/local/sbin/phpxs -r mysql
  (Installation der PEAR Bibliotheken)
# pkg_add php4-pear-4.2.3.tgz

Weitere Informationen über Binärpakete auf OpenBSD finden Sie in der manpage packages(7).

Ports verwenden

Sie können PHP auch unter Verwendung des ports tree kompilieren. Dies wird jedoch nur Benutzern empfohlen, die mit OpenBSD vertraut sind. Der PHP4 Port ist in drei Unterverzeichnisse aufgeteilt: core, extensions und pear. Das Verzeichnis extensions generiert Sub-Pakete für alle unterstützten PHP Module. Wenn Sie keines dieser Module erstellen möchten, verwenden Sie den no_* FLAVOR. Um z.B. den Build des imap Moduls zu verhindern, setzen Sie den FLAVOR auf no_imap.

Ältere Versionen

Ältere Versionen von OpenBSD verwendeten das FLAVORS System, um PHP statisch verlinkt zu kompilieren. Da es schwer ist, Binärpakete mit dieser Methode zu erstellen, wird von dieser Methode abgeraten. Wenn Sie möchten, können Sie die alten stabilen Ports Trees weiterhin verwenden, jedoch werden diese von dem OpenBSD Team nicht unterstützt. Sollten Sie dazu Anmerkungen haben: Der derzeitige Verantwortliche für den Port ist Anil Madhavapeddy.

Zurück | Zum Anfang | Nach vorne
Unix/Mac OS X Installationen | Nach oben | Unix/Solaris Installation


Unix/Solaris Installation

Dieser Abschnitt enthält Anmerkungen und Hinweise zur Installation von PHP auf Solaris Systemen.

Benötigte Software

Solaris Installationen mangelt es oft an C Compilern und deren zugehörigen Tools. Sie benötigen folgende Software:

  • gcc (empfohlen, andere C Compiler können ebenfalls funktionieren)

  • make

  • flex

  • bison

  • m4

  • autoconf

  • automake

  • perl

  • gzip

  • tar

  • GNU sed

Zusätzlich werden Sie für die Installation (und vielleicht auch zum Kompilieren) eine andere, für Ihre Konfiguration spezifische Software benötigen, wie z.B. Oracle oder MySQL.

Pakete verwenden

Sie können den Installationsprozess auf Solaris vereinfachen, indem Sie pkgadd zur Installation der meisten benötigten Komponenten verwenden.

Zurück | Zum Anfang | Nach vorne
Unix/OpenBSD Installation | Nach oben | Installation auf UNIX Systemen


Installation auf UNIX Systemen

Dieser Abschnitt wird Sie durch die Konfiguration und Installation von PHP auf UNIX Systemen führen. Bevor Sie mit dem Prozess beginnen, lesen Sie bitte alle für Ihre Plattform oder Webserver relevanten Abschnitte.

Erforderliche Kenntnisse und Software:

  • Grundlegende UNIX-Kenntnisse (Sie sollten in der Lage sein, mit "make" und einem C-Compiler umzugehen, wenn Sie kompilieren)

  • Einen ANSI C Compiler (wenn Sie kompilieren)

  • flex (zum kompilieren)

  • bison (zum kompilieren)

  • Einen Web Server

  • Alle modulspezifischen Komponenten (wie z.B. gd, pdf libs, etc.)

Es gibt verschiedene Wege, PHP auf der Unix Plattform zu installieren. Entweder mit einem Kompilier- und Konfigurationsprozess, oder mittels verschiedener vorgefertigter Pakete. Diese Dokumentation ist hauptsächlich auf den Prozess des Kompilierens und Konfigurierens von PHP fokussiert.

Der Anfang des PHP Installations- und Konfigurationsprozesses wird von den Eingabeoptionen für das configure Skript gesteuert. Diese Seite umreißt die Verwendung der meisten allgemeinen Optionen, aber es gibt noch viele andere als Spielraum. Eine umfassende Übersicht finden Sie in der Kompletten Liste der Konfigurationsoptionen. Es gibt verschiedene Wege, PHP zu installieren:

  • Als ein Apache Modul oder ein Apache 2.x Modul.

  • Als ein Pike Modul für Caudium

  • Zur Verwendung mit AOLServer, NSAPI, phttpd, Pi3Web, Roxen, thttpd, oder Zeus.

  • Als ein CGI Programm

Apache Modul - Kurzanleitung

PHP kann auf unterschiedliche Arten kompiliert werden, aber eine der populärsten ist die als Apache Modul. Es folgt ein kurzer Überblick über die Installation.

Beispiel 3-3. Kurzanleitung zur Installation von PHP 4 (Apache Modul Version)

1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-x.x.x.tar.gz
4.  tar xvf php-x.x.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-x.x.x
8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-ftp
9.  make
10. make install
11. cd ../apache_1.3.x
12. ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install
15. cd ../php-x.x.x
16. cp php.ini-dist /usr/local/lib/php.ini
17. Editieren Sie nun Ihre httpd.conf oder srm.conf, und fügen Sie hinzu:
      AddType application/x-httpd-php .php

18. Starten Sie den Apache Web Server neu. (Sie müssen den Server beenden
    und neu starten, ein einfacher Reload mittels HUP oder USR1 Signal
    reicht nicht aus.)

Building

Wenn PHP konfiguriert ist, können Sie die ausführbare CGI Datei erstellen. Das Kommando make sollte das für Sie erledigen. Sollte dies scheitern und Sie nicht erkennen können warum, lesen Sie im Abschnitt Problem-Sektion weiter.

Zurück | Zum Anfang | Nach vorne
Unix/Solaris Installation | Nach oben | Installation auf Windows Systemen


Installation auf Windows Systemen

Dieser Abschnitt behandelt Windows 98/Me und Windows NT/2000/XP PHP läuft nicht auf 16 Bit-Plattformen wie z.B. Windows 3.1, und manchmal sprechen wir bei den unterstützten Plattformen von Win32. Seit PHP 4.3.0 wird auch Windows 95 nicht mehr unterstützt.

Es gibt zwei Wege PHP für Windows zu installieren: entweder manuell, oder mittels dem InstallShield Installer.

Wenn Sie Microsoft Visual Studio besitzen, können Sie auch den Source Code von PHP selbst kompilieren.

Haben Sie PHP erst einmal auf Ihrem Windows System installiert, können Sie als Erweiterung der Funktionalität auch verschiedene Erweiterungen laden.

Windows InstallShield

Der auf der Downloadseite http://www.php.net/downloads.php erhältliche Windows PHP Installer installiert die CGI Version von PHP, und konfiguriert auch die Webserver IIS, PWS, und Xitami.

Anmerkung: Beachten Sie bitte, dass der InstallShield Installer zwar eine einfache Art der Installation von PHP ist, gleichzeitig aber auch in verschiedenen Aspekten eingeschränkt ist, wie z.B. ein automatisches Setup von Erweiterungen nicht unterstützt wird. Das gesamte Angebot an unterstützten Erweiterungen ist nur verfügbar, wenn Sie die Binärdistribution im zip-Format herunterladen.

Installieren Sie Ihren gewünschten HTTP Server auf Ihrem System und stellen Sie sicher, dass er läuft.

Starten Sie nun das Installationsprogramm, und folgen Sie den Instruktionen des Installation Wizards. Es werden zwei Installationsarten unterstützt: Standard bietet zweckmäßige Standardeinstellungen wo dies möglich ist, und Advanced (erweitert), welche die gewünschten Einstellungen während der Installation abfragt.

Der Installation Wizard sammelt genug Informationen, um die php.ini zu erstellen, und den Webserver für den Einsatz von PHP zu konfigurieren. Für IIS und auch PWS auf Windows NT Workstation wird eine Liste mit den Knoten auf dem Server, sowie eine Liste mit den Script Mappings angezeigt aus welcher Sie die gewünschten Knoten auswählen können, auf denen PHP in die Script Mappings eingetragen werden soll.

Wenn die Installation fertig ist informiert Sie der Installer, ob Sie Ihr System oder den Server neu starten sollen, oder ob Sie einfach mit der Nutzung von PHP beginnen können.

Warnung

Seien Sie sich darüber im Klaren, dass dieses Setup von PHP nicht sicher ist. Wenn Sie ein sicheres Setup von PHP möchten, setzen Sie PHP manuell auf, und wählen jede Option sorgfältig aus. Dieses automatische Setup bietet Ihnen eine sofort lauffähige PHP Installation, ist jedoch nicht für den Einsatz auf Online-Servern gedacht.

Manuelle Installationsschritte

Diese Installationsanleitung hilft Ihnen, PHP auf Ihrem Windows Webserver manuell zu installieren und zu konfigurieren. Laden Sie sich hierfür bitte die gezippte Distribution von der Downloadseite http://www.php.net/downloads.php herunter. Die Originalversion dieser Anleitung wurde von Bob Silva verfasst, welche Sie auf http://www.umesd.k12.or.us/php/win32install.html finden.

Diese Anleitung unterstützt Sie bei der manuellen Installation für:

  • Personal Web Server 3 und 4 oder neuer

  • Internet Information Server 3 und 4 oder neuer

  • Apache 1.3.x

  • OmniHTTPd 2.0b1 und höher

  • Oreilly Website Pro

  • Xitami

  • Netscape Enterprise Server, iPlanet

PHP 4 für Windows gibt es in zwei Varianten - ein CGI Modul (php.exe), und verschiedene SAPI Module (z.B. php4isapi.dll). Letztere ist neu in PHP 4, und bietet eine signifikant höhere Performance, sowie neue Funktionalitäten. Zusätzlich gibt es eine CLI Version, die im Abschnitt Using PHP from the command line näher beschrieben ist.

Warnung

Die Qualität der SAPI Module wurde in PHP 4.1 signifikant erhöht. In älteren Systemen könnte es vorkommen, dass beim Server Fehlermeldungen auftreten, oder dass andere Servermodule wie z.B. ASP nicht funktionieren.

Wenn Sie eines der SAPI Module unter Windows 95 einsetzen möchten, holen Sie sich das DCOM Update von den Microsoft DCOM Seiten. Für das ISAPI Modul wird ein ISAPI 4.0 kompatibler Webserver benötigt (getestet wurden IIS 4.0, PWS 4.0 und IIS 5.0). IIS 3.0 wird NICHT unterstützt. Wenn Sie gediegene PHP Unterstützung wünschen, sollten Sie In diesem Fall den Windows NT 4.0 Option Pack mit IIS 4.0 downloaden.

Die folgenden Schritte sollten vor den serverspezifischen Instruktionen an allen Installationen durchgeführt werden.

  • Entpacken Sie die in der Distribution enthaltenen Dateien in ein Verzeichnis Ihrer Wahl. Wir empfehlen c:\php\. Sie sollten jedoch keinen Pfad wählen, in dem sich Leerzeichen befinden (z.B. c:\program files\php ist keine gute Idee), da sonst manche Webserver abstürzen könnten.

  • Stellen Sie sicher, dass die von PHP verwendeten DLLs gefunden werden können. Welche DLLs benötigt werden, hängt von dem verwendeten Webserver ab, und ob Sie PHP als CGI- oder Server-Modul einsetzen. php4ts.dll wird immer verwendet. Wenn Sie ein Server-Modul benutzen (z.B. ISAPI oder Apache), dann brauchen Sie die entsprechende DLL des sapi Verzeichnisses. Wenn Sie PHP extension DLLs benutzen, benötigen Sie diese ebenfalls. Um sicherzugehen, dass diese auch gefunden werden, können Sie sie entweder in das Systemverzeichnis (z.B. winnt/system32 oder windows/system) kopieren, oder Sie können sie in das gleiche Verzeichnis stellen, in welchem sich auch die von Ihrem Webserver benutzte EXE- bzw. DLL-Datei befindet (z.B. php.exe, php4apache.dll).

    Die PHP Programmdatei, die SAPI Module, und einige Erweiterungen benötigen externe DLLs. Stellen Sie sicher, dass diese DLLs der Distribution in einem Verzeichnis liegen, welches im Windows PATH liegt. Wenn Sie z.B. php_oci8.dll in der php.ini aktivieren, dann muss das Oracle Heimatverzeichnis im PATH sein, sodass PHP die oci.dll finden kann.

    Der einfachste Weg dazu ist, die nachstehenden Dateien in Ihr Systemverzeichnis zu kopieren. Dieses heißt gewöhnlich:

    c:\windows\system auf Windows 9x/ME
    c:\winnt\system32 auf Windows NT/2000
    c:\windows\system32 auf Windows XP

    Die zu kopierenden Dateien sind:

    php4ts.dll. Wenn sie dort bereits existiert, überschreiben Sie sie.
    Die Dateien in dem Verzeichnis 'dlls' Ihrer Distribution. Sollten diese Dateien bereits auf Ihrem System installiert sein, überschreiben Sie diese nur, wenn etwas nicht korrekt läuft (Vor dem Überschreiben empfehlen wir ein Backup, oder verschieben diese Dateien in ein anderes Verzeichnis - nur für den Fall dass etwas schiefgeht).

    Holen Sie sich die letzte Version der Microsoft Data Access Components (MDAC) für Ihre Plattform, speziell wenn Sie Windows 9x/NT4 benutzen. MDAC finden Sie unter http://msdn.microsoft.com/data/.

  • Kopieren Sie die gewünschte ini Datei (siehe unten) in Ihr '%WINDOWS%' Verzeichnis auf Windows 9x/ME, oder in Ihr '%SYSTEMROOT%' Verzeichnis unter Windows NT/2000/XP, und benennen Sie sie in php.ini um. Ihr '%WINDOWS%' oder '%SYSTEMROOT%' Verzeichnis ist normalerweise:

    c:\windows auf Windows 9x/ME/XP
    c:\winnt oder c:\winnt40 auf NT/2000 Servern

    In der Zip-Datei befinden sich zwei ini Dateien: php.ini-dist und php.ini-optimized. Wir empfehlen, die php.ini-optimized zu verwenden, da in dieser Datei die Default-Einstellungen für Performance und Sicherheit optimiert sind. Am besten ist es, all die ini Einstellungen selbst manuell vorzunehmen. Wenn Sie die bestmögliche Sicherheit erreichen wollen ist dies der Weg für Sie, auch wenn PHP mit den Standardeinstellungen gut läuft.

  • Editieren Sie Ihre Datei php.ini:

    • Tragen Sie bei 'extension_dir' Ihr PHP Installationsverzeichnis oder den Pfad zu Ihren php_*.dll Dateien ein. Bitte vergessen Sie nicht den letzten Rückstrich (Backslash). z.B.: c:\php\extensions\

    • Wenn Sie OmniHTTPd benutzen, überspringen Sie diesen Schritt. Geben Sie bei 'doc_root' das Dokumentenverzeichnis des Webservers an. z.B.: c:\apache\htdocs oder c:\webroot.

    • Wählen Sie nun die Erweiterungen (Module) aus, die beim Start von PHP geladen werden sollen. Lesen Sie in Windows Erweiterungen wie Sie eine davon aktivieren können, und welche bereits inkludiert sind. Bei einer Neuinstallation ist es ratsam, erst PHP zu installieren und zu testen, bevor Sie Erweiterungen in der php.ini aktivieren.

    • Bei PWS und IIS können Sie auch browscap.ini auf c:\windows\system\inetsrv\browscap.ini unter Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini unter NT/2000, und c:\windows\system32\inetsrv\browscap.ini unter XP. setzen.

    • Beachten Sie, dass das mibs Verzeichnis in der Windows Distribution Dateien für die SNMP Unterstützung enthält. Dieses Verzeichnis sollte nach DRIVE:\usr\mibs verschoben werden (DRIVE: ist das Laufwerk, auf dem PHP installiert ist).

    • Wenn Sie NTFS auf Windows NT, 2000 oder XP benutzen, stellen Sie sicher, dass der Benutzer unter dem der Webserver läuft, eine Leseberechtigung auf die php.ini hat (z.B. können Sie diese für alle zum Lesen freigeben).

  • Bei PWS erteilen Sie das Recht zum Ausführen auf das Web-Hauptverzeichnis:

    • Starten Sie den PWS Web Manager

    • Editieren Sie die Einstellungen des "Home"-Verzeichnisses

    • Wählen Sie das "execute" Auswahlkästchen aus

Den Source kompilieren

Bevor wir beginnen lohnt es sich, folgende Frage zu beantworten: "Warum ist das Kompilieren unter Windows so schwer?" Zwei Gründe drängen sich auf:

  1. Windows genießt (noch) keine große Gemeinschaft von Entwicklern welche auch bereit sind, deren Sourcecode frei zur Verfügung zu stellen. Als Ergebnis wurden die nötigen Investitionen in die für solche Entwicklungen nötige Infrastruktur nicht getätigt. Das meiste was verfügbar ist, wurde durch die Portierung der nötigen Werkzeuge von Unix möglich gemacht. Seien Sie deshalb nicht überrascht, wenn manches aus diesem Erbe von Zeit zu Zeit durchscheint.

  2. Fast alle der folgenden Instruktionen sind von der Art "Einstellen und vergessen". Deshalb lehnen Sie sich zurück, und folgen den nachstehenden Instruktionen so gewissenhaft wie möglich.

Anforderungen

Um PHP kompilieren und erstellen zu können, benötigen eine Microsoft Entwicklungsumgebung. Microsoft Visual C++ 6.0 wird empfohlen. Um die heruntergeladenen Dateien entpacken zu können, brauchen Sie ein Programm zum Dekomprimieren. Sollten Sie über kein derartiges Programm verfügen, erhalten Sie eine freie Version von InfoZip.

Bevor Sie beginnen, müssen Sie einiges downloaden...

  • ..die win32 buildtools von der PHP Seite auf http://www.php.net/extra/win32build.zip.

  • ..den Sourcecode für die von PHP benutzte DNS Namensauflösung unter http://www.php.net/extra/bindlib_w32.zip. Dies ist ein Ersatz für die in win32build.zip enthaltene Bibliothek resolv.lib.

  • Sollten Sie PHP als ein Apache-Modul kompilieren wollen, benötigen Sie auch die Apache Sourcecodes.

Letztendlich benötigen Sie noch die Sourcecodes von PHP 4 selbst. Sie erhalten die letzte Entwicklerversion mittels anonymen CVS, einem sog. Snapshot, oder dem Sourcecode der letzten offiziellen Version.

Alles zusammenfügen

Nach dem Download der benötigten Pakete dekomprimieren Sie diese an einer geeigneten Stelle.

  • Erstellen Sie ein Arbeitsverzeichnis, in dem sich nach dem Dekomprimieren alle Dateien befinden werden, z.B. c:\work.

  • Erstellen Sie das Verzeichnis win32build unter Ihrem Arbeitsverzeichnis (c:\work), und dekomprimieren Sie die win32build.zip hinein.

  • Erstellen Sie das Verzeichnis bindlib_w32 unter Ihrem Arbeitsverzeichnis (c:\work), und dekomprimieren Sie die bindlib_w32.zip hinein.

  • Dekomprimieren Sie den PHP Sourcecode in Ihr Arbeitsverzeichnis (c:\work).

Diesen Schritten folgend, sollte Ihre Verzeichnisstruktur wie folgt aussehen:

+--c:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-4.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

Erstellen Sie das Verzeichnis c:\usr\local\lib, und kopieren Sie bison.simple von c:\work\win32build\bin nach c:\usr\local\lib.

Anmerkung: Benutzer von Cygwin können den letzten auslassen. Eine entsprechend installierte Cygwin Umgebung bietet die erforderlichen Dateien bison.simple und bison.exe.

MVC ++ konfigurieren

Der nächste Vorbereitungsschritt ist die Konfiguration von MVC ++. Starten Sie Microsoft Visual C++, und wählen Sie im Menü Tools => Options aus. Wählen Sie in dem Dialog den Verzeichnis-Tab aus. Wechseln Sie zu Executables, Includes, and Library files. Ihre Einträge sollten wie folgt aussehen:

  • Executable files: c:\work\win32build\bin, Cygwin users: cygwin\bin

  • Include files: c:\work\win32build\include

  • Library files: c:\work\win32build\lib

resolv.lib erstellen

Sie müssen die resolv.lib Bibliothek erstellen. Entscheiden Sie, ob Sie die debug symbols verfügbar haben möchten (bindlib - Win32 Debug) oder nicht (bindlib - Win32 Release). Erstellen Sie die folgende Konfiguration:

  • Als Benutzer des GUI starten Sie VC++ und wählen Datei => Arbeitsbereich öffnen aus, navigieren zu c:\work\bindlib_w32 und selektieren bindlib.dsw. Dann wählen Sie Erstellen => Setze aktuelle Konfiguration und die gewünschte Konfiguration aus. Zum Schluss wählen Sie Erstellen => Rebuild All.

  • Als Benutzer der Kommandozeile stellen Sie sicher, dass Sie entweder die C++ Umgebungsvariablen registriert, oder vcvars.bat ausgeführt haben. Dann führen Sie eines der folgenden Kommandos aus:

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

Nun sollten Sie eine verwendbare resolv.lib in Ihrem c:\work\bindlib_w32\Debug oder Release Unterverzeichnis haben. Kopieren Sie diese Datei nach c:\work\win32build\lib, und überschreiben Sie die dort vorhandene Datei mit dem selben Namen.

Kompilieren

Der einfachste Weg zu beginnen, ist das Erstellen der CGI Version.

  • Wenn Sie das GUI benutzen: Starten Sie VC++, selektieren Sie Datei => Arbeitsbereich öffnen, und wählen Sie c:\work\php-4.x.x\win32\php4ts.dsw aus. Dann selektieren Sie Erstellen => Setze aktuelle Konfiguration, und wählen die gewünschte Konfiguration aus (entweder php4ts - Win32 Debug_TS oder php4ts - Win32 Release_TS). Letztendlich wählen Sie Erstellen => Rebuild All.

  • Wenn Sie die Kommandozeile benutzen stellen Sie sicher, dass die C++ Environmentvariablen registriert sind oder starten Sie vcvars.bat, und führen in dem Verzeichnis c:\work\php-4.x.x\win32 eines der folgenden Kommandos aus:

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"

    • Nun sollten Sie entweder in Ihrem Debug_TS oder Release_TS Unterverzeichnis eine verwendbare php.exe haben.

Durch editieren der main/config.win32.h.in ist es möglich, kleinere Adaptierungen zum Prozess des Erstellens vorzunehmen. So können Sie z.B. die inkludierten Erweiterungen, den Ort der php.ini, etc. ändern.

Als nächstes möchten Sie vielleicht die CLI Version erstellen, die für den Einsatz auf der Kommandozeile konzipiert wurde (PHP from the command line). Die Schritte sind die gleichen wie bei der CGI Version, außer dass Sie die Projektdateien php4ts_cli - Win32 Debug_TS bzw. php4ts_cli - Win32 Release_TS auswählen müssen. Nach dem erfolgreichen Kompilieren finden Sie die php.exe entweder in dem Verzeichnis Release_TS\cli\ oder in Debug_TS\cli\.

Anmerkung: Wenn Sie PEAR und das komfortable Installationsprogramm benutzen möchten, ist das CLI-SAPI erforderlich. Weitere Informationen zu PEAR und dem Installationsprogramm finden Sie in der Dokumentation auf der PEAR Webseite.

Um das SAPI Modul php4isapi.dll zur Integration von PHP mit Microsoft IIS zu erstellen, setzen Sie aktive Konfiguration auf php4isapi-wasimmer-config, und kompilieren Sie die gewünschte dll.

Installation von Windows Erweiterungen

Sind PHP und ein Webserver einmal auf Windows installiert, möchten Sie vielleicht einige Erweiterungen mit zusätzlicher Funktionalität installieren. Die folgende Tabelle beschreibt einige der verfügbaren Erweiterungen. Sie können Erweiterungen auswählen, welche beim Start von PHP geladen werden, indem Sie das Kommentarzeichen (';') in den entsprechenden 'extension=php_*.dll' Zeilen in der php.ini entfernen. Sie können ein Modul mittels dl() auch dynamisch laden.

Die DLLs für PHP Erweiterungen enthalten als Präfix 'php_' (und 'php3_' in PHP 3), um Verwechslungen zwischen PHP Erweiterungen und deren unterstützenden Bibliotheken zu vermeiden.

Anmerkung: In PHP 4.0.6 ist die Unterstützung für BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE, Session, WDDX und XML inkludiert. Um diese Funktionen zu benutzen, brauchen Sie keine zusätzlichen Erweiterungen zu laden. Eine Liste der bereits inkludierten Module befindet sich in der README.txt oder install.txt Ihrer Distribution.

Anmerkung: Einige Erweiterungen benötigen externe DLLs, wovon bereits einige im Verzeichnis 'dlls' der PHP Distribution enthalten sind. Manche Erweiterungen benötigen jedoch DLLs, welche nicht in der PHP Distribution enthalten sind, wie z.B. Oracle (php_oci8.dll).

Kopieren Sie die DLLs vom Verzeichnis 'dlls' in Ihren Windows PATH, gute Plätze sind:

c:\windows\system auf Windows 9x/Me
c:\winnt\system32 auf Windows NT/2000
c:\windows\system32 auf Windows XP

Sollten diese Dateien bereits auf Ihrem System installiert sein, überschreiben Sie diese nur, wenn etwas nicht korrekt läuft (Vor dem Überschreiben empfehlen wir ein Backup, oder verschieben diese Dateien in ein anderes Verzeichnis - nur für den Fall dass etwas schiefgeht).

Tabelle 3-1. PHP Erweiterungen (Extensions)

Erweiterung | Beschreibung | Anmerkungen
php_bz2.dll | bzip2 Komprimierungsfunktionen | Keine
php_calendar.dll | Kalender Umwandlungsfunktionen | Ist seit PHP 4.0.3 integriert
php_cpdf.dll | ClibPDF Funktionen | Keine
php_crack.dll | Crack Funktionen | Keine
php3_crypt.dll | Verschlüsselungsfunktionen | Keine
php_ctype.dll | ctype Funktionen | Keine
php_curl.dll | CURL, Client URL Bibliotheksfunktionen | Benötigt libeay32.dll, ssleay32.dll (bundled)
php_cybercash.dll | Cybercash Zahlungssystem Funktionen | Keine
php_db.dll | DBM Funktionen | Veraltet, verwenden Sie stattdessen DBA (php_dba.dll)
php_dba.dll | DBA Datenbank (dbm-style) Abstraktions-Funktionen | Keine
php_dbase.dll | dBase Funktionen | Keine
php3_dbm.dll | Berkeley DB2 Bibliothek | Keine
php_domxml.dll | DOM XML Funktionen | Benötigt libxml2.dll (bundled)
php_dotnet.dll | .NET Funktionen | Keine
php_exif.dll | Liest EXIF Headers einer JPEG-Grafik | Keine
php_fbsql.dll | FrontBase Funktionen | Keine
php_fdf.dll | FDF Forms Data Format Funktionen. | Benötigt fdftk.dll (bundled)
php_filepro.dll | filePro Funktionen | Nur Lesezugriff
php_ftp.dll | FTP Funktionen | Ist seit PHP 4.0.3 integriert
php_gd.dll | GD Bibliotheksfunktionen | Keine
php_gd2.dll | GD2 Bibliotheksfunktionen zur Bildmanipulation | Keine
php_gettext.dll | Gettext Funktionen | Benötigt gnu_gettext.dll (bundled)
php_hyperwave.dll | HyperWave Funktionen | Keine
php_iconv.dll | ICONV Zeichensatzumwandlung | Benötigt iconv-1.3.dll (bundled)
php_ifx.dll | Informix Funktionen | Benötigt Informix Bibliotheken
php_iisfunc.dll | IIS Managementfunktionen | keine
php_imap.dll | IMAP POP3 und NNTP Funktionen | PHP 3: php3_imap4r1.dll
php_ingres.dll | Ingres II Funktionen | Benötigt Ingres II Bibliotheken
php_interbase.dll | InterBase Funktionen | Benötigt gds32.dll (bundled)
php_java.dll | Java extension | Benötigt jvm.dll (bundled)
php_ldap.dll | LDAP Funktionen | Benötigt libsasl.dll (bundled)
php_mhash.dll | Mhash Funktionen | Keine
php_ming.dll | Ming Funktionen für Flash | Keine
php_msql.dll | mSQL Funktionen | Benötigt msql.dll (bundled)
php3_msql1.dll | mSQL 1 Client | unknown
php3_msql2.dll | mSQL 2 Client | unknown
php_mssql.dll | MSSQL Funktionen | Benötigt ntwdblib.dll (bundled)
php3_mysql.dll | MySQL Funktionen | In PHP 4 integriert
php3_nsmail.dll | Netscape Mail Funktionen | unknown
php3_oci73.dll | Oracle Funktionen | unknown
php_oci8.dll | Oracle 8 Funktionen | Benötigt Oracle 8 Client Bibliotheken
php_openssl.dll | OpenSSL Funktionen | Benötigt libeay32.dll (bundled)
php_oracle.dll | Oracle Funktionen | Benötigt Oracle 7 Client Bibliotheken
php_pdf.dll | PDF Funktionen | Keine
php_pgsql.dll | PostgreSQL Funktionen | Keine
php_printer.dll | Printer Funktionen | Keine
php_xslt.dll | XSLT Funktionen | Benötigt sablot.dll (bundled)
php_snmp.dll | SNMP get and walk Funktionen | Nur NT!
php_sybase_ct.dll | Sybase Funktionen | Benötigt Sybase Client Bibliotheken
php_yaz.dll | YAZ Funktionen | Keine
php_zlib.dll | ZLib Komprimierungsfunktionen | Keine

Zurück | Zum Anfang | Nach vorne
Installation auf UNIX Systemen | Nach oben | Server-CGI/Commandline


Server-CGI/Commandline

Standardmäßig wird PHP als ein CGI Programm kompiliert. Dies erstellt einen Kommandozeileninterpreter, welcher für CGI Processing oder für nicht webbezogene PHP Skripte verwendet werden kann. Haben Sie einen Webserver im Einsatz für welchen PHP eine Modulunterstützung bietet, sollten sie aus Performancegründen dieses Modul verwenden. Die CGI Version ermöglicht Apache Usern, verschiedene PHP Seiten unter verschiedenen User-IDs laufen zu lassen. Bitte lesen Sie das Kapitel Sicherheit, wenn Sie PHP als CGI verwenden.

Seit PHP 4.3.0 wurden PHP einige wichtige Dinge hinzugefügt. Es gibt ein neues SAPI, CLI genannt, welches den selben Namen trägt wie das CGI Programm. Was in {PREFIX}/bin/php installiert ist, ist von Ihrer 'Configure'-Zeile abhängig. Eine detaillierte Beschreibung dazu finden Sie im Abschnitt Using PHP from the command line.

Testen

Wenn Sie PHP als CGI Programm erstellt haben, können Sie Ihren Build mittels make test testen, was generell eine gute Idee ist. Damit können Sie ein eventuelles Problem mit PHP auf Ihrer Plattform erkennen, bevor Sie später damit zu kämpfen haben.

Benchmarking

Haben Sie PHP 3 als CGI Programm erstellt, können Sie Ihren Build mit make bench bewerten. Beachten Sie, dass wenn safe mode standardmäßig aktiviert ist, der Benchmark nicht fertiggestellt werden kann, sollte dieser länger als die erlaubten 30 Sekunden dauern. Der Grund dafür liegt in der Tatsache, dass set_time_limit() in safe mode nicht benutzt werden kann. Verwenden Sie die Konfigurationsoption max_execution_time, um diese Zeit für Ihre eigenen Skripte einzustellen. make bench ignoriert die Konfigurationsdatei.

Anmerkung: make bench ist nur in PHP 3 verfügbar.

Variablen verwenden

Manche vom Server zur Verfügung gestellten Umgebungsvariablen sind nicht der aktuellen CGI/1.1 Spezifikation enthalten. Nur die folgenden Variablen sind dort definiert, alles andere sollte als 'Anbieterspezifisch' betrachtet werden: AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL und SERVER_SOFTWARE

Zurück | Zum Anfang | Nach vorne
Installation auf Windows Systemen | Nach oben | Server - Apache


Server - Apache

Dieser Abschnitt enthält Anmerkungen und Tipps zur Installation von Apache mit PHP, sowohl für die Unix als auch für die Windows Version. Es gibt auch eine eigene Seite mit instructions and notes for Apache 2.

Details der Installation von PHP mit Apache auf Unix

Aus der Kompletten Liste der Konfigurationsoptionen können Sie die weitere Argumente für configure in Zeile 10 wählen. Um sicherzustellen, dass die folgenden Instruktionen nicht inkorrekt sind, wurden die Versionsnummern hier weggelassen. Ersetzen Sie bitte die hier angeführten 'xxx' mit den korrekten Werten Ihrer Dateien.

Beispiel 3-4. Installationsanweisungen (Apache Modulversion) für PHP 4

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx
10. ./configure --with-mysql --with-apxs=/www/bin/apxs
11. make
12. make install

  Wenn Sie Ihre Konfigurationsoptionen nach der Installation ändern
  möchten, müssen Sie nur die letzten 3 Schritte wiederholen. Sie
  müssen Apache nur neu starten, um das neue Modul einzubinden.
  Apache neu zu kompilieren ist nicht notwendig.

13. cp php.ini-dist /usr/local/lib/php.ini

  Sie können Ihre .ini Datei editieren, um PHP Optionen zu setzen. Wenn
  Sie diese Datei an einer anderen Stelle haben möchten, verwenden Sie
  --with-config-file-path=/path in Schritt 10.

14. Editieren Sie die httpd.conf oder srm.conf Datei und stellen Sie
    sicher, dass folgende Zeilen vorhanden und nicht auskommentiert sind:

   AddType application/x-httpd-php .php

   LoadModule php4_module        libexec/libphp4.so

  Hier können Sie jede gewünschte Erweiterung auswählen. .php wird
  vorgeschlagen. Sie können auch .html, und .php3 zwecks
  Rückwärtskompatibilität auswählen.

  Der Pfad auf der rechten Seite des LoadModule Satements muss auf den
  Pfad des PHP Moduls auf Ihrem System zeigen. Das obige Statement passt
  zu den oben gezeigten Schritten.

15. Starten Sie den Apache Server mittels Ihrer normalen Prozedur. (Sie
    müssen den Server stoppen und neu starten, und nicht nur mittels
    eines HUP oder ISR1 Signals einen Reload initiieren.)

Abhängig von Ihrer Apache Installation und Unix Variante gibt es viele mögliche Wege, den Server zu stoppen und neu zu starten. Nachstehend finden Sie einige typische Zeilen für einen Server Restart auf verschiedenen apache/unix Installationen. Ersetzen Sie /path/to/ mit dem Pfad zu diesen Applikationen auf Ihrem System.

1. Verschiedene Linux und SysV Varianten:
/etc/rc.d/init.d/httpd restart

2. Verwenden von apachectl Skripten:
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl und httpsdctl (verwendet OpenSSL), ähnlich wie apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. Verwenden von mod_ssl, oder einem anderem SSL Server möchten Sie
vielleicht manuell stoppen und starten:
/path/to/apachectl stop
/path/to/apachectl startssl

Die Orte wo sich die Programme apachectl und http(s)dctl befinden, sind oft unterschiedlich. Falls Ihr System über die Kommandos locate, whereis, oder which verfügt, können diese bei der Suche nach den Server Kontrollprogrammen sehr hilfreich sein.

Einige Beispiele zum Kompilieren von PHP für Apache:

./configure --with-apxs --with-pgsql

Dies erstellt eine libphp4.so Shared Library, welche in den Apache geladen wird, wenn eine LoadModule Zeile in der httpd.conf von Apache existiert. Die PostgreSQL Unterstützung ist in der libphp4.so Bibliothek eingelagert.

./configure --with-apxs --with-pgsql=shared

Dies erstellt ebenfalls eine libphp4.so Shared Library, jedoch wird zusätzlich auch eine pgsql.so Shared Library erstellt. Diese wird entweder aufgrund der Extension Option in der php.ini, oder durch die Verwendung der Funktion dl() in einem Skript von PHP geladen.

./configure --with-apache=/path/to/apache_source --with-pgsql

Dies erstellt eine libmodphp4.a Bibliothek, eine mod_php4.c sowie einige begleitende Dateien, und kopiert diese in das src/modules/php4 Verzeichnis im Apache Source Tree. Dann kompilieren Sie Apache mit --activate-module=src/modules/php4/libphp4.a, und das Apache Build System erstellt libphp4.a, und linkt es statisch in die httpd Binary. Die PostgreSQL Unterstützung ist in dieser httpd Binary inkludiert, was in einer einzigen httpd Binary inkl. komplettem Apache und komplettem PHP resultiert.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Wie vorher, außer dass die PostgreSQL Unterstützung nicht direkt in die httpd inkludiert, sondern eine pgsql.so Shared Library erstellt wird. Diese können Sie entweder mittels der Extension Option in der php.ini, oder direkt mittels dl() in PHP laden.

Bevor Sie sich für eine Methode PHP zu kompilieren entscheiden, sollten Sie die Vor- und Nachteile der jeweiligen Methode bedenken. Die Kompilation als verteiltes Objekt heißt, dass Sie Apache separat kompilieren können, und nicht für alles in PHP hinzugefügte bzw. geänderte neu kompilieren müssen. PHP direkt in Apache einzukompilieren (statische Methode) heißt, dass PHP schneller lädt und schneller läuft. Weitere Informationen finden Sie auf der Apache webpage on DSO support.

Anmerkung: Die httpd.conf von Apache kommt derzeit mit einem Abschnitt wie folgt:

User nobody
Group "#-1"

Wenn Sie diese Gruppe nicht auf "Group nogroup" oder etwas ähnliches ("Group daemon" ist auch weit verbreitet) ändern, kann PHP keine Dateien öffnen.

Anmerkung: Wenn Sie --with-apxs=/path/to/apxs verwenden, spezifizieren Sie die installierte Version von apxs. Sie sollten die in den Apache Sourcen enthaltene apxs Version NICHT verwenden, sondern jene, welche sich aktuell auf Ihrem System befindet.

Installation von PHP auf Windows mit Apache 1.3.x

Es gibt zwei Arten, PHP mit Apache 1.3.x unter Windows aufzusetzen. Eine ist die Verwendung des CGI Moduls (php.exe), die andere ist der Einsatz der Apache Modul DLL. In beiden Fällen müssen Sie den Apache Server stoppen und Ihre httpd.conf editieren, um Apache für die Zusammenarbeit mit PHP zu konfigurieren.

Es ist erwähnenswert, dass die Stabilität des SAPI Moduls erhöht wurde, und dass wir aufgrund der höheren Transparenz und Sicherheit den Einsatz gegenüber dem CGI Programm bevorzugt empfehlen.

Obwohl einige Variationen in der Konfiguration von PHP unter Apache möglich sind, sollten diese auch für Neulinge einfach genug sein. Für weitere Konfigurationsmöglichkeiten konsultieren Sie bitte die Apache Dokumentation.

Wenn Sie die PHP Distribution wie im Abschnitt Manuelle Installationsschritte beschrieben nach c:\php\ entpackt haben, müssen Sie die folgenden Zeilen in Ihrer Apache Konfigurationsdatei einfügen, um das CGI-Modul aufzusetzen:

  • ScriptAlias /php/ "c:/php/"

  • AddType application/x-httpd-php .php .phtml

  • Action application/x-httpd-php "/php/php.exe"

Beachten Sie, dass die zweite Zeile der obigen Liste in den aktuellen Versionen von httpd.conf bereits enthalten, jedoch auskommentiert ist. Vergessen Sie nicht, c:/php/ durch den aktuellen Pfad zu PHP zu ersetzen.

Warnung

Wenn Sie das CGI Setup verwenden, ist Ihr Server für verschiedene mögliche Angriffe offen. Informationen, wie Sie sich vor Angriffen schützen können, finden Sie im Abschnitt CGI Sicherheit

Wenn Sie PHP als Apache Modul einsetzen möchten, kopieren Sie die php4ts.dll in Ihr windows/system (für Windows 9x/Me), winnt/system32 (für Windows NT/2000) oder windows/system32 (für Windows XP) Verzeichnis, und überschreiben die dort eventuell bereits existierende Datei. Dann sollten Sie die folgenden Zeilen in Ihrer Apache httpd.conf Datei einfügen:

  • Öffnen Sie die httpd.conf mit Ihrem Editor, gehen Sie zur Anweisung LoadModule und fügen folgende Zeile am Ende der Liste hinzu: LoadModule php4_module c:/php/sapi/php4apache.dll

  • Nach Verwendung der Windows Installers für Apache kann es sein, dass Sie die Anweisung AddModule für mod_php4.c definieren müssen. Dies ist vor allem dann wichtig, wenn die ClearModuleList Anweisung definiert ist, welche Sie ein paar Zeilen darunter finden. Sie werden eine Liste mit AddModule Einträgen finden, an dessen Ende Sie bitte die folgende Zeile hinzufügen: AddModule mod_php4.c

  • Suchen Sie nach einer Phrase wie # AddType allows you to tweak mime.types. Hier werden Sie einige AddType Einträge sehen. Fügen Sie die folgende Zeile am Ende der Liste ein: AddType application/x-httpd-php .php. Hier können Sie jede beliebige Extension von Dateien angeben, welche durch PHP geparst werden sollen. .php ist einfach die von uns empfohlene. Sie können aber auch .html und .php3 zwecks Rückwärtskompatibilität einfügen.

Vergessen Sie nicht, nach der Änderung der Konfigurationsdatei den Server neu zu starten, z.B. mit NET STOP APACHE, gefolgt von NET START APACHE wenn Sie Apache als Windows Service nutzen, oder verwenden Sie Ihre üblichen Shortcuts.

Es gibt zwei Arten, wie Sie das Feature Source Code Highlighting verwenden können, auch wenn deren Funktionsfähigkeit von Ihrer Installation abhängt. Wenn Sie Apache so konfiguriert haben, dass er PHP als SAPI Modul verwendet, können Sie dieses Feature verwenden, indem Sie die folgende Zeile in Ihrer httpd.conf einfügen (an der selben Stelle wo Sie AddType application/x-httpd-php .php eingefügt haben, siehe oben): AddType application/x-httpd-php-source .phps.

Haben Sie Apache so konfiguriert, dass er PHP als CGI Programm verwendet, müssen Sie die Funktion show_source() benutzen. Dies tun Sie, indem einfach ein PHP Skript mit folgendem Code erstellen: <?php show_source ("original_php_script.php"); ?>. Ersetzen Sie original_php_script.php durch den Dateinamen des Skriptes, dessen Source Sie zeigen wollen.

Anmerkung: Bei Apache unter Windows müssen alle Backslashes in einer Pfadangabe wie z.B. "c:\directory\file.ext" durch Slashes ersetzt werden, wie z.B. "c:/directory/file.ext".

Zurück | Zum Anfang | Nach vorne
Server-CGI/Commandline | Nach oben | Servers-Apache 2.0


Servers-Apache 2.0

This section contains notes and hints specific to Apache 2.0 installs of PHP, both for Unix and Windows versions.

Warnung

Do not use Apache 2.0 and PHP in a production environment neither on Unix nor on Windows.

You are highly encouraged to take a look at the Apache Documentation to get a basic understanding of the Apache 2.0 Server.

PHP and Apache 2.0 compatibility notes

The following versions of PHP are known to work with the most recent version of Apache 2.0:

  • PHP 4.3.0 or later available at http://www.php.net/downloads.php.
  • the latest stable development version. Get the source code http://snaps.php.net/php4-latest.tar.gz or download binaries for Windows http://snaps.php.net/win32/php4-win32-latest.zip.
  • a prerelease version downloadable from http://qa.php.net/.
  • you have always the option to obtain PHP through anonymous CVS.
These versions of PHP are compatible to Apache 2.0.40 and later.

Anmerkung: Apache 2.0 SAPI-support started with PHP 4.2.0. PHP 4.2.3 works with Apache 2.0.39, don't use any other version of Apache with PHP 4.2.3. However, the recommended setup is to use PHP 4.3.0 or later with the most recent version of Apache2.

All mentioned versions of PHP will work still with Apache 1.3.x.

PHP and Apache 2 on Linux

Download the most recent version of Apache 2.0 and a fitting PHP version from the above mentioned places. This quick guide covers only the basics to get started with Apache 2.0 and PHP. For more information read the Apache Documentation. The version numbers have been omitted here, to ensure the instructions are not incorrect. You will need to replace the 'NN' here with the correct values from your files.

Beispiel 3-5. Installation Instructions (Apache 2 Shared Module Version)

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    Now you have Apache 2.0.NN available under /usr/local/apache2,
    configured with loadable module support and the standard MPM prefork.
    To test the installation use your normal procedure for starting
    the Apache server, e.g.:
    /usr/local/apache2/bin/apachectl start
    and stop the server to go on with the configuration for PHP:
    /usr/local/apache2/bin/apachectl stop.

9.  cd ../php-NN

10. Now, configure your PHP.  This is where you customize your PHP
    with various options, like which extensions will be enabled.  Do a
    ./configure --help for a list of available options.  In our example
    we'll do a simple configure with Apache 2 and MySQL support.  Your
    path to apxs may differ, in fact, the binary may even be named apxs2 on
    your system.

      ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

11. make
12. make install

    If you decide to change your configure options after installation,
    you only need to repeat the last three steps. You only need to
    restart apache for the new module to take effect. A recompile of
    Apache is not needed.

    Note that unless told otherwise, 'make install' will also install PEAR,
    various PHP tools such as phpize, install the PHP CLI, and more.

13. Setup your php.ini

    cp php.ini-dist /usr/local/lib/php.ini

    You may edit your .ini file to set PHP options.  If you prefer having
    php.ini in another location, use --with-config-file-path=/some/path in
    step 10.

    If you instead choose php.ini-recommended, be certain to read the list
    of changes within, as they affect how PHP behaves.

14. Edit your httpd.conf to load the PHP module.  The path on the right hand
    side of the LoadModule statement must point to the path of the PHP
    module on your system.  The make install from above may have already
    added this for you, but be sure to check.

    For PHP 4:

      LoadModule php4_module libexec/libphp4.so

    For PHP 5:

      LoadModule php5_module libexec/libphp5.so

15. Tell Apache to parse certain extensions as PHP.  For example,
    let's have Apache parse the .php extension as PHP.  You could
    have any extension(s) parse as PHP by simply adding more, with
    each separated by a space.  We'll add .phtml to demonstrate.

      AddType application/x-httpd-php .php .phtml

    It's also common to setup the .phps extension to show highlighted PHP
    source, this can be done with:

      AddType application/x-httpd-php-source .phps

16. Use your normal procedure for starting the Apache server, e.g.:

      /usr/local/apache2/bin/apachectl start

Following the steps above you will have a running Apache 2.0 with support for PHP as SAPI module. Of course there are many more configuration options available for both, Apache and PHP. For more information use ./configure --help in the corresponding source tree. In case you wish to build a multithreaded version of Apache 2.0 you must overwrite the standard MPM-Module prefork either with worker or perchild. To do so append to your configure line in step 6 above either the option --with-mpm=worker or --with-mpm=perchild. Take care about the consequences and understand what you are doing. For more information read the Apache documentation about the MPM-Modules.

Anmerkung: To build a multithreaded version of Apache your system must support threads. This also implies to build PHP with experimental Zend Thread Safety (ZTS). Therefore not all extensions might be available. The recommended setup is to build Apache with the standard prefork MPM-Module.

PHP and Apache 2.0 on Windows

Consider to read the Windows specific notes for Apache 2.0.

Warnung

Apache 2.0 is designed to run on Windows NT 4.0, Windows 2000 or Windows XP. At this time, support for Windows 9x is incomplete. Apache 2.0 is not expected to work on those platforms at this time.

Download the most recent version of Apache 2.0 and a fitting PHP version from the above mentioned places. Follow the Manual Installation Steps and come back to go on with the integration of PHP and Apache.

There are two ways to set up PHP to work with Apache 2.0 on Windows. One is to use the CGI binary the other is to use the Apache module DLL. In either case you need to stop the Apache server, and edit your httpd.conf to configure Apache to work with PHP.

You need to insert these three lines to your Apache httpd.conf configuration file to set up the CGI binary:

Beispiel 3-6. PHP and Apache 2.0 as CGI

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

If you would like to use PHP as a module in Apache 2.0, be sure to move php4ts.dll for PHP 4, or php5ts.dll for PHP 5, to winnt/system32 (for Windows NT/2000) or windows/system32 (for Windows XP), overwriting any older file. You need to insert these two lines to your Apache httpd.conf configuration file to set up the PHP-Module for Apache 2.0:

Beispiel 3-7. PHP and Apache 2.0 as Module

; For PHP 4 do something like this:
LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

; For PHP 5 do something like this:
LoadModule php5_module "c:/php/sapi/php5apache2.dll"
AddType application/x-httpd-php .php

Anmerkung: Remember to substitute the c:/php/ for your actual path to PHP in the above examples. Take care to use either php4apache2.dll or php5apache2.dll in your LoadModule directive and not php4apache.dll or php5apache.dll as the latter ones are designed to run with Apache 1.3.x.

Warnung

Don't mix up your installation with dll files from different PHP versions . You have the only choice to use the dll's and extensions that ship with your downloaded PHP version.

Zurück | Zum Anfang | Nach vorne
Server - Apache | Nach oben | Server - Caudium


Server - Caudium

PHP 4 kann als Pike Modul für den Caudium Webserver erstellt werden, was jedoch mit PHP 3 nicht unterstützt wird. Folgen Sie einfach den nachstehenden Instruktionen, um PHP 4 für Caudium zu installieren.

Beispiel 3-8. Caudium Installationsanweisungen

1.  Installieren Sie Caudium bevor Sie versuchen, PHP 4 zu installieren
    Damit PHP 4 korrekt läuft, benötigen Sie Pike 7.0.268 oder höher.
    In diesem Beispiel nehmen wir an, dass Caudium in /opt/caudium/server/
    installiert ist.
2.  Wechseln Sie in das Verzeichnis php-x.y.z (x.y.z entspricht der
    Versionsnummer)
3.  ./configure --with-caudium=/opt/caudium/server
4.  make
5.  make install
6.  Sollte Caudium gerade laufen, starten Sie ihn neu
7.  Öffnen Sie die grafische Konfigurationsoberfläche, und wechseln Sie
    zu dem virtuellen Server, welcher die PHP 4 Unterstützung bieten soll.
8.  Klicken Sie auf Add Module, und fügen Sie das PHP 4 Script Support
    Modul hinzu.
9.  Sollte die Dokumentation meinen 'PHP 4 interpreter isn't available',
    vergewissern Sie sich, dass der Server neu gestartet wurde. Prüfen
    Sie /opt/caudium/logs/debug/default.1 auf Fehler in Bezug auf
    <filename>PHP4.so</filename>. Vergewissern Sie sich ebenfalls, dass
    <filename>caudium/server/lib/[pike-version]/PHP4.so</filename>
    vorhanden ist.
10. Konfigurieren Sie das PHP Script Support Module wenn nötig.

Sie können Ihr Caudium Modul natürlich mit Unterstützung der verschiedenen in PHP 4 verfügbaren Erweiterungen kompilieren. Eine gute Übersicht hierfür bietet die Komplette Liste der Konfigurationsoptionen.

Anmerkung: Wenn Sie PHP 4 mit MySQL Unterstützung kompilieren müssen Sie sicherstellen, dass der normale MySQL Client Code verwendet wird. Andernfalls könnten Konflikte auftreten, wenn Ihr Pike MySQL bereits Unterstützt. Dies tun Sie, indem Sie ein MySQL Installationsverzeichnis mittels der --with-mysql spezifizieren.

Zurück | Zum Anfang | Nach vorne
Servers-Apache 2.0 | Nach oben | Server - fhttpd


Server - fhttpd

Um PHP als ein fhttpd Modul zu erstellen, beantworten Sie die Frage "Build as an fhttpd module?" mit "yes" (die Konfigurationsoption --with-fhttpd=DIR), und geben das Basisverzeichnis des fhttpd Source an. Das Standardverzeichnis ist /usr/local/src/fhttpd. Wenn Sie fhttpd benutzen, bietet das Kompilieren von PHP als Modul eine bessere Performance, mehr Kontrolle, sowie die Möglichkeit zur Remote Execution.

Anmerkung: Die Unterstützung für fhttpd ist seit PHP 4.3.0 nicht mehr verfügbar.

Zurück | Zum Anfang | Nach vorne
Server - Caudium | Nach oben | Servers-IIS/PWS


Servers-IIS/PWS

This section contains notes and hints specific to IIS (Microsoft Internet Information Server). Installing PHP for PWS/IIS 3, PWS 4 or newer and IIS 4 or newer versions.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

Windows and PWS/IIS 3

The recommended method for configuring these servers is to use the REG file included with the distribution (pws-php4cgi.reg). You may want to edit this file and make sure the extensions and PHP install directories match your configuration. Or you can follow the steps below to do it manually.

Warnung

These steps involve working directly with the Windows registry. One error here can leave your system in an unstable state. We highly recommend that you back up your registry first. The PHP Development team will not be held responsible if you damage your registry.

  • Run Regedit.

  • Navigate to: HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap.

  • On the edit menu select: New->String Value.

  • Type in the extension you wish to use for your php scripts. For example .php

  • Double click on the new string value and enter the path to php.exe in the value data field. ex: c:\php\php.exe.

  • Repeat these steps for each extension you wish to associate with PHP scripts.

The following steps do not affect the web server installation and only apply if you want your PHP scripts to be executed when they are run from the command line (ex. run c:\myscripts\test.php) or by double clicking on them in a directory viewer window. You may wish to skip these steps as you might prefer the PHP files to load into a text editor when you double click on them.

  • Navigate to: HKEY_CLASSES_ROOT

  • On the edit menu select: New->Key.

  • Name the key to the extension you setup in the previous section. ex: .php

  • Highlight the new key and in the right side pane, double click the "default value" and enter phpfile.

  • Repeat the last step for each extension you set up in the previous section.

  • Now create another New->Key under HKEY_CLASSES_ROOT and name it phpfile.

  • Highlight the new key phpfile and in the right side pane, double click the "default value" and enter PHP Script.

  • Right click on the phpfile key and select New->Key, name it Shell.

  • Right click on the Shell key and select New->Key, name it open.

  • Right click on the open key and select New->Key, name it command.

  • Highlight the new key command and in the right side pane, double click the "default value" and enter the path to php.exe. ex: c:\php\php.exe -q %1. (don't forget the %1).

  • Exit Regedit.

  • If using PWS on Windows, reboot to reload the registry.

PWS and IIS 3 users now have a fully operational system. IIS 3 users can use a nifty tool from Steven Genusa to configure their script maps.

Windows and PWS 4 or newer

When installing PHP on Windows with PWS 4 or newer version, you have two options. One to set up the PHP CGI binary, the other is to use the ISAPI module DLL.

If you choose the CGI binary, do the following:

  • Edit the enclosed pws-php4cgi.reg file (look into the SAPI dir) to reflect the location of your php.exe. Backslashes should be escaped, for example: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\php.exe" Now merge this registery file into your system; you may do this by double-clicking it.

  • In the PWS Manager, right click on a given directory you want to add PHP support to, and select Properties. Check the 'Execute' checkbox, and confirm.

If you choose the ISAPI module, do the following:

  • Edit the enclosed pws-php4isapi.reg file (look into the SAPI dir) to reflect the location of your php4isapi.dll. Backslashes should be escaped, for example: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\sapi\\php4isapi.dll" Now merge this registery file into your system; you may do this by double-clicking it.

  • In the PWS Manager, right click on a given directory you want to add PHP support to, and select Properties. Check the 'Execute' checkbox, and confirm.

Windows NT/2000/XP and IIS 4 or newer

To install PHP on an NT/2000/XP Server running IIS 4 or newer, follow these instructions. You have two options to set up PHP, using the CGI binary (php.exe) or with the ISAPI module.

In either case, you need to start the Microsoft Management Console (may appear as 'Internet Services Manager', either in your Windows NT 4.0 Option Pack branch or the Control Panel=>Administrative Tools under Windows 2000/XP). Then right click on your Web server node (this will most probably appear as 'Default Web Server'), and select 'Properties'.

If you want to use the CGI binary, do the following:

  • Under 'Home Directory', 'Virtual Directory', or 'Directory', click on the 'Configuration' button, and then enter the App Mappings tab.

  • Click Add, and in the Executable box, type: c:\php\php.exe (assuming that you have unziped PHP in c:\php\).

  • In the Extension box, type the file name extension you want associated with PHP scripts. Leave 'Method exclusions' blank, and check the Script engine checkbox. You may also like to check the 'check that file exists' box - for a small performance penalty, IIS (or PWS) will check that the script file exists and sort out authentication before firing up php. This means that you will get sensible 404 style error messages instead of cgi errors complaining that PHP did not output any data.

    You must start over from the previous step for each extension you want associated with PHP scripts. .php and .phtml are common, although .php3 may be required for legacy applications.

  • Set up the appropriate security. (This is done in Internet Service Manager), and if your NT Server uses NTFS file system, add execute rights for I_USR_ to the directory that contains php.exe.

To use the ISAPI module, do the following:

  • If you don't want to perform HTTP Authentication using PHP, you can (and should) skip this step. Under ISAPI Filters, add a new ISAPI filter. Use PHP as the filter name, and supply a path to the php4isapi.dll.

  • Under 'Home Directory', click on the 'Configuration' button. Add a new entry to the Application Mappings. Use the path to the php4isapi.dll as the Executable, supply .php as the extension, leave Method exclusions blank, and check the Script engine checkbox.

  • Stop IIS completely (NET STOP iisadmin)

  • Start IIS again (NET START w3svc)

Zurück | Zum Anfang | Nach vorne
Server - fhttpd | Nach oben | Servers-Netscape, iPlanet and SunONE


Servers-Netscape, iPlanet and SunONE

This section contains notes and hints specific to Netscape, iPlanet and SunONE webserver installs of PHP, both for Sun Solaris and Windows versions.

From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to generate custom directory listings and error pages. Additional functions for Apache compatibility are also available. For support in current webservers read the note about subrequests.

You can find more information about setting up PHP for the Netscape Enterprise Server (NES) here: http://benoit.noss.free.fr/php/install-php4.html

Installing PHP with NES/iPlanet/SunONE Webserver on Sun Solaris

To build PHP with NES/iPlanet/SunONE webservers, enter the proper install directory for the --with-nsapi=[DIR] option. The default directory is usually /opt/netscape/suitespot/. Please also read /php-xxx-version/sapi/nsapi/nsapi-readme.txt.

  1. Install the following packages from http://www.sunfreeware.com/ or another download site:

    autoconf-2.13
    automake-1.4
    bison-1_25-sol26-sparc-local
    flex-2_5_4a-sol26-sparc-local
    gcc-2_95_2-sol26-sparc-local
    gzip-1.2.4-sol26-sparc-local
    m4-1_4-sol26-sparc-local
    make-3_76_1-sol26-sparc-local
    mysql-3.23.24-beta (if you want mysql support)
    perl-5_005_03-sol26-sparc-local
    tar-1.13 (GNU tar)

  2. Make sure your path includes the proper directories PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin and make it available to your system export PATH.

  3. gunzip php-x.x.x.tar.gz (if you have a .gz dist, otherwise go to 4).

  4. tar xvf php-x.x.x.tar

  5. Change to your extracted PHP directory: cd ../php-x.x.x

  6. For the following step, make sure /opt/netscape/suitespot/ is where your netscape server is installed. Otherwise, change to the correct path and run:
    ./configure --with-mysql=/usr/local/mysql \
--with-nsapi=/opt/netscape/suitespot/ \
--enable-libgcc

  7. Run make followed by make install.

After performing the base install and reading the appropriate readme file, you may need to perform some additional configuration steps.

Configuration Instructions for NES/iPlanet/SunONE. Firstly you may need to add some paths to the LD_LIBRARY_PATH environment for SunONE to find all the shared libs. This can best done in the start script for your SunONE webserver. Windows users can probably skip this step. The start script is often located in: /path/to/server/https-servername/start. You may also need to edit the configuration files that are located in: /path/to/server/https-servername/config/.

  1. Add the following line to mime.types (you can do that by the administration server):
    type=magnus-internal/x-httpd-php exts=php

  2. Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following, shlib will vary depending on your OS, for Unix it will be something like /opt/netscape/suitespot/bin/libphp4.so. You should place the following lines after mime types init.
    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your webserver config directory.

  3. Configure the default object in obj.conf (for virtual server classes [SunONE 6.0+] in their vserver.obj.conf):
    <Object name="default">
.
.
.
.#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
.
.
</Object>
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  4. This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):
    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  5. Setup of authentication: PHP authentication cannot be used with any other authentication. ALL AUTHENTICATION IS PASSED TO YOUR PHP SCRIPT. To configure PHP Authentication for the entire server, add the following line to your default object:
    <Object name="default">
AuthTrans fn=php4_auth_trans
.
.
.
</Object>

  6. To use PHP Authentication on a single directory, add the following:
    <Object ppath="d:\path\to\authenticated\dir\*">
AuthTrans fn=php4_auth_trans
</Object>

Anmerkung: The stacksize that PHP uses depends on the configuration of the webserver. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

Installing PHP with NES/iPlanet/SunONE on Windows

To Install PHP as CGI (for Netscape Enterprise Server, iPlanet, SunONE, perhaps Fastrack), do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a dummy shellcgi directory and remove it just after (this step creates 5 important lines in obj.conf and allow the web server to handle shellcgi scripts).

  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php).

  • Do it for each web server instance you want PHP to run

More details about setting up PHP as a CGI executable can be found here: http://benoit.noss.free.fr/php/install-php.html

To Install PHP as NSAPI (for Netscape Enterprise Server, iPlanet, SunONE, perhaps Fastrack), do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/x-httpd-php, File Suffix: php).

  • Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following: You should place the lines after mime types init.
    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your webserver config directory.

  • Configure the default object in obj.conf (for virtual server classes [SunONE 6.0+] in their vserver.obj.conf): In the <Object name="default"> section, place this line necessarily after all 'ObjectType' and before all 'AddLog' lines:
    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  • This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):
    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  • Restart your web service and apply changes

  • Do it for each web server instance you want PHP to run

Anmerkung: More details about setting up PHP as an NSAPI filter can be found here: http://benoit.noss.free.fr/php/install-php4.html

Anmerkung: The stacksize that PHP uses depends on the configuration of the webserver. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

CGI environment and recommended modifications in php.ini

Important when writing PHP scripts is the fact that iPlanet/SunONE/Netscape is a multithreaded web server. Because of that all requests are running in the same process space (the space of the webserver itsself) and this space has only one environment. If you want to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the correct way to try this in the old PHP 3.x way with getenv() or a similar way (register globals to environment, $_ENV). You would only get the environment of the running webserver without any valid CGI variables!

Anmerkung: Why are there (invalid) CGI variables in the environment?

Answer: This is because you started the webserver process from the admin server which runs the startup script of the webserver, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started webserver has some CGI environment variables in it. You can test this by starting the webserver not from the administration server. Use the Unix command line as root user and start it manually - you will see there are no CGI-like environment variables.

Simply change your scripts to get CGI variables in the correct way for PHP 4.x by using the superglobal $_SERVER. If you have older scripts which use $HTTP_HOST,..., you should turn on register_globals in php.ini and change the variable order to (important: remove "E" from it, because you do not need the environment here):
variables_order = "GPCS"
register_globals = On

Special use for error pages or self-made directory listings (PHP >= 4.3.3)

You can use PHP to generate the error pages for "404 Not Found" or similar. Add the following line to the object in obj.conf for every error page you want to overwrite:
Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
where XXX is the HTTP error code. Please delete any other Error directives which could interfere with yours. If you want to place a page for all errors that could exist, leave the code parameter out. Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].

Another possibility is to generate self-made directory listings. Just create a PHP script which displays a directory listing and replace the corresponding default Service line for type="magnus-internal/directory" in obj.conf with the following:
Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
For both error and directory listing pages the original URI and translated URI are in the variables $_SERVER['PATH_INFO'] and $_SERVER['PATH_TRANSLATED'].

Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)

The NSAPI module now supports the nsapi_virtual() function (alias: virtual()) to make subrequests on the webserver and insert the result in the webpage. The problem is, that this function uses some undocumented features from the NSAPI library.

Under Unix this is not a problem, because the module automatically looks for the needed functions and uses them if available. If not, nsapi_virtual() is disabled.

Under Windows limitations in the DLL handling need the use of a automatic detection of the most recent ns-httpdXX.dll file. This is tested for servers till version 6.1. If a newer version of the SunONE server is used, the detection fails and nsapi_virtual() is disabled.

If this is the case, try the following: Add the following parameter to php4_init in magnus.conf/obj.conf:
Init fn=php4_init ... server_lib="ns-httpdXX.dll"
where XX is the correct DLL version number. To get it, look in the server-root for the correct DLL name. The DLL with the biggest filesize is the right one.

You can check the status by using the phpinfo() function.

Anmerkung: But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!

Zurück | Zum Anfang | Nach vorne
Servers-IIS/PWS | Nach oben | Servers-OmniHTTPd Server


Servers-OmniHTTPd Server

This section contains notes and hints specific to OmniHTTPd.

OmniHTTPd 2.0b1 and up for Windows

You need to complete the following steps to make PHP work with OmniHTTPd. This is a CGI executable setup. SAPI is supported by OmniHTTPd, but some tests have shown that it is not so stable to use PHP as an ISAPI module.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

  1. Install OmniHTTPd server.

  2. Right click on the blue OmniHTTPd icon in the system tray and select Properties

  3. Click on Web Server Global Settings

  4. On the 'External' tab, enter: virtual = .php | actual = c:\path-to-php-dir\php.exe, and use the Add button.

  5. On the Mime tab, enter: virtual = wwwserver/stdcgi | actual = .php, and use the Add button.

  6. Click OK

Repeat steps 2 - 6 for each extension you want to associate with PHP.

Anmerkung: Some OmniHTTPd packages come with built in PHP support. You can choose at setup time to do a custom setup, and uncheck the PHP component. We recommend you to use the latest PHP binaries. Some OmniHTTPd servers come with PHP 4 beta distributions, so you should choose not to set up the built in support, but install your own. If the server is already on your machine, use the Replace button in Step 4 and 5 to set the new, correct information.

Zurück | Zum Anfang | Nach vorne
Servers-Netscape, iPlanet and SunONE | Nach oben | Servers-Oreilly Website Pro


Servers-Oreilly Website Pro

This section contains notes and hints specific to Oreilly Website Pro.

Oreilly Website Pro 2.5 and up for Windows

This list describes how to set up the PHP CGI binary or the ISAPI module to work with Oreilly Website Pro on Windows.

  • Edit the Server Properties and select the tab "Mapping".

  • From the List select "Associations" and enter the desired extension (.php) and the path to the CGI exe (ex. c:\php\php.exe) or the ISAPI DLL file (ex. c:\php\sapi\php4isapi.dll).

  • Select "Content Types" add the same extension (.php) and enter the content type. If you choose the CGI executable file, enter 'wwwserver/shellcgi', if you choose the ISAPI module, enter 'wwwserver/isapi' (both without quotes).

Zurück | Zum Anfang | Nach vorne
Servers-OmniHTTPd Server | Nach oben | Servers-Sambar


Servers-Sambar

This section contains notes and hints specific to the Sambar server for Windows.

Sambar Windows

This list describes how to set up the ISAPI module to work with the Sambar server on Windows.

  • Find the file called mappings.ini (in the config directory) in the Sambar install directory.

  • Open mappings.ini and add the following line under [ISAPI]:

    *.php = c:\php\php4isapi.dll

    (This line assumes that PHP was installed in c:\php.)

  • Now restart the Sambar server for the changes to take effect.

Zurück | Zum Anfang | Nach vorne
Servers-Oreilly Website Pro | Nach oben | Servers-Xitami


Servers-Xitami

This section contains notes and hints specific to Xitami.

Xitami for Windows

This list describes how to set up the PHP CGI binary to work with Xitami on Windows.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

  • Make sure the webserver is running, and point your browser to xitamis admin console (usually http://127.0.0.1/admin), and click on Configuration.

  • Navigate to the Filters, and put the extension which PHP should parse (i.e. .php) into the field File extensions (.xxx).

  • In Filter command or script put the path and name of your PHP executable i.e. c:\php\php.exe.

  • Press the 'Save' icon.

  • Restart the server to reflect changes.

Zurück | Zum Anfang | Nach vorne
Servers-Sambar | Nach oben | Servers-Other web servers


Servers-Other web servers

PHP can be built to support a large number of web servers. Please see Server-related options for a full list of server-related configure options. The PHP CGI binaries are compatible with almost all webservers supporting the CGI standard.

Zurück | Zum Anfang | Nach vorne
Servers-Xitami | Nach oben | Problems?


Problems?

Read the FAQ

Some problems are more common than others. The most common ones are listed in the PHP FAQ, part of this manual.

Other problems

If you are still stuck, someone on the PHP installation mailing list may be able to help you. You should check out the archive first, in case someone already answered someone else who had the same problem as you. The archives are available from the support page on http://www.php.net/support.php. To subscribe to the PHP installation mailing list, send an empty mail to php-install-subscribe@lists.php.net. The mailing list address is php-install@lists.php.net.

If you want to get help on the mailing list, please try to be precise and give the necessary details about your environment (which operating system, what PHP version, what web server, if you are running PHP as CGI or a server module, safe mode, etc...), and preferably enough code to make others able to reproduce and test your problem.

Bug reports

If you think you have found a bug in PHP, please report it. The PHP developers probably don't know about it, and unless you report it, chances are it won't be fixed. You can report bugs using the bug-tracking system at http://bugs.php.net/. Please do not send bug reports in mailing list or personal letters. The bug system is also suitable to submit feature requests.

Read the How to report a bug document before submitting any bug reports!

Zurück | Zum Anfang | Nach vorne
Servers-Other web servers | Nach oben | Komplette Liste der Konfigurationsoptionen


Komplette Liste der Konfigurationsoptionen

Nachstehend finden Sie eine Teil-Liste von Konfigurationsoptionen, welche von den PHP configure Skripten während des kompilierens in Unix-artigen Umgebungen verwendet werden. Die meisten Konfigurationsoptionen werden nicht hier, sondern in den ihnen entsprechenden Abschnitten aufgelistet. Um eine komplette und aktuelle Liste der Konfigurationsoptionen zu erhalten, starten Sie ./configure --help in Ihrem Verzeichnis mit den PHP Sourcecodes, nachdem Sie autoconf gestartet haben (siehe auch das Kapitel Installation). Informationen zu weiteren configure Optionen wie z.B. --prefix=PREFIX finden Sie in der Dokumentation von GNU configure.

Anmerkung: Diese Optionen werden nur zur Kompilierzeit genutzt. Wenn Sie die Laufzeitkonfiguration von PHP ändern möchten, lesen Sie bitte unter Laufzeit Konfiguration nach.

  • Grafik

  • Verschiedenes

  • PHP Verhalten

  • Server

Konfigurationsoptionen in PHP 4

Anmerkung: Diese Optionen werden nur in PHP 4 mit Stand von PHP 4.1.0 verwendet. Manche davon sind auch in älteren Versionen von PHP 4 verfügbar, manche sogar in PHP 3, manche nur in PHP 4.1.0. Sollten Sie eine ältere Version von PHP kompilieren wollen kann es sein, dass manche Optionen nicht verfügbar sind.

Grafikoptionen

--with-imagick

Die imagick Erweiterung befindet sich nun in PECL von PEAR, und kann hier heruntergeladen werden. Die Installationsanweisungen für PHP 4 finden Sie auf der PEAR Site.

Ein einfaches --with-imagick ist nur in PHP 3 möglich, außer Sie folgen den Instruktionen auf der PEAR Site.

Verschiedene Optionen

--enable-debug

Kompiliert mit Debug-Symbolen.

--with-layout=TYPE

Setzt die Anordnung der installierten Dateien. Type ist entweder PHP (default) oder GNU.

--with-pear=DIR

Installiert PEAR in DIR (default ist PREFIX/lib/php).

--without-pear

Unterdrückt die Installation von PEAR.

--enable-sigchild

Aktiviert den PHP-eigenen SIGCHLD Handler.

--disable-rpath

Verhindert die Übergabe weiterer Suchpfade für Laufzeitbibliotheken.

--enable-libgcc

Aktiviert das explizite Linken zur die libgcc.

--enable-php-streams

Inkludiert die experimentellen PHP Streams. Verwenden Sie dies nicht, wenn Sie nicht den Code testen!

--with-zlib-dir=<DIR>

Definiert das zlib Installationsverzeichnis.

--enable-trans-sid

Aktiviert transparent session id propagation. Ist nur für PHP 4.1.2 oder kleiner gültig. Seit PHP 4.2.0 wird trans-sid immer kompiliert.

--with-tsrm-pthreads

Verwendet POSIX threads (default).

--enable-shared[=PKGS]

Erstellt verteilte Bibliotheken [default=yes].

--enable-static[=PKGS]

Erstellt statische Bibliotheken [default=yes].

--enable-fast-install[=PKGS]

Optimiert für schnelle Installation [default=yes].

--with-gnu-ld

Nimmt an, dass der C Compiler GNU ld verwendet [default=no].

--disable-libtool-lock

Vermeide locking (könnte sein, dass parallele Builds nicht funktionieren).

--with-pic

Versucht, nur PIC/non-PIC Objekte zu verwenden [default=use both].

--enable-memory-limit

Kompiliert mit Unterstützung für Speicherlimit.

--disable-url-fopen-wrapper

Verhindert den URL-aware fopen wrapper, der den Zugriff auf Dateien über HTTP oder FTP erlaubt.

--enable-versioning

Exportiert nur die benötigten Symbole. Siehe INSTALL für weitere Informationen.

--with-imsp[=DIR]

Inkludiert IMSp Unterstützung (DIR ist das Include-Verzeichnis von IMSP und libimsp.a). Nur PHP 3!

--with-mck[=DIR]

Inkludiert Cybercash MCK Unterstützung. DIR ist das cybercash mck Build Verzeichnis, default ist /usr/src/mck-3.2.0.3-linux. Hilfe finden Sie in extra/cyberlib. Nur PHP 3!

--with-mod-dav=DIR

Inkludiert DAV Unterstützung durch Apache's mod_dav, DIR ist das Installationsverzeichnis von mod_dav (Nur Apache Modulversion!). Nur PHP 3!

--enable-debugger

Kompiliert mit Funktionen zum remote debugging. Nur PHP 3!

--enable-versioning

Nutzt die Vorteile der von Solaris 2.x und Linux unterstützten Versionierung und des Scoping. Nur PHP 3!

PHP Optionen

--enable-maintainer-mode

Aktiviert Regeln und Abhängigkeiten für make, welche für Leute die PHP nur gelegentlich installieren nicht nützlich (und manchmal verwirrend) sind.

--with-config-file-path=PATH

Setzt den Pfad für die php.ini, default ist PREFIX/lib.

--enable-safe-mode

Aktiviert safe mode standardmäßig.

--with-exec-dir[=DIR]

Wenn in safe mode, sind ausführbare Dateien nur in DIR erlaubt. Default ist /usr/local/php/bin.

--enable-magic-quotes

Aktiviert magic quotes standardmäßig.

--disable-short-tags

Verhindert standardmäßig die Kurzform der <? Start Tags.

SAPI Optionen

Die folgende Liste enthält die verfügbaren SAPI&s (Server Application Programming Interface) für PHP.

--with-aolserver=DIR

Spezifiziert den Pfad zu dem installierten AOLserver.

--with-apxs[=FILE]

Erstellt ein verteiltes Apache Modul. FILE ist der optionale Pfadname zu dem Apache apxs tool; default ist apxs. Spezifizieren Sie die Version von dem aktuell auf Ihrem System installierten apxs, und NICHT die, die sich in dem Apache Tarball befindet.

--with-apache[=DIR]

Erstellt ein statisches Apache Modul. DIR ist das Top-Level Build-Verzeichnis, default ist /usr/local/apache.

--with-mod_charset

Aktiviert Transfertabellen für mod_charset (Russischer Apache).

--with-apxs2[=FILE]

Erstellt ein verteiltes Apace 2.0 Modul. FILE ist der optionale Pfad zu dem Apache apxs Tool. Default ist apxs.

--with-caudium=DIR

Erstellt PHP als ein Pike Modul für den Gebrauch mit Caudium. DIR ist das Caudium Serververzeichnis. Default ist /usr/local/caudium/server.

--disable-cli

Verfügbar seit PHP 4.3.0. Schaltet das Erstellen der CLI Version von PHP ab (dies erzwingt --without-pear). Weitere Informationen finden Sie im Abschnitt Using PHP from the command line.

--enable-embed[=TYPE]

Aktiviert die Erstellung der eingebetteten SAPI Bibliothek. TYPE ist entweder shared oder static, default ist shared. Verfügbar seit PHP 4.3.0.

--with-fhttpd[=DIR]

Erstellt ein fhttpd Modul. DIR ist das Verzeichnis mit den fhttpd Sources. Default ist /usr/local/src/fhttpd. Ist seit PHP 4.3.0 nicht mehr verfügbar

--with-isapi=DIR

Erstellt PHP als ISAPI Modul für die Verwendung mit Zeus.

--with-nsapi=DIR

Spezifiziert den Pfad zu dem installierten Netscape Server.

--with-phttpd=DIR

Dzt. keine Information.

--with-pi3web=DIR

Erstellt PHP als Modul für Pi3Web.

--with-roxen=DIR

Erstellt PHP als Pike Modul. DIR ist das Roxen Hauptverzeichnis, gewöhnlich /usr/local/roxen/server.

--enable-roxen-zts

Erstellt das Roxen Modul mit Zend Thread Safety.

--with-servlet[=DIR]

Inkludiert Servlet Unterstützung. DIR ist das Installationsverzeichnis des JSDK. Dieses SAPI setzt voraus, dass die Java Erweiterung als verteilte Bibliothek erstellt wurde.

--with-thttpd=SRCDIR

Erstellt PHP als thttpd Modul.

--with-tux=MODULEDIR

Erstellt PHP als TUX Modul (Nur Linux).

--with-webjames=SRCDIR

Erstellt PHP als ein WebJames Modul (nur RISC OS)

--disable-cgi

Deaktiviert die Erstellung der CGI Version von PHP. Verfügbar seit PHP 4.3.0.

--enable-force-cgi-redirect

Aktiviert die Sicherheitsprüfung für interne Umadressierungen am Server. Sie sollten dies verwenden, wenn Sie die CGI Version mit Apache benutzen.

--enable-discard-path

Ist dies aktiviert, kann das PHP CGI Programm sicher ausserhalb des Web Trees platziert werden, und die Leute können die .htaccess Sicherheit nicht umgehen.

--with-fastcgi

Erstellt PHP als ein FastCGI Programm. Ist seit PHP 4.3.0 nicht mehr verfügbar, stattdessen benutzen Sie bitte --enable-fastcgi.

--enable-fastcgi

Ist dies aktiviert, wird das CGI Modul mit Unterstützung für FastCGI erstellt. Verfügbar seit PHP 4.3.0.

--disable-path-info-check

Ist dies deaktiviert, werden Pfade wie z.B. /info.php/test?a=b nicht funktionieren. Verfügbar seit PHP 4.3.0.

Zurück | Zum Anfang | Nach vorne
Problems? | Nach oben | Konfiguration


Konfiguration

PHP Handbuch
Zurück Nach vorne

Kapitel 4. Konfiguration

Inhaltsverzeichnis
Die Konfigurationsdatei
Wie Sie die Konfigurations-Einstellungen ändern können
Allgemeine Konfigurationseinstellungen

Die Konfigurationsdatei

Die Konfigurationsdatei (php3.ini in PHP 3.0.x, und php.ini ab PHP 4.0) wird geladen, wenn PHP gestartet wird. Wurde PHP als Modul in den Webserver einkompiliert, dann geschieht dies nur, wenn der Server gestartet wird. Ist PHP als CGI- oder CLI-Version konfiguriert worden, geschieht es bei jedem Aufruf.

Das Standard-Verzeichnis der php.ini ist eine Option, die Sie beim Kompilieren übergeben können (siehe den entsprechenden Eintrag in der FAQ). Bei der CGI- und der CLI-Version kann diese über die Kommadozeilenoption -c geändert werden, siehe auch das Kapitel über die Benutzung von PHP über die Kommandozeile. Sie können auch die Umgebungsvariable PHPRC setzen, um ein zusätzliches Suchverzeichnis für die php.ini-Datei anzugeben.

Nicht jede PHP-Option ist hier dokumentiert. Für eine Liste aller Optionen schauen Sie bitte in Ihre php.ini-Datei, dort finden Sie Kommentare zu jeder Option. Sie können auch in die allerneueste php.ini im PHP-CVS nachschauen.

Anmerkung: Der Standardwert für die PHP-Option register_globals wurde von on zu off in PHP 4.2.0 geändert.

Beispiel 4-1. php.ini-Beispiel

; jeglicher Text in einer Zeile hinter einem nicht gequoteten
; Semikolon wird ignoriert
[php] ; Abschnitts-Marker (gekennzeichnet durch die eckigen Klammern)
; werden ebenfalls ignoriert
; folgende boolesche Werte sind möglich:
;    true, on, yes
; oder false, off, no, none
register_globals = off
magic_quotes_gpc = yes

; Sie können Strings in Gänsefüßchen einschließen
include_path = ".:/usr/local/lib/php"

; Backslashes werden wie jedes andere Zeichen behandelt
include_path = ".;c:\php\lib"

Zurück | Zum Anfang | Nach vorne
Komplette Liste der Konfigurationsoptionen | Nach oben | Wie Sie die Konfigurations-Einstellungen ändern können


Wie Sie die Konfigurations-Einstellungen ändern können

PHP als Apache-Modul laufen lassen

Wenn Sie PHP in der Modul-Variante benutzen, können Sie die Konfigurationseinstellungen auch mittels der Apache-Konfigurations- datei (z.B. httpd.conf) bzw. mittels .htaccess-Dateien ändern (sie benötigen dann die Berechtigungen "AllowOverride Options" oder "AllowOverride All").

Seit PHP 4.0 gibt es mehrere Apache-Optionen, die es Ihnen ermöglichen, die PHP-Konfiguration aus den Apache-Konfigurationsdateien heraus zu ändern. Für eine Liste, welche Optionen PHP_INI_ALL, PHP_INI_PERDIR oder PHP_INI_SYSTEM sind, schauen Sie bitte in die Tabelle, die Sie in der Dokumentation der ini_set()-Funktion finden.

Anmerkung: Seit PHP 3.0 existieren Apache-Anweisungen, die mit jeder Konfigurationseinstellung der php3.ini korrespondieren, ausgenommen Einstellungen mit dem Prefix "php3_".

php_value name value

Setzt den Wert der spezifizierten Option. Kann nur mit Optionen vom Typ PHP_INI_ALL und PHP_INI_PERDIR benutzt werden. Um einen zuvor gesetzten Wert zurückzusetzen, benutzen Sie none als Wert.

php_value auto_prepend_file none

php_flag name on|off

Setzt eine boolesche Option. Kann nur mit Optionen vom Typ PHP_INI_ALL und PHP_INI_PERDIR benutzt werden.

php_admin_value name value

Setzt den Wert der spezifizierten Option. Kann nicht in .htaccess-Dateien benutzt werden. Jeder Options vom Typ php_admin_value kann nicht durch .htaccess-Dateien oder Virtual-Host-Optionen überschrieben werden. Um einen zuvor gesetzten Wert zurückzusetzen, benutzen Sie none als Wert.

php_admin_value open_basedir none

php_admin_flag name on|off

Setzt eine boolesche Option. Kann nicht in .htaccess-Dateien benutzt werden. Jeder Options vom Typ php_admin_flag kann nicht durch .htaccess-Dateien oder Virtual-Host-Optionen überschrieben werden.

Beispiel 4-2. Apache-Konfigurations-Beispiel

<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Anmerkung: PHP-Konstanten existieren nicht außerhalb von PHP. So können Sie z.B. in der httpd.conf keine PHP-Konstanten wie E_ALL oder E_NOTICE benutzen, um die Option error_reporting zu setzen, da ihr Wert dort unbekannt ist und zu 0 ausgewertet würde. Benutzen Sie stattdessen die zugeordneten Bitwerte, diese Konstanten können in der php.ini benutzt werden.

Andere Schnittstellen zu PHP

Unabhänging von der Schnittstelle zu PHP können Sie einige Werte während der Laufzeit Ihrer Skript über die ini_set()-Funktion setzen. Die folgende Tabelle gibt Ihnen einen Überblick, auf welcher Stufe eine Option gesetzt oder geändert werden kann.

Tabelle 4-1. Definition der PHP_INI_*-Konstanten

Konstante | Wert | Bedeutung
PHP_INI_USER | 1 | Option kann in Benutzer-Skripten gesetzt werden
PHP_INI_PERDIR | 2 | Option kann in der php.ini, .htaccess oder httpd.conf gesetzt werden
PHP_INI_SYSTEM | 4 | Option kann in der php.ini oder httpd.conf gesetzt werden
PHP_INI_ALL | 7 | Option kann überall gesetzt werden

Die Konfigurationseinstellungen können Sie in der Ausgabe der phpinfo()-Funktion einsehen. Außerdem können Sie Zugang zu den individuellen Konfigurationseinstellungen über ini_get() oder get_cfg_var() bekommen.

Zurück | Zum Anfang | Nach vorne
Konfiguration | Nach oben | Allgemeine Konfigurationseinstellungen


Allgemeine Konfigurationseinstellungen

Dies ist keine vollständige Liste der PHP-Direktiven. Weitere Optionen werden an den passenden Stellen im Handbuch genannt, so finden Sie z.B. Informationen zu den Session-Optionen im Sessions-Kapitel.

Httpd-Optionen

Tabelle 4-2. Httpd-Optionen

Name | Standard | änderbar
async_send | "0" | PHP_INI_ALL

Sprach-Optionen

Tabelle 4-3. Sprach- und allgemeine Konfigurations-Optionen

Name | Standard | änderbar
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR
precision | "14" | PHP_INI_ALL
y2k_compliance | Off | PHP_INI_ALL
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
expose_php | On | PHP_INI_SYSTEM

Hier eine kurze Erklärung der Konfigurationsoptionen:

short_open_tag boolean

Bestimmt, ob die Kurzform (<? ?>) des PHP-Öffnungs-Tags erlaubt werden soll. Wenn Sie PHP in Kombination mit XML benutzen wollen, dann deaktivieren Sie diese Option, um <?xml ?> nutzen zu können. Anderenfalls können Sie das Tag mit PHP ausgeben, z.B. <?php echo '<?xml version="1.0"'; ?>. Wenn diese Option deaktiviert ist, müssen Sie die Langform des PHP-Öffnungs-Tags (<?php ?>) benutzen.

Anmerkung: Diese Option betrifft auch die Kurzform <?=, die zu <? echo identisch ist. Um diese Kurzform nutzen zuu können, short_open_tag auf on gesetzt sein.

asp_tags boolean

Dieser Schalter aktiviert die Unterstützung von ASP <% %> Tags als Erweiterung zu den üblichen <?php ?> Tags. Dieses beinhaltet auch die Kurzform der Variablenausgabe <%= $value %>. Weitere Informationen finden Sie hier: Den HTML-Bereich der Datei verlassen.

Anmerkung: Die Unterstützung für ASP-Tags wurde in Version 3.0.4 hinzugefügt.

precision integer

Die Anzahl der positiven Ziffern, die in Fließkommazahlen dargestellt werden.

y2k_compliance boolean

Aktivieren der Jahr 2000-Kompatibilität (erzeugt eventuell Probleme mit nicht-kompatiblen Browsern).

allow_call_time_pass_reference boolean

Bestimmt, ob die Möglichkeit aktiviert wird, einer Funktion Argumente als Referenz-Parameter zu übergeben. Diese Methode wird nicht nicht empfohlen und wird möglicherweise in späteren Version von PHP/Zend nicht mehr unterstützt. Die empfohlene Methode, anzugeben, welche Argumente per Referenz übergeben werden sollen, ist in der Funktionsdeklaration. Wir empfehlen Ihnen, diese Option versuchsweise auf Off zu setzen und dann zu prüfen, ob Ihre Skripte noch korrekt laufen, um sicherzustellen, dass sie auch mit künftigen Versionen von PHP noch laufen (sie bekommen ein "Warning", wenn Sie diese Funktion trotzdem benutzen, außerdem wird das Argument als Wert- statt als Referenz-Parameter übergeben.)

Siehe auch Referenzen in PHP.

expose_php boolean

Bestimmt, ob PHP die Tatsache, dass es auf dem Server installiert ist, bekannt geben darf (z.B. durch Hinzufügen seiner Signatur zum Header des Webservers). Die Sicherheit wird hierdurch nicht beeinträchtigt, aber es kann bestimmt werden, ob PHP auf Ihrem Server läuft oder nicht.

Ressourcen-Grenze

Tabelle 4-4. Ressourcen-Grenze

Name | Standard | änderbar
memory_limit | "8M" | PHP_INI_ALL

Hier eine kurze Erklärung der Konfigurationsoptionen:

memory_limit integer

Setzt den Maximalwert des Speichers in Byte, den ein Skript verbrauchen darf. Damit können schlecht geschriebene Skripte verhindert werden, die den gesamten verfügbaren Speicher eines Servers "auffressen". Um diese Option nutzen zu können, muss Sie während des Kompilierens aktiviert werden. D.h., dass Ihr Konfigurations-Zeile folgendes enthalten muss: --enable-memory-limit. Bachten Sie, dass Sie den Wert auf -1 setzen müssen, wenn Sie kein Speicherlimit wünschen.

Siehe auch: max_execution_time.

Verarbeitung von Daten

Tabelle 4-5. Konfigurations-Optionen für die Verarbeitung von Daten

Name | Standard | änderbar
track-vars | "On" | PHP_INI_??
arg_separator.output | "&" | PHP_INI_ALL
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR
variables_order | "EGPCS" | PHP_INI_ALL
register_globals | "Off" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_long_arrays | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
post_max_size | "8M" | PHP_INI_SYSTEM|PHP_INI_PERDIR
gpc_order | "GPC" | PHP_INI_ALL
auto_prepend_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
default_mimetype | "text/html" | PHP_INI_ALL
default_charset | "iso-8859-1" | PHP_INI_ALL
always_populate_raw_post_data | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
allow_webdav_methods | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR

Hier eine kurze Erklärung der Konfigurationsoptionen:

track_vars boolean

Wenn diese Option aktiviert ist, sind Umgebungs-, GET-, POST-, Cookie- und Server-Variablen in den globalen assoziativen Arrays $_ENV, $_GET, $_POST, $_COOKIE und $_SERVER verfübar.

Beachten Sie, dass seit PHP 4.0.3, track_vars immer den Wert on hat.

arg_separator.output string

Das Trennzeichen, dass in von PHP generierten URLs benutzt wird, um Argumente abzutrennen.

arg_separator.input string

Liste der Trennzeichen, die von PHP beim Parsen von URLs zu Variablen benutzt werden.

Anmerkung: Jeder Buchstabe in dieser Option wird als Trennzeichen interpretiert!

variables_order string

Gibt die Reihenfolge der EGPCS-Variablen (Environment/Umgebung, GET, POST, Cookie, Server) beim Parsen an. Der Standardwert ist "EGPCS". Setzen Sie z.B. diese Option auf "GP", so wird PHP alle Umgebungs-, Cookie- und Server-Variablen ignorieren, außerdem werden alle GET-Variablen mit POST-Variablen überschrieben, wenn sie den gleichen Namen haben.

Siehe auch register_globals.

register_globals boolean

Dieser Schalter bestimmt, ob die EGPCS-Variablen (Environment/Umgebung, GET, POST, Cookie, Server) als globale Variablen registriert werden oder nicht. Zum Beispiel erzeugt die URL http://www.example.com/test.php?id=3 die Variable $id, wenn register_globals = on. Außerdem wäre $DOCUMENT_ROOT aus $_SERVER['DOCUMENT_ROOT'] verfügbar. Sie sollten dies ausschalten, wenn der globale Bereich Ihrer Skripte nicht durch Benutzerdaten gestört werden soll. Wir empfehlen Ihnen, sich stattdessen die vordefinierten Variablen von PHP anzusehen, wie z.B. die folgenden superglobalen Arrays: $_ENV, $_GET, $_POST, $_COOKIE und $_SERVER. Bitte lesen Sie auch das Sicherheits-Kapitel über die Benutzung von register_globals für weitere Informationen.

Bitte beachten Sie, dass register_globals nicht während der Laufzeit Ihrer Skripte gesetzt werden kann (ini_set()). Wenn Ihr Server es erlaubt, können Sie aber .htaccess wie oben beschrieben verwenden. Beispiel: php_flag register_globals on.

Anmerkung: register_globals wird durch die Option variables_order beeinträchtigt.

register_argc_argv boolean

Bestimmt, ob die argv- & argc-Variablen deklariert werden sollen (betrifft die GET-Informationen).

Siehe auch Kommandozeile. Diese Option ist seit PHP 4.0.0 verfügbar, vorher war sie immer "on".

register_long_arrays boolean

Bestimmt, ob PHP die nicht mehr empfohlenen langen Varianten ($HTTP_*_VARS) der vordefinierten Variablen registrieren soll. Wenn "on" (Standardwert), dann werden PHP-Variablen wie $HTTP_GET_VARS definiert. Wenn Sie diese nicht nutzen, empfehlen wir Ihnen, diese Option aus Performance-Gründen auf "off" zu setzen. Benutzen Sie stattdessen die superglobalen Arrays wie $_GET.

Diese Option ist seit PHP 5.0.0 verfügbar.

post_max_size integer

Setzt die maximal erlaubte Größe von POST-Daten. Diese Option betrifft auch den Datei-Upload. Um größere Dateien hochzuladen, muss der Wert größer sein als upload_max_filesize.

Wenn eine maximale Speichergrenze während des Kompilierens aktiviert wurde, dann betrifft auch memory_limit den Datei-Upload. Allgemein sollte memory_limit nicht größer als post_max_size sein.

gpc_order string

Legt die Auswertungsreihenfolge für GET-/POST-/COOKIE-Variablen fest. Die Standardeinstellung ist "GPC". Wenn Sie diesen Wert auf z.B. "GP" setzen, dann ignoriert PHP Cookies, und wird jede GET-Variable mit POST-Variablen des gleichen Namens überschreiben.

Anmerkung: Diese Option ist in PHP 4 nicht verfügbar. Benutzen Sie stattdessen variables_order.

auto_prepend_file string

Hier können Sie eine Datei angeben, die automatisch vor der Hauptdatei aufgerufen wird. Die Datei wird in die aufgerufene Datei eingebettet, als wenn Sie sie mittels der include() Funktion eingebunden hätten, dabei wird ein gesetzter include_path beachtet.

Der spezielle Wert none deaktiviert Auto-Prepending.

auto_append_file string

Hier können Sie eine Datei angeben, die automatisch nach der Hauptdatei aufgerufen wird. Die Datei wird in die aufgerufene Datei eingebettet, als wenn Sie sie mittels der include() Funktion eingebunden hätten, dabei wird ein gesetzter include_path beachtet.

Der spezielle Wert none deaktiviert Auto-Appending.

Anmerkung: Wird das Skript mit der Funktion exit() beendet, dann wird Auto-Appending nicht aktiv.

default_mimetype string

default_charset string

Seit Version 4.0b4 gibt PHP standardmäßig immer eine Zeichen-Kodierung im "Content-type:"-Header aus. Um dies zu verhindern, lassen Sie diese Option leer.

always_populate_raw_post_data boolean

Bestimmt, ob die Variable $HTTP_RAW_POST_DATA gefüllt werden soll.

allow_webdav_methods boolean

Bestimmt, ob WebDAV-HTTP-Requests in PHP-Skripten erlaubt sein soll (z.B. PROPFIND, PROPPATCH, MOVE, COPY etc.). Wenn Sie die POST-Daten solcher Requests erhalten müssen, dann müssen Sie auch always_populate_raw_post_data aktivieren.

Siehe auch magic_quotes_gpc, magic-quotes-runtime und magic_quotes_sybase.

Pfade und Verzeichnisse

Tabelle 4-6. Konfigurations-Optionen für Pfade und Verzeichnisse

Name | Standard | änderbar
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
cgi.force_redirect | "1" | PHP_INI_SYSTEM
cgi.redirect_status_env | "" | PHP_INI_SYSTEM
fastcgi.impersonate | "0" | PHP_INI_SYSTEM
cgi.rfc2616_headers | "0" | PHP_INI_SYSTEM

Hier eine kurze Erklärung der Konfigurationsoptionen:

include_path string

Hier können Sie eine Liste von Verzeichnissen angeben, in dem die Funktionen require(), include() und fopen_with_path() nach Dateien suchen. Das Format ist ähnlich zur PATH-Umgebungsvariablen des jeweiligen Systems: Eine Liste von Verzeichnissen, getrennt durch einen Doppelpunkt unter UNIX oder ein Semikolon unter Windows.

Beispiel 4-3. include_path unter UNIX

include_path=".:/php/includes"

Beispiel 4-4. include_path unter Windows

include_path=".;c:\php\includes"

Ein . in dieser Option ermöglicht, Dateien relativ zum aktuellen Verzeichnis einzubinden.

doc_root string

Hier wird das Stammverzeichnis der PHP-Skripte angegeben. Diese Option wird nur benutzt, wenn ein Wert angegeben wird. Wenn PHP mit safe mode konfiguriert wurde, werden alle Dateien außerhalb dieses Verzeichnisses ignoriert. Wenn PHP nicht mit FORCE_REDIRECT kompiliert wurde, sollten Sie doc_root setzen, wenn Sie PHP als CGI-Version (betrifft alle Webserver außer IIS) laufen lassen. Die Alternative ist, die Option cgi.force_redirect zu benutzen.

user_dir string

Der Basisname des Verzeichnisses, das für Benutzer-Verzeichnisse mit PHP-Dateien benutzt wird, z.B. public_html.

extension_dir string

Verzeichnis, in dem PHP dynamisch zu ladende Extensionen findet. Siehe auch enable_dl und dl().

extension string

Dynamisch zu ladende Extensionen, die geladen werden sollen, wenn PHP gestartet wird.

cgi.force_redirect boolean

cgi.force_redirect wird benötigt, um Sicherheit zu garantieren, wenn PHP als CGI-Version unter den meisten Webservern läuft. Wenn diese Option nicht angegeben wird, setzt PHP sie standardmäßig auf on. Auf Ihre eigene Gefahr hin können Sie dies ausschalten ("off").

Anmerkung: Windows-Benutzer: Sie können diese Option gefahrlos ausschalten, wenn Sie den IIS benutzen. Genauer: Sie müssen dies sogar tun. Für OmniHTTPD or Xitami gilt das gleiche.

cgi.redirect_status_env string

Wenn cgi.force_redirect eingeschaltet ist und Sie nicht den Apache- oder Netscape-Webserver (iPlanet) benutzen, müssen Sie eventuell eine Umgebungsvariable setzen, damit PHP weiß, ob es die Ausführung fortführen darf.

Anmerkung: Das Setzen dieser Variablen kann Sicherheitsrisiken verursachen, Sie sollten also wissen, was Sie tun.

fastcgi.impersonate string

FastCGI unter IIS (auf WINNT-basierten Betriebssystemen) unterstützt die Möglichkeit, Sicherheitsmerkmale des aufrufenden Clients zu bestimmen. Dies ermöglicht es IIS, den Sicherheitskontext zu bestimmen, in dem der Zugriff läuft. mod_fastcgi unter Apache unterstützt zur Zeit diese Funktion nicht (17.03.2002). Setzen Sie diese Option auf 1, wenn Sie IIS benutzen. Der Standardwert ist 0.

cgi.rfc2616_headers int

Bestimmt, welcher Typ von Headern benutzt werden soll, wenn HTTP-Antwort-Codes gesendet werden. Wenn diese Option auf 0 gesetzt ist, sendet PHP einen "Status:"-Header, der von Apache und anderen Webservern unterstützt wird. Ist sie auf 1 gesetzt, sendet PHP einen zu RFC 2616 konformen Header. Wenn Sie dies nicht verstehen, lassen Sie den Wert auf 0.

Datei-Uploads

Tabelle 4-7. Konfigurations-Optionen für Datei-Uploads

Name | Standard | änderbar
file_uploads | "1" | PHP_INI_SYSTEM
upload_tmp_dir | NULL | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR

Hier eine kurze Erklärung der Konfigurationsoptionen:

file_uploads boolean

Bestimmt, ob Datei-Uploads per HTTP erlaubt sind. Siehe auch die Optionen upload_max_filesize, upload_tmp_dir und post_max_size.

upload_tmp_dir string

Temporäres Verzeichnis, in dem Dateien während des Uploads gespeichert werden. Für dieses Verzeichnis muss der Benutzer, unter dem PHP läuft, Schreibberechtigung haben. Wenn hier nichts angeben wird, benutzt PHP das Standardverzeichnis für temporäre Dateien auf Ihrem System.

upload_max_filesize integer

Maximale Größe, die eine hochgeladene Datei haben darf.

Allgemeines SQL

Tabelle 4-8. Konfigurations-Optionen für allgemeines SQL

Name | Standard | änderbar
sql.safe_mode | "0" | PHP_INI_SYSTEM

Hier eine kurze Erklärung der Konfigurationsoptionen:

sql.safe_mode boolean

Konfigurations-Optionen für Debugger

Achtung

Nur PHP 3 hat einen standardmäßigen Debugger implementiert. Für weitere Informationen siehe Anhang E.

debugger.host string

DNS-Name oder IP-Adresse des Hosts, der vom Debugger benutzt werden soll.

debugger.port string

Portnummer, die vom Debugger benutzt wird.

debugger.enabled boolean

Bestimmt, ob der Debugger aktiviert ist.

Zurück | Zum Anfang | Nach vorne
Wie Sie die Konfigurations-Einstellungen ändern können | Nach oben | Sprachreferenz


Sprachreferenz

PHP Handbuch
Zurück Nach vorne

II. Sprachreferenz

Inhaltsverzeichnis
5. Grundlagen der Syntax
6. Typen
7. Variablen
8. Konstanten
9. Ausdrücke
10. Operatoren
11. Kontroll-Strukturen
12. Funktionen
13. Klassen und Objekte
14. Referenzen in PHP

Zurück | Zum Anfang | Nach vorne
Allgemeine Konfigurationseinstellungen |  | Grundlagen der Syntax


Grundlagen der Syntax

PHP Handbuch
Zurück Nach vorne

Kapitel 5. Grundlagen der Syntax

Inhaltsverzeichnis
Den HTML-Bereich der Datei verlassen
Abgrenzung von Anweisungen
Kommentare

Den HTML-Bereich der Datei verlassen

Während des Parsens einer Datei geht PHP den Text solange einfach durch, bis einer der speziellen Tags gefunden wird, der PHP mitteilt, dass ab nun mit der Interpretation des Textes als PHP Code zu beginnen ist. Der Parser führt nun den Code solange aus, bis er auf einen schließenden PHP Tag stößt, welcher dem Parser mitteilt, den Text ab hier wieder nur einfach durchzugehen. Das ist der Mechanismus der es erlaubt, PHP Code in HTML einzubinden: alles außerhalb der PHP Tags wird einfach alleine gelassen, während alles innerhalb dieser Tags als Code geparsed wird.

Es gibt vier Arten von Tags, welche die Böcke mit PHP Code kennzeichnen. Davon sind nur zwei immer verfügbar (<?php. . .?> and <script language="php">. . .</script>), die anderen können in der Konfigurationsdatei php.ini aktiviert bzw. deaktiviert werden. Die Tags in der Kurzform bzw. im ASP-Stil mögen zwar praktisch erscheinen, sind jedoch nicht so portabel wie die längeren Versionen. Wenn Sie weiters beabsichtigen, PHP Code in XML oder XHTML einzubinden, werden Sie die XML-konformen <?php. . .?> verwenden müssen.

Die von PHP unterstützten Tags sind:

Beispiel 5-1. Möglichkeiten, den HTML-Bereich zu verlassen

1.  <?php echo("In XHTML- oder XML-konformen Dokumenten benutzen Sie diese Syntax\n"); ?>

2.  <? echo ("Die einfachste Möglichkeit: eine SGML-´processing instruction´\n"); ?>
    <?= expression ?> Dies ist eine Abkürzung für "<? echo expression ?>"

3.  <script language="php">
        echo ("manche Editoren(wie FrontPage) mögen
              keine ´processing instructions´");
    </script>

4.  <% echo ("Optional können Sie auch Tags im ASP-Stil verwenden"); %>
    <%= $variable; # Das ist ein Abkürzung fuer "<% echo . . ." %>

Die erste Methode (<?php. . .?>) wird bevorzugt, da sie auch die Verwendung von PHP in XML-konformen Code, wie XHTML, erlaubt.

Die zweite Methode ist nicht immer verfügbar. Die Kurzform der Tags ist nur möglich, wenn diese zuvor aktiviert wurde. Dies kann mittels der Funktion short_tags() (nur PHP 3), dem Setzen der Konfigurationsoption short_open_tag in der PHP Konfigurationsdatei, oder durch das Kompilieren von PHP mit der Option --enable-short-tags. Auch wenn dise Methode standardmäßig in der php.ini.dist aktiviert ist, wird die Verwendung dieser Kurzform nicht empfohlen.

Die vierte Methode ist nur verfügbar, wenn die Konfigurationsoption asp_tags aktiviert ist.

Anmerkung: Die Unterstützung der Tags im ASP-Stil wurde in Version 3.0.4. hinzugefügt.

Anmerkung: Die Verwendung der ´short tags´ sollten Sie vermeiden, wenn Sie Applikationen oder Bibliotheken entwickeln, die verteilt oder auf PHP-Servern eingesetzt werden soll, die nicht unter Ihrer Kontrolle stehen, da die ´short tags´ auf dem einzusetzenden Server nicht unterstützt werden könnten. Stellen Sie also sicher, dass für portablen, weiterverteilbaren Code keine ´short tags´ verwendet werden.

Der schließende Tag für den PHP-Block schließt eine sofort folgende Zeilenschaltung mit ein, falls diese vorhanden ist. Außerdem beinhaltet der schließende Tag ein implizites Semikolon; Sie müssen also die letzte Zeile eines PHP-Blocks nicht mit einem Semikolon beenden.

PHP ermöglicht auch die Verwendung folgender Strukturen:

Beispiel 5-2. Erweitertes Verlassen

<?php
if ($expression) {
    ?>
    <strong>Das ist richtig.</strong>
    <?php
} else {
    ?>
    <strong>Das ist falsch.</strong>
    <?php
}
?>
Dies funktioniert wie erwartet, da PHP nach dem Auffinden eines ?> schließenden Tags einfach alles ausgibt, bis es wieder auf einen öffnenden Tag stößt. Das obige Beispiel ist natürlich gekünstelt, aber für die Ausgabe von großen Textblöcken ist der Ausstieg aus dem Parse-Modus generell effizienter, als den gesamten Text durch echo(), print(), etc. zu jagen.

Zurück | Zum Anfang | Nach vorne
Sprachreferenz | Nach oben | Abgrenzung von Anweisungen


Abgrenzung von Anweisungen

Einzelne Anweisungen werden genauso voneinander abgetrennt wie in C oder Perl - jedes Statement wird mit einem Semikolon beendet.

Auch der schließende Tag (?>) bedeutet das Ende eines Statements, deshalb sind die folgenden Beispiele gleichwertig:

<?php
    echo "Dies ist ein Test";
?>

<?php echo "Dies ist ein Test" ?>

Zurück | Zum Anfang | Nach vorne
Grundlagen der Syntax | Nach oben | Kommentare


Kommentare

PHP unterstützt 'C', 'C++' und Unix-Shell-artige Kommentare. Beispiele:

<?php
    echo "Dies ist ein Test"; // Dies ist ein einzeiliger Kommentar im C++-Stil.
    /* Dies ist ein mehrzeiliger Kommentar
       und noch eine Kommentar-Zeile */
    echo "Dies ist noch ein Test";
    echo "... und ein letzter Test"; # Dies ist ein Shell-artiger Kommentar.
?>

Die einzeiligen Kommentar-Arten kommentieren sämtlichen Text bis zum Zeilenende oder bis zum Ende des aktuellen PHP-Blocks aus, je nachdem, was zuerst eintritt.

<h1>Dies ist ein  <?php # echo "einfaches";?> Beispiel.</h1>
<p>Obige Überschrift wird lauten: 'Dies ist ein Beispiel.'.

Man sollte darauf achten, nicht mehrere ´C´-artigen Kommentare ineinander zu setzen, was vorkommen kann, wenn man große Blöcke auskommentiert.

<?php
/*
   echo "Dies ist ein Test"; /* Dieser Kommentar wird ein Problem verursachen. */
*/
?>

Die einzeiligen Kommentar-Arten kommentieren den Text tatsächlich nur bis zum Zeilenende oder bis zum Ende des aktuellen PHP-Blocks aus, je nachdem, was zuerst eintritt. Das heißt, dass HTML Code nach // ?> ausgegeben wird: ?> steigt aus dem PHP-Modus aus und kehrt in den HTML Modus zurück, ohne dass // dies beeinflussen könnte.

Zurück | Zum Anfang | Nach vorne
Abgrenzung von Anweisungen | Nach oben | Typen


Typen

PHP Handbuch
Zurück Nach vorne

Kapitel 6. Typen

Inhaltsverzeichnis
Einführung
Boolscher Typ
Integer Typen
Fließkomma-Zahlenwerte
Strings / Zeichenketten
Arrays
Objekte
Resource
NULL
In dieser Dokumentation verwendete Pseudo-Typen
Typen-Tricks

Einführung

PHP unterstützt acht primitive Typen.

Vier skalare Typen:

  • Boolean

  • Integer

  • Fließkomma-Zahl (float)

  • String / Zeichenkette

Zwei zusammengesetzte Typen:

  • Array

  • Object

Und zuletzt zwei spezielle Typen:

  • Resource

  • NULL

Für die bessere Lesbarkeit führt dieses Handbuch ein paar Pseudo-Typen ein:

  • Mixed

  • Number

  • Callback

Sie werden auch ein paar Hinweise auf den Typ "Double" finden. Betrachten Sie Double als dasselbe wie Float. Die beiden Bezeichnungen existieren nur aus historischen Gründen.

Der Typ einer Variablen wird normalerweise nicht vom Programmierer bestimmt. Zur Laufzeit von PHP wird entschieden, welchen Typs eine Variable ist, abhängig vom Zusammenhang in dem die Variable benutzt wird.

Anmerkung: Um den Typ und den Wert eines bestimmten Ausdrucks (Expression) zu überprüfen, können Sie var_dump() benutzen.

Anmerkung: Wenn Sie zur Fehlersuche einfach nur eine lesbare Darstellung eines Typs benötigen, benutzen Sie gettype(). Um auf einen bestimmten Typ zu prüfen, sollten Sie nicht gettype() benutzen. Stattdessen sollten Sie die is_type Funktionen verwenden. Ein paar Beispiele:

<?php
$bool = TRUE;   // ein Boolean (Wahrheitswert)
$str  = "foo";  // ein String (Zeichenkette)
$int  = 12;     // ein Integer (Ganzzahl)

echo gettype($bool); // gibt "boolean" aus
echo gettype($str);  // gibt "string" aus

// Falls es ein Integer ist, erhöhe ihn um vier
if (is_int($int)) {
    $int += 4;
}

// Falls $bool ein String ist, gebe ihn aus
// (gibt überhaupt nichts aus)
if (is_string($bool)) {
    echo "String: $bool";
}
?>

Wenn sie die Umwandlung in einen bestimmten Variablen-Typ erzwingen wollen, erreichen Sie dies entweder durch Typ-Umwandlung oder durch Gebrauch der Funktion settype().

Beachten Sie, dass eine Variable abhängig vom Typ, dem die Variable zu dem Zeitpunkt entspricht, in bestimmten Situationen unterschiedlich ausgewertet werden kann. Weitere Informationen entnehmen Sie dem Abschnitt zur Typ-Veränderung. Schauen Sie sich außerdem PHP type comparison tables an, wenn Sie an Beispielen verschiedener typenbezogener Vergleiche interessiert sind.

Zurück | Zum Anfang | Nach vorne
Kommentare | Nach oben | Boolscher Typ


Boolscher Typ

Das ist der einfachste Typ. Ein boolean drückt einen Wahrheitswert aus. Dieser kann entweder TRUE oder FALSE sein.

Anmerkung: Der boolsche Typ wurde in PHP 4 eingeführt.

Syntax

Um einen boolschen Typ wörtlich anzugeben, benutzen Sie entweder das Schlüsselwort TRUE oder FALSE. Beide unterscheiden sich nicht bezüglich Groß- und Kleinschreibung.

<?php
$foo = True; // $foo wird der Wert TRUE zugewiesen
?>

Üblicherweise verwenden Sie einen der Operatoren, der Ihnen einen boolean Wert liefert, den Sie dann an eine der Kontroll-Strukturen weiterreichen.

<?php
// == ist ein Vergleichs-Operator der auf Gleichheit überprüft und
// einen boolschen Wert liefert
if ($action == "show_version") {
    echo "Die Version ist 1.23";
}

// Das ist nicht notwendig...
if ($show_separators == TRUE) {
    echo "<hr>\n";
}

// ...weil Sie einfach schreiben können:
if ($show_separators) {
    echo "<hr>\n";
}
?>

Umwandlung nach boolean

Um einen Wert ausdrücklich nach boolean zu konvertieren benutzen Sie entweder die Umwandlung mittels (bool) oder (boolean). In den allermeisten Fällen ist es jedoch nicht notwendig die Umwandlung selbst vorzunehmen. Ein Wert wird automatisch konvertiert, falls ein Operator, eine Funktion oder eine Kontrollstruktur ein boolean Argument erfordern.

Siehe auch Typ-Veränderung.

Bei der Umwandlung nach boolean werden folgende Werte als FALSE angesehen:

  • das boolean FALSE selbst

  • die Integer 0 (Null)

  • die Fließkomma-Zahl 0.0 (Null)

  • die leere Zeichenkette und die Zeichenkette "0"

  • ein Array ohne Elemente

  • ein Objekt ohne Mitgliedsvariablen

  • der spezielle Typ NULL (einschließlich nicht definierter Variablen)

Jeder andere Wert wird als TRUE angesehen (einschließlich jeder Resource).

Warnung

-1 wird als TRUE angesehen, wie jede andere Zahl ungleich Null (egal ob negativ oder positiv)!

<?php
echo gettype((bool) "");        // bool(falsch)
echo gettype((bool) 1);         // bool(wahr)
echo gettype((bool) -2);        // bool(wahr)
echo gettype((bool) "foo");     // bool(wahr)
echo gettype((bool) 2.3e5);     // bool(wahr)
echo gettype((bool) array(12)); // bool(wahr)
echo gettype((bool) array());   // bool(falsch)
?>

Zurück | Zum Anfang | Nach vorne
Typen | Nach oben | Integer Typen


Integer Typen

Ein Integer ist eine Zahl aus der Menge Z = {..., -2, -1, 0, 1, 2, ...}.

Siehe auch: Ganzzahlen beliebiger Länge / GMP, Fließkomma-Zahlen und Mathematische Funktionen mit beliebiger Genauigkeit

Syntax

Ganzzahlen können in dezimaler (10-basierter), hexadezimaler (16-basierter) oder oktaler (8-basierter) Schreibweise angegeben werden, wahlweise mit einem vorangestellten Zeichen (- oder +).

Wenn Sie die oktale Schreibweise verwenden, müssen Sie die Zahl mit einer vorangestellten Null 0 schreiben; in hexadezimaler Schreibweise müssen Sie vor die Zahl ein 0x schreiben.

Beispiel 6-1. Integer Literale

<?php
$a = 1234; // Dezimalzahl
$a = -123; // eine negative Zahl
$a = 0123; // Oktalzahl (entspricht 83 dezimal)
$a = 0x1A; // Hexadezimalzahl (entspricht 26 dezimal)
?>
Formell ist die mögliche Struktur für Integer Literale:

dezimal     : [1-9][0-9]*
            | 0

hexadezimal : 0[xX][0-9a-fA-F]+

oktal       : 0[0-7]+

integer     : [+-]?dezimal
            | [+-]?hexadezimal
            | [+-]?oktal

Die Größe eines Integer-Wertes ist plattformabhängig, ein Maximalwert von ungefähr zwei Milliarden ist jedoch üblich (vorzeichenbehafteter 32-Bit-Wert). PHP unterstützt keine vorzeichenlosen Integer-Werte.

Integer Überlauf

Wenn Sie eine Zahl jenseits der Grenzen des Typs Integer angeben, wird diese stattdessen als Typ float interpretiert. Wenn Sie eine Operation ausführen, deren Ergebnis eine Zahl jenseits der Grenzen des Typs Integer ist, wird ebenso eine Zahl vom Typ float zurückgegeben.

<?php
$grosse_zahl =  2147483647;
var_dump($grosse_zahl);
// Ausgabe: int(2147483647)

$grosse_zahl =  2147483648;
var_dump($grosse_zahl);
// Ausgabe: float(2147483648)

// das gilt auch für Integers in hexadezimaler Schreibweise:
var_dump( 0x80000000 );
// Ausgabe: float(2147483648)

$million = 1000000;
$grosse_zahl =  50000 * $million;
var_dump($grosse_zahl);
// Ausgabe: float(50000000000)
?>

Warnung

Bedauerlicherweise gab es einen Bug in PHP, der die korrekte Funktionsweise verhinderte, wenn negative Zahlen verwendet wurden. Ein Beispiel: Bei der Ausführung von -50000 * $million war das Ergebnis -429496728. Sind beide Operanden positiv gibt es keine Probleme.

Dieses Problem ist in PHP 4.1.0 behoben worden.

In PHP gibt es keinen Operator für Integer-Divisonen. 1/2 ergibt float 0.5. Sie können den Wert in einen Integer umwandeln, um ihn immer abzurunden oder die Funktion round() benutzen.

<?php
var_dump(25/7);         // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4)
?>

Umwandlung nach integer

Um einen Wert ausdrücklich nach integer zu konvertieren, benutzen Sie entweder die Umwandlung mittels (int) oder (integer). In den allermeisten Fällen ist es jedoch nicht notwendig die Umwandlung selbst vorzunehmen. Ein Wert wird automatisch konvertiert, falls ein Operator, eine Funktion oder eine Kontrollstruktur ein integer Argument erfordern. Sie können einen Wert auch mit der Funktion intval() in einen Integer umwandeln.

Siehe auch Typ-Veränderung.

Von Booleans

FALSE ergibt 0 (Null), und TRUE ergibt 1 (Eins).

Von Fließkomma-Zahlen

Bei der Umwandlung von float nach integer wird die Zahl in Richtung Null gerundet.

Wenn der float jenseits der Grenzen von integer liegt (üblicherweise +/- 2.15e+9 = 2^31), ist das Ergebnis nicht definiert, weil float nicht genug Präzision besitzt um ein genaues integer Ergebnis zu liefern. Keine Warnung, nicht einmal eine Notiz wird in diesem Fall ausgegeben.

Warnung

Wandeln Sie nie einen Teil eines Ausdrucks nach integer um, da dies manchmal zu unerwarteten Ergebnissen führen kann.

<?php
echo (int) ( (0.1+0.7) * 10 ); // Ausgabe: 7!
?>

Für mehr Informationen schauen Sie unter Warnung über float-Präzision nach.

Von Zeichenketten / Strings

Siehe Umwandlung von Strings in Zahlen

Von anderen Typen

Achtung

Das Verhalten bei der Umwandlung nach integer ist für andere Typen nicht definiert. Zum gegenwärtigen Zeitpunkt ist das Verhalten so, als ob der Wert zuerst nach boolean konvertiert wird. Auf jeden Fall sollten Sie sich auf dieses Verhalten nicht verlassen. Es kann sich ohne Ankündigung ändern.

Zurück | Zum Anfang | Nach vorne
Boolscher Typ | Nach oben | Fließkomma-Zahlenwerte


Fließkomma-Zahlenwerte

Fließkomma-Zahlenwerte ("floats", "doubles" oder "reelle Zahlen") können durch eine der folgenden Anweisungen zugewiesen werden:

<?php
$a = 1.234;
$a = 1.2e3;
$a = 7E-10;
?>

Formell:

LNUM          [0-9]+
DNUM          ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM ( ({LNUM} | {DNUM}) [eE][+-]? {LNUM})

Die Größe einer Fließkomma-Zahl ist plattformabhängig, dennoch stellt ein Maximum von ~1.8e308 mit einer Genauigkeit von 14 Nachkomma-Stellen einen üblichen Wert dar (das entspricht 64-Bit im IEEE-Format).

Fließkomma Präzision

Es ist ziemlich normal, dass einfache Dezimalzahlen wie 0.1 oder 0.7 nicht in ihre internen binären Entsprechungen konvertiert werden können, ohne einen kleinen Teil ihrer Genauigkeit zu verlieren. Das kann zu verwirrenden Ergebnissen führen. So wird floor((0.1 + 0.7) * 10) normalerweise 7 statt des erwarteten Wertes 8 zurück geben (als Ergebnis der internen Entsprechung von 7.9999999999....

Das gründet sich auf die Tatsache, dass es unmöglich ist, manche Dezimal-Zahlen durch eine endliche Anzahl an Nachkomma-Stellen darzustellen. Dem Wert 1/3 entspricht z.B. der interne Wert von 0.3333333. . ..

Deshalb sollten Sie nie den Ergebnissen von Fließkomma-Operationen bis auf die letzte Nachkomma-Stelle trauen und nie solche auf Gleichheit prüfen. Benötigen Sie wirklich eine größere Genauigkeit, sollten sie die mathematischen Funktionen beliebiger Genauigkeit oder die Gmp Funktionen benutzen.

Umwandlung nach float

Für Informationen darüber, wann und wie Strings in Float umgewandelt werden, lesen Sie bitte den Abschnitt Umwandlung von Strings in Zahlen. Für die Werte anderer Typen ist die Umwandlung diesselbe, wie wenn der Wert in eine Ganzzahl und dann in einen Float umgewandelt worden wäre. Für weitere Informationen siehe Abschnitt Umwandlung nach integer.

Zurück | Zum Anfang | Nach vorne
Integer Typen | Nach oben | Strings / Zeichenketten


Strings / Zeichenketten

Ein String ist eine Folge von Zeichen. In PHP entspricht ein Zeichen einem Byte, das heißt, dass exakt 256 unterschiedliche Zeichen möglich sind. Das impliziert auch, dass PHP keine native Unterstützung für Unicode bietet. Siehe utf8_encode() und utf8_decode() für etwas Unicode-Unterstützung.

Anmerkung: Für einen String stellt die Länge kein Problem dar. Von PHP-Seite aus gibt es keine praktische Grenze für die Größe eines Strings. Daher gibt es keinen Grund sich Sorgen über lange Strings zu machen.

Syntax

Ein String kann auf drei verschiedene Weisen geschrieben werden.

  • Einfache Anführungszeichen (single quoted)

  • Doppelte Anführungszeichen (double quoted)

  • Heredoc Syntax

Einfache Anführungszeichen (Single quoted)

Der leichteste Weg einen einfachen String zu schreiben, ist der Einschluss in einfache Anführungszeichen (das Zeichen ').

Um ein einfaches Anführungszeichen wörtlich auszugeben, muss dieses, wie in vielen anderen Programmiersprachen auch mit einem Backslash (\) escaped werden. Wenn Sie innerhalb eines Strings einen Backslash vor einem einfachen Anführungszeichen oder am Ende eines Strings ausgeben wollen, müssen Sie diesen verdoppeln. Beachten Sie: wenn Sie versuchen irgendwelche anderen Zeichen zu escapen, wird der Backslash ebenfalls ausgegeben! Daher besteht für gewöhnlich keine Notwendigkeit den Backslash selbst zu escapen.

Anmerkung: In PHP 3 wird eine Warnung der Stufe E_NOTICE ausgegeben, wenn das passiert.

Anmerkung: Anders als bei den zwei anderen Schreibweisen werden Variablen und escape-Sequenzen für spezielle Zeichen innerhalb von single-quoted Strings nicht ausgewertet.

<?php
echo 'Das ist ein einfacher String';

echo 'Sie können auf diese Weise auch Zeilenumbrüche
innerhalb von Strings verwenden, wenn
Ihnen danach ist';

// Ausgabe: Arnold sagte einmal: "I'll be back"
echo 'Arnold sagte einmal: "I\'ll be back"';

// Ausgabe: Sie haben C:\*.* gelöscht?
echo 'Sie haben C:\\*.* gelöscht?';

// Ausgabe: Sie haben C:\*.* gelöscht?
echo 'Sie haben C:\*.* gelöscht?';

// Ausgabe: Das wird nicht ausgewertet: \n ein Zeilenumbruch
echo 'Das wird nicht ausgewertet: \n ein Zeilenumbruch';

// Ausgabe: Variablen werden auch $nicht $ausgewertet
echo 'Variablen werden auch $nicht $ausgewertet';
?>

Doppelte Anführungszeichen (Double quoted)

Wenn ein String in doppelten Anführungszeichen (") eingeschlossen ist, versteht PHP mehr Escape-Folgen für spezielle Zeichen:

Tabelle 6-1. Nicht ausgewertete / übergangene Zeichen:

Zeichenfolge | Bedeutung
\n | Zeilenvorschub (LF oder 0x0A als ASCII-Code)
\r | Wagenrücklauf (CR oder 0x0D als ASCII-Code)
\t | horizontaler Tabulator (HT oder 0x09 als ASCII-Code)
\\ | Backslash / Rückstrich
\$ | Dollar-Symbol
\" | doppelte Anführungszeichen
\[0-7]{1,3} | die Zeichenfolge, die dem regulären Ausdruck entspricht ist ein Zeichen in Oktal-Schreibweise
\x[0-9A-Fa-f]{1,2} | die Zeichenfolge, die dem regulären Ausdruck entspricht ist ein Zeichen in Hexadezimal-Schreibweise

Noch einmal: wenn Sie versuchen, irgend ein anderes Zeichen zu escapen wird der Backslash ebenfalls ausgegeben!

Das wichtigste Merkmal von double-quoted Strings ist die Tatsache, dass Variablennamen ausgewertet werden. Für Details siehe String Analyse (parsing)

Heredoc

Eine andere Möglichkeit Strings einzufassen, besteht im Gebrauch der heredoc-Syntax ("<<<"). Hierfür ist nach <<< ein Bezeichner zu setzen. Nun folgt der eigentliche String und dann derselbe Bezeichner um den String abzuschließen.

Der schließende Bezeichner muss in der ersten Spalte der Zeile stehen. Die verwendeten Bezeichner müssen den gleichen Regeln entsprechen wie alle anderen PHP-Labels auch: Sie dürfen lediglich alphanumerische Zeichen und den Unterstrich enthalten und müssen mit einem Unterstrich oder einem Buchstaben beginnen.

Warnung

Es ist sehr wichtig zu beachten, dass die Zeile mit dem schließenden Bezeichner keine anderen Zeichen enthält, ausgenommen möglicherweise ein Semikolon (;). Das bedeuted im Besonderen, dass der Bezeichner nicht eingerückt werden darf und es dürfen keine Leerzeichen oder Tabulatoren vor oder nach dem Semikolon stehen. Außerdem ist es wichtig, zu beachten, dass das erste Zeichen vor dem schließenden Bezeichner ein der Definition Ihres Betriebssystems entsprechender Zeilenvorschub, sein muss. Das ist zum Beispiel auf einem Macintosh ein \r.

Falls diese Regel gebrochen wird und der schließende Bezeichner nicht "sauber" ist, wird er nicht als schließender Bezeichner betrachtet und PHP wird weiter danach suchen. Wird in diesem Fall kein korrekter schließender Bezeichner gefunden, gibt es einen Parser-Fehler mit der Zeilennummer vom Ende des Skripts.

Heredoc-Text funktioniert wie ein String innnerhalb doppelter Anführungszeichen, nur ohne doppelte Anführungszeichen. Anführungszeichen innerhalb von heredoc-Texten müssen also keiner Sonderbehandlung (escapen) unterzogen werden, aber Sie können dennoch die oben aufgeführten Escape-Anweisungen verwenden. Variablen werden ausgewertet, aber besondere Aufmerksamkeit muss komplexen Variablen gewidmet werden, genau wie bei Strings.

Beispiel 6-2. Beispiel zur String-Festlegung per "heredoc"-Methode:

<?php
$str = <<<EOD
Beispiel eines Strings
über mehrere Script-Zeilen
durch Gebrauch der heredoc-Syntax.
EOD;
/* komplexeres Beispiel, mit Variablen */
class foo {
    var $foo;
    var $bar;

    function foo() {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'Mein Name';

echo <<<EOT
Mein Name ist "$name". Ich schreibe einige $foo->foo.
Nun schreibe ich gerade einige {$foo->bar[1]}.
Dies sollte ein großes 'A' schreiben: \x41
EOT;?>

Anmerkung: Die heredoc Unterstützung wurde in PHP 4 eingeführt.

Variablen-Analyse (parsing)

Wird ein String in doppelten Anführungszeichen oder mit heredoc angegeben, werden enthaltene Variablen ausgewertet (geparst).

Es gibt zwei Syntax-Typen: eine einfache und eine komplexe. Die einfache Syntax ist die geläufigste und bequemste. Sie bietet die Möglichkeit eine Variable, einen Array-Wert oder eine Objekt-Eigenschaft auszuwerten (parsen).

Die komplexe Syntax wurde in PHP 4 eingeführt und ist an den geschweiften Klammern {}erkennbar, die den Ausdruck umschließen.

Einfache Syntax

Sobald ein Dollarzeichen ($) auftaucht, wird der Parser versuchen, gierig so viele Zeichen wie möglich zu bekommen, um einen gültigen Variablennamen zu bilden. Schließen Sie Ihren Varaiblennamen in geschweifte Klammern ein, wenn Sie ausdrücklich das Ende des Namens angeben wollen.

<?php
$beer = 'Heineken';
echo "$beer's Geschmack ist großartig";  // funktioniert, "'" ist kein gültiges
                                         // Zeichen für einen Variablennamen
echo "Er hat einige $beers getrunken";   // funktioniert nicht, 's' ist ein gültiges
                                         // Zeichen für einen Variablennamen
echo "Er hat einige ${beer}s getrunken"; // funktioniert
echo "Er hat einige {$beer}s getrunken"; // funktioniert
?>

Auf ähnliche Weise können Sie erreichen, dass ein Array-Index oder eine Objekt-Eigenschaft ausgewertet wird. Bei Array-Indizes markiert die schließende eckige Klammer (]) das Ende des Index. Für Objekt-Eigenschaften gelten die gleichen Regeln wie bei einfachen Variablen, obwohl es bei Objekt-Eigenschaften keinen Trick gibt, wie dies bei Variablen der Fall ist.

<?php
// Diese Beispiele sind spezifisch für die Verwendung von Arrays
// innerhalb von Strings. Setzen sie die String-Schlüssel Ihrer Arrays
// außerhalb von Strings immer in Anführungszeichen und verwenden Sie
// außerhalb von Strings auch keine {geschweiften Klammern}.

// Wir lassen uns alle Fehlermeldungen anzeigen
error_reporting(E_ALL);

$früchte = array('Erdbeere' => 'rot' , 'Banane' => 'gelb');

// Funktioniert aber beachten Sie: außerhalb von
// String-Anführungszeichen funktioniert das anders
echo "Eine Banane ist $früchte[Banane].";

// Funktioniert
echo "Eine Banane ist {$früchte['Banane']}.";

// Funktioniert, aber PHP sucht, wie unten beschrieben, zuerst nach
// einer Konstanten namens Banane.
echo "Eine Banane ist {$früchte[Banane]}.";

// Funktioniert nicht; verwenden Sie geschweifte Klammern. Das
// erzeugt einen Parser-Fehler.
echo "Eine Banane ist $früchte['Banane'].";

// Funktioniert
echo "Eine Banane ist " . $früchte['Banane'] . ".";

// Funktioniert
echo "Dieses Quadrat ist $quadrat->breite Meter breit.";

// Funktioniert nicht. Für eine Lösung siehe die komplexe Syntax.
echo "Dieses Quadrat ist $quadrat->breite00 Zentimeter breit.";
?>

Für irgendetwas Komplexeres sollten Sie die komplexe Syntax nutzen.

Komplexe (geschweifte) Syntax

Diese wird nicht komplex genannt, weil etwa die Syntax komplex ist, sondern weil Sie auf diesem Weg komplexe Ausdrücke einbeziehen können.

Tatsächlich können Sie jeden beliebigen Wert einbeziehen, der im Namensbereich in Strings gültig ist. Schreiben Sie den Ausdruck einfach auf die gleiche Art und Weise, wie außerhalb des Strings, und umschließen diesen mit { und }. Da Sie '{' nicht escapen können, wird diese Syntax nur erkannt, wenn auf { unmittelbar $ folgt. (Benutzen Sie "{\$" oder "\{$" um ein wörtliches "{$" zu erhalten.) Einige Beispiele, um dies zu verdeutlichen:

<?php
// Wir lassen uns alle Fehlermeldungen anzeigen
error_reporting(E_ALL);

$great = 'fantastisch';

// Funktioniert nicht, Ausgabe: Das ist { fantastisch}
echo "Das ist { $great}";

// Funktioniert, Ausgabe: Das ist fantastisch
echo "Das ist {$great}";
echo "Das ist ${great}";

// Funktioniert
echo "Dieses Quadrat ist {$square->width}00 Zentimeter breit.";

// Funktioniert
echo "Das funktioniert: {$arr[4][3]}";

// Das ist aus dem gleichen Grund falsch
// wie $foo[bar] außerhalb eines Strings falsch ist. Mit
// anderen Worten, es funktioniert zwar, aber weil PHP
// zunächst nach einer Konstanten namens foo sucht, gibt
// es einen Fehler der Stufe E_NOTICE (undefined constant)
// aus.
echo "Das ist falsch: {$arr[foo][3]}";

// Funktioniert. Benutzen Sie bei der Verwendung
// mehrdimensionaler Arrays innerhalb von Strings immer
// Klammern um die Arrays.
echo "Das funktioniert: {$arr['foo'][3]}";

// Funktioniert
echo "Das funktioniert: " . $arr['foo'][3];

echo "Sie können sogar schreiben {$obj->values[3]->name}";

echo "Das ist der Wert der Variable mit Namen $name: {${$name}}";
?>

Zugriff und Modifikation von Zeichen in Strings

Innerhalb von Zeichenketten (strings) kann durch die Angabe des nullbasierten Offsets in geschweiften Klammern nach dem String auf das gewünschte Zeichen zugegriffen oder dieses modifiziert werden.

Anmerkung: Für Abwärtskompatibilität können Sie für den selben Zweck immer noch die Array-Klammern verwenden. Diese Syntax wird jedoch seit PHP 4 missbilligt.

Beispiel 6-3. Einige String-Beispiele

<?php
// Das erste Zeichen eines Strings.
$str = 'Das ist ein Test.'
$erstes = $str{0};                // $erstes enthält "D"

// Das dritte Zeichen eines Strings.
$drittes = $str{2};

// Das letzte Zeichen eines Strings.
$str = 'Das ist immer noch ein Test.'
$letztes = $str{strlen($str)-1};    // $letztes enthält "."

// Das letzte Zeichen eines Strings verändern
      $str = 'Schau auf die Straßi';
      $str{strlen($str)-1} = 'e';

?>

Nützliche Funktionen und Operatoren

Strings können mittels des '.'(dot)-Operators miteinander verbunden werden. Beachten Sie, dass dafür nicht der '+' (Additions)-Operator verwendet werden kann. Für mehr Informationen schauen Sie bitte unter den Zeichenketten-Operatoren nach.

Es gibt eine Menge nützlicher Funktionen zur String-Manipulation.

Für allgemeine Funktionen schauen Sie sich den Abschnitt über String Funktionen an, und für fortgeschrittenes Suchen & Ersetzen die Funktionen zu Regulären Ausdrücken (in zwei Ausführungen: Perl Kompatibel und POSIX erweitert).

Weiterhin gibt es auch noch Funktionen für URL-Strings, und Funktionen zum Verschlüsseln/Entschlüsseln von Strings (mcrypt und mhash).

Schließlich, falls Sie immer noch nicht das gefunden haben wonach Sie suchen, schauen Sie unter den Zeichen-Typen Funktionen nach.

Umwandlung nach string

Sie können einen Wert mit der (string)-Umwandlung oder mit der Funktion strval() in einen String umwandeln. Die Umwandlung in einen String wird im dem Bereich eines Ausdrucks, in dem ein String benötigt wird, automatisch für Sie vorgenommen. Dies geschieht, wenn Sie die Funktionen echo() oder print() benutzen oder wenn Sie den Wert einer Variablen mit einem String vergleichen. Die Abschnitte über Typen und Typen-Tricks verdeutlichen das folgende. Siehe auch settype().

Ein Boolean TRUE-Wert wird in den String "1" umgewandelt, der FALSE-Wert wird als "" (leerer String) dargestellt. Dadurch können Sie Boolean- und String-Werte ineinander umwandeln.

Ein Integer oder eine Fließkommazahl (Float) wird in einen String umgewandelt, der die Zahl durch seine Ziffern darstellt (bei Fließkommazahlen inklusive Exponententeil).

Arrays werden immer in den String "Array" umgewandelt. Sie können also den Inhalt eines Arrays nicht mit echo() oder print() ausgeben, um zu sehen, was es enthält. Um ein Element anzuschauen, benötigen Sie etwas in der Art echo $arr['foo']. Siehe weiter unten für Hinweise zur Ausgabe/Ansicht des kompletten Inhalts.

Objekte werden immer in den String "Object" umgewandelt. Wenn Sie für die Fehlersuche die Werte der Mitgliedsvariablen eines Objekts ausgeben möchten, lesen Sie bitte die Abschnitte weiter unten. Benutzen Sie get_class(), wenn Sie den Namen der Klasse erfahren möchten, von der ein Objekt eine Instanz ist.

Ressourcen werden immer in Strings mit der Struktur "Resource id #1" umgewandelt, wobei 1 die eindeutige Nummer ist, die der Resource von PHP zur Laufzeit zugeordnet wurde. Benutzen Sie get_resource_type(), wenn Sie wissen möchten, welchen Typs die Ressource ist.

NULL wird immer in einen leeren String umgewandelt.

Wie Sie oben erfahren haben, liefert Ihnen die Ausgabe von Arrays, Objekten oder Ressourcen keine brauchbaren Informationen über die Werte selbst. Schauen Sie sich für eine bessere Möglichkeit, sich Werte für die Fehlersuche ausgeben zu lassen, die Funktionen print_r() und var_dump() an.

Sie können PHP-Werte auch in Strings umwandeln, um sie dauerhaft zu speichern. Diese Methode wird als Serialisierung bezeichnet und kann mit der Funktion serialize() vorgenommen werden. Falls Ihr PHP über WDDX-Unterstützung verfügt, können Sie PHP-Werte auch in XML-Strukturen serialisieren.

Umwandlung von Strings in Zahlen

Sobald ein String als numerischer Wert ausgewertet wird, werden der resultierende Wert und der Typ wie folgt festgelegt.

Der String wird als float ausgewertet, wenn er eines der Zeichen '.', 'e' oder 'E' enthält. Ansonsten wird er als Integer-Wert interpretiert.

Der Wert wird durch den Anfangsteil des Strings bestimmt. Sofern der String mit gültigen numerischen Daten beginnt, werden diese als Wert benutzt. Andernfalls wird der Wert 0 (Null) sein. Gültige numerische Daten sind ein optionales Vorzeichen, gefolgt von einer oder mehreren Zahlen (optional mit einem Dezimalpunkt). Wahlweise kann auch ein Exponent angegeben werden. Der Exponent besteht aus einem 'e' oder 'E', gefolgt von einer oder mehreren Zahlen.

<?php
$foo = 1 + "10.5";               // $foo ist float   (11.5)
$foo = 1 + "-1.3e3";             // $foo ist float   (-1299)
$foo = 1 + "bob-1.3e3";          // $foo ist integer (1)
$foo = 1 + "bob3";               // $foo ist integer (1)
$foo = 1 + "10 Kleine Schweine"; // $foo ist integer (11)
$foo = 4 + "10.2 Ferkel";        // $foo ist float   (14.2)
$foo = "10 Schweine " + 1;       // $foo ist integer (11)
$foo = "10.0 Schweine " + 1;     // $foo ist float   (11)
$foo = "10.0 Schweine " + 1.0;   // $foo ist float (11)
?>

Weitere Informationen über solche Umwandlungen finden Sie in den UNIX Manualseiten unter strtod(3).

Wenn Sie irgendein Beispiel dieses Abschnitts testen wollen, können Sie dieses per "Copy und Paste" übernehmen. Fügen Sie die folgende Zeile Ihrem Skript hinzu und Sie sehen selbst was passiert:

<?php
echo "\$foo==$foo; Typ ist " . gettype ($foo) . "<br />\n";
?>

Erwarten Sie nicht, den Code eines Zeichens zu bekommen, indem Sie es in einen Integer umwandeln (wie das z.B. in C der Fall wäre). Benutzen Sie die Funktionen ord() und chr(), um Zeichencodes und Zeichen ineinander umzuwandeln.

Zurück | Zum Anfang | Nach vorne
Fließkomma-Zahlenwerte | Nach oben | Arrays


Arrays

Ein Array in PHP ist eigentlich eine geordnete Abbildung. Eine Abbildung ist ein Typ der Werte auf Schlüssel abbildet. Dieser Typ ist auf mehrere Arten optimiert, so dass Sie ihn auf verschiedene Weise benutzen können: als reales Array, als Liste (Vektor), als Hash-Tabelle (das ist eine praktische Anwendung einer Abbildung), als Verzeichnis, als Sammlung, als Stapel (Stack), als Warteschlange (Queue) und möglicherweise mehr. Da Sie ein weiteres PHP-Array als Wert benutzen können, ist es ziemlich einfach möglich Baumstrukturen zu simulieren.

Die Erklärung dieser Datenstrukturen sprengt den Rahmen dieses Handbuchs, aber Sie finden zumindest ein Beispiel für jede dieser Strukturen. Für weitergehende Informationen verweisen wir auf externe Literatur zu diesem breit gefächerten Thema.

Syntax

Angabe mit array()

Ein array kann mit Hilfe des Sparchkonstrukts array() erzeugt werden. Es benötigt eine bestimmte Anzahl von Komma-getrennten Schlüssel => Wert Paaren.

array( [Schlüssel =>] Wert
     , ...
     )
// Schlüssel kann ein Integer oder String sein
// Wert kann irgendetwas sein

<?php
$arr = array("foo" => "bar", 12 => true);

echo $arr["foo"]; // bar
echo $arr[12];    // 1
?>

Ein Schlüssel kann entweder ein integer oder ein string sein. Wenn ein Schlüssel die Standard-Darstellung einer integer Zahl ist, wird es als solche interpretiert werden, (z.B. "8" wird als 8 interpretiert, während "08" als "08" interpretiert werden wird). Es gibt in PHP keine unterschiedlichen Typen indizierter oder assoziativer Arrays. Es gibt nur einen Array-Typ, der sowohl Integer- als auch String-Indizes enthalten kann.

Ein Wert kann jeder PHP-Typ sein.

<?php
$arr = array("einarray" => array(6 => 5, 13 => 9, "a" => 42));

echo $arr["einarray"][6];    // 5
echo $arr["einarray"][13];   // 9
echo $arr["einarray"]["a"];  // 42
?>

Falls Sie für einen Wert keinen Schlüssel angeben, wird der größte der Ganzzahl-Indizes genommen und der neue Schlüssel wird dieses Maximum + 1 sein. Falls Sie einen Schlüssel angeben dem schon ein Wert zugeordnet wurde, wird dieser Wert überschrieben.

<?php
// Dieses Array ist dasselbe wie ...
array(5 => 43, 32, 56, "b" => 12);

// ... dieses Array
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>

Warnung

Ab PHP 4.3.0 hat sich die oben beschriebene Generierung von Indizes geändert. Wenn Sie etwas an ein Array anhängen, in dem der größte Schlüssel negativ ist, wird der nächste Schlüssel jetzt Null (0) sein. Davor wäre der neue Index, genauso wie bei positiven Indizes, der größte vorhandene Schlüssel + 1 gewesen.

Wenn Sie TRUE als Schlüssel benutzen, wird dies als Schlüssel vom Typ integer 1 ausgewertet. Benutzen Sie FALSE als Schlüssel, wird dies als Schlüssel vom Typ integer 0 ausgewertet. Die Benutzung von NULL als Schlüssel führt dazu, dass der Schlüssel als leerer String gewertet wird. Verwenden Sie einen leeren String als Schlüssel, wird ein Schlüssel mit einem leeren String und seinem Wert erzeugt (oder überschrieben). Das entspricht nicht der Verwendung von leeren Klammern.

Sie können keine Arrays oder Objekte als Schlüssel benutzen. Der Versuch wird mit einer Warnung enden: Illegal offset type.

Erzeugen / Verändern mit der eckigen Klammer-Syntax

Sie können ein bestehendes Array durch explizites Zuweisen von Werten verändern.

Weisen Sie dem Array Werte zu indem Sie den Schlüssel in eckigen Klammern angeben. Sie können den Schlüssel auch weglassen. In diesem Fall schreiben Sie einfach ein leeres Klammerpaar ("[]") hinter den Variablennamen.
$arr[Schlüssel] = Wert;
$arr[] = Wert;
// Schlüssel kann ein integer oder ein string sein
// Wert kann irgendetwas sein.
Falls $arr bis dahin nicht existiert, wird es erzeugt. Das ist also eine alternative Syntax um ein Array zu erzeugen. Um einen bestimmten Wert zu ändern, weisen Sie einfach einem Element, das Sie mit seinem Schlüssel spezifizieren, einen neuen Wert zu. Wenn Sie ein Schlüssel/Wert Paar entfernen möchten, benutzen Sie unset().

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // An dieser Stelle des Skrips ist das
                // dasselbe wie $arr[13] = 56;

$arr["x"] = 42; // Fügt dem Array ein neues Element mit
                // dem Schlüssel "x" hinzu

unset($arr[5]); // Entfernt das Element aus dem Array

unset($arr);    // Löscht das komplette Array
?>

Anmerkung: Wie weiter oben schon erwähnt, wird, falls Sie die Klammern setzen ohne einen Schlüssel anzugeben, der größte der Integer-Indizes genommen und der neue Schlüssel wird dieses Maximum + 1 sein. Falls es noch keine Integer-Indizes gibt, wird der Schlüssel zu 0 (Null). Falls Sie einen Schlüssel angeben dem schon ein Wert zugeordnet wurde, wird dieser Wert überschrieben.

Warnung

Ab PHP 4.3.0 hat sich die oben beschriebene Generierung von Indizes geändert. Wenn Sie etwas an ein Array anhängen, in dem der größte Schlüssel negativ ist, wird der nächste Schlüssel jetzt Null (0) sein. Davor wäre der neue Index, genauso wie bei positiven Indizes, der größte vorhandene Schlüssel + 1 gewesen.

Beachten Sie, dass der hierbei verwendete größte Integer-Schlüssel im Array zu diesem Zeitpunkt nicht vorhanden sein muss. Er muss nur irgendwann im Array existiert haben, seitdem es zum letzten Mal neu indiziert wurde. Folgendes Beispiel zur Veranschaulichung:

<?php
// Wir erzeugen ein einfaches Array
$array = array(1, 2, 3, 4, 5);
print_r($array);

// Nun löschen wir alle Elemente, lassen das Array selbst
// aber intakt:
foreach ($array as $i => $wert) {
    unset($array[$i]);
}
print_r($array);

// Wir hängen ein Element an (beachten Sie, dass der neue Schlüssel 5
// ist, statt 0, wie sie vielleicht erwarten würden).
$array[] = 6;
print_r($array);

// Neu indizieren:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

Obiges Beispiel würde folgende Ausgabe erzeugen:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Nützliche Funktionen

Es gibt viele nützliche Funktionen um mit Arrays zu arbeiten. Schauen Sie unter dem Abschnitt Array Funktionen nach.

Anmerkung: Mit unset() können Sie Schlüssel eines Arrays löschen. Halten Sie sich vor Augen, dass das Array NICHT neu indiziert wird. Wenn Sie nur "gewöhnliche Integer-Indizes" (bei Null beginnend, jeweils um eins steigend) verwenden, erreichen Sie die Neuindizierung durch Verwendung von array_values().

<?php
$a = array(1 => 'eins', 2 => 'zwei', 3 => 'drei');
unset($a[2]);

/* erzeugt ein Array das wie folgt definiert worden wäre:
   $a = array(1 => 'eins', 3 => 'drei');
   und NICHT
   $a = array(1 => 'eins', 2 => 'drei');
*/

$b = array_values($a);
// Jetzt ist $b array(1 => 'eins', 2 =>'drei')
?>

Die foreach Kontrollstruktur gibt es speziell für Arrays. Damit ist es leicht ein Array zu durchlaufen.

Array do's und don'ts

Warum ist $foo[bar] falsch?

Sie sollten immer Anführungszeichen für einen String-Literal-Index eines Arrays benutzen. Zum Beispiel sollten Sie $foo['bar'] und nicht $foo[bar] benutzen. Aber warum ist $foo[bar] falsch? Vieleicht kennen Sie folgende Syntax aus alten Skripts:

<?php
$foo[bar] = 'Feind';
echo $foo[bar];
// usw
?>

Es ist falsch, funktioniert aber. Warum ist es dann falsch? Der Grund ist, dass dieser Code statt eines Strings ('bar'- beachten Sie die Anführungszeichen) eine undefinierte Konstante (bar) enthält und PHP in Zukunft Konstanten definieren könnte, die, unglücklicherweise für Ihren Code, den gleichen Namen verwenden. Es funktioniert, weil PHP einen bloßen String (ein String ohne Anführungszeichen, der keinem bekannten Symbol entpricht) automatisch in einen String umwandelt, der den bloßen String enthält. Wenn beispielsweise keine Konstante namens bar definiert ist, ersetzt es PHP durch den String 'bar' und verwendet diesen.

Anmerkung: Das bedeutet nicht, dass Schlüssel immer in Anführungszeichen gesetzt werden müssen. Wenn Sie nämlich Schlüssel, die Konstanten oder Variablen sind, in Anführungszeichen setzen, werden diese von PHP nicht ausgewertet.

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);

// Ein einfaches Array:
$array = array(1, 2);
$anzahl = count($array);
for ($i = 0; $i < $anzahl; $i++) {
    echo "\nÜberprüfe $i: \n";
    echo "Schlecht: " . $array['$i'] . "\n";
    echo "Gut: " . $array[$i] . "\n";
    echo "Schlecht: {$array['$i']}\n";
    echo "Gut: {$array[$i]}\n";
}
?>

Anmerkung: Obiges Beispiel würde folgende Ausgabe erzeugen:
Überprüfe 0:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Schlecht:
Gut: 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Schlecht:
Gut: 1

Überprüfe 1:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Schlecht:
Gut: 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Schlecht:
Gut: 2

Weitere Beispiele zur Veranschaulichung dieses Sachverhalts:

<?php
// Wir lassen uns alle Fehlermeldungen anzeigen
error_reporting(E_ALL);

$arr = array('obst' => 'Apfel', 'gemuese' => 'Karotte');

// Richtig
print $arr['obst'];  // Apfel
print $arr['gemuese']; // Karotte

// Falsch. Es funktioniert, gibt aber wegen der undefinierten
// Konstante namens obst auch einen PHP-Fehler der Stufe E_NOTICE
// aus:
//
// Notice: Use of undefined constant obst - assumed 'obst' in...
print $arr[obst];    // Apfel

// Definieren wir nun eine Konstante um zu veranschaulichen was
// passiert. Wir weisen einer Konstanten namens obst den Wert
// 'gemuese' zu.
define('obst', 'gemuese');

// Beachten Sie jetzt den Unterschied
print $arr['obst'];  // Apfel
print $arr[obst];    // Karotte

// Folgendes ist in Ordnung, weil es innerhalb eines Strings ist.
// Innerhalb eines Strings wird nicht nach Konstanten gesucht und
// deshalb gibt es hier auch keinen E_NOTICE-Fehler.
print "Hallo $arr[obst]";      // Hallo Apfel

// Eine Ausnahme: innerhalb von Strings ermöglichen {Klammern}
// um Arrays, dass nach Konstanten gesucht wird
print "Hallo {$arr[obst]}";    // Hallo Karotte
print "Hallo {$arr['obst']}";  // Hallo Apfel

// Das funktioniert nicht und ergibt in etwa folgenden Parser-Fehler:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Das gilt natürlich auch für die Verwendung von Autoglobalen in
// Strings
print "Hallo $arr['obst']";
print "Hallo $_GET['foo']";

// Eine andere Möglichkeit ist die Verkettung
print "Hallo " . $arr['obst']; // Hallo Apfel
?>

Wenn Sie error_reporting() auf Fehler der Stufe E_NOTICE einstellen (beispielsweise durch setzen auf E_ALL), werden Sie diese Fehlermeldungen zu sehen bekommen. Standardmäßig ist error_reporting so eingestellt, dass sie nicht angezeigt werden.

Wie im Abschnitt Syntax ausgeführt, muss zwischen den eckigen Klammern ('[' und ']') ein Ausdruck stehen. Das heißt, dass Sie Dinge ähnlich diesen schreiben können:

<?php
echo $arr[somefunc($bar)];
?>

Das ist ein Beispiel dafür, wie Sie den Rückgabewert einer Funktion als Array-Index verwenden können. Ebenso kennt PHP Konstanten. Vielleicht haben Sie die E_* Konstanten schon einmal gesehen.

<?php
$error_descriptions[E_ERROR]   = "Ein schwerwiegender Fehler ist aufgetreten";
$error_descriptions[E_WARNING] = "PHP hat eine Warnung ausgegeben";
$error_descriptions[E_NOTICE]  = "Das ist nur eine informelle Notiz";
?>

Beachten Sie, dass E_ERROR ebenso ein gültiger Bezeichner ist, genau wie bar im ersten Beispiel. Das letzte Beispiel entspricht aber tatsächlich dem folgendem Code:

<?php
$error_descriptions[1] = "Ein schwerwiegender Fehler ist aufgetreten";
$error_descriptions[2] = "PHP hat eine Warnung ausgegeben";
$error_descriptions[8] = "Das ist nur eine informelle Notiz";
?>

weil E_ERROR gleich 1 ist, usw.

Wie schon in den obigen Beispielen erklärt wurde, funktioniert $foo[bar] zwar, ist aber falsch. Es funktioniert, weil bar aufgrund seiner Syntax als Konstante ausgewertet wird. In diesem Fall jedoch existiert keine Konstane mit dem Namen bar. PHP nimmt an, dass Sie bar wörtlich gemeint haben, wie den String 'bar', aber vergessen haben, die Anführungszeichen zu setzen.

Aber warum ist es schlecht?

Eines Tages könnte sich das PHP-Team entscheiden eine weitere Konstante oder ein Schlüsselwort hinzuzufügen oder Sie könnten eine weitere Konstante in Ihre Anwendung einfügen. Und dann geraten Sie in Schwierigkeiten. Zum Beispiel können Sie bereits die Wörter empty und default auf diese Art nicht benutzen, weil es speziele Schlüsselwörter sind.

Anmerkung: Um es nochmals zu wiederholen, innerhalb eines Strings in doppelten Anführungszeichen ist es zulässig, Array-Indizes ohne Anführungszeichen zu schreiben, weshalb "$foo[bar]" gültig ist. Schauen Sie sich für Einzelheiten darüber, warum das so ist, obige Beispiele und den Abschnitt über Variablen-Analyse in Strings an.

Umwandlung nach array

Für die Typen Integer, Float, String, Boolean und Resource gilt: wenn Sie einen Wert in ein Array umwandeln, bekommen Sie ein Array mit einem Element (mit Index 0), das der skalare Wert ist, den Sie anfangs hatten.

Wenn Sie ein Objekt in ein Array umwandeln, bekommen Sie die Eigenschaften (Mitgliedsvariablen) des Objekts als Elemente des Arrays. Die Schlüssel sind die Namen der Mitgliedsvariablen.

Wenn Sie einen NULL-Wert in ein Array umwandeln, bekommen Sie ein leeres Array.

Vergleiche

Arrays können Sie mit der Funktion array_diff() und mit den Array Operatoren vergleichen.

Beispiele

Der Array-Typ in PHP ist sehr vielseitig. Hier folgen einige Beispiele um Ihnen die Mächtigkeit von Arrays zu veranschaulichen.

<?php
// Das hier
$a = array('Farbe'     => 'rot',
           'Geschmack' => 'süß',
           'Form'      => 'rund',
           'Name'      => 'Apfel',
                          4          // Schlüssel ist 0
          );

// ist komplett gleichwertig mit
$a['Farbe']     = 'rot';
$a['Geschmack'] = 'süß';
$a['Form']      = 'rund';
$a['Name']      = 'Apfel';
$a[]            = 4;          // Schlüssel ist 0

$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
/* ergibt das Array: array(0 => 'a', 1 => 'b', 2 => 'c'),
   oder einfacher: array('a', 'b', 'c')
*/
?>

Beispiel 6-4. Verwenden von array()

<?php
// Array als (Eigenschafts-)Abbildung
$map = array('version'    => 4,
             'OS'         => 'Linux',
             'Sprache'    => 'englisch',
             'short_tags' => true
            );

// strikt numerische Schlüssel
$array = array(7,
               8,
               0,
               156,
               -10,
              );
// Dies entspricht: array(0 => 7, 1 => 8, ...)

// wechselnde Schlüssel
$wechselnd = array(        10,  // Schlüssel: 0
                   5    =>  6,
                   3    =>  7,
                   'a'  =>  4,
                           11,  // Schlüssel: 6 (Maximum der Integer-Indices war 5)
                   '8'  =>  2,  // Schlüssel: 8 (integer!)
                   '02' => 77,  // Schlüssel: '02'
                   0    => 12   // 10 wird mit dem neuen Wert 12 überschrieben
                  );

// leeres Array
$leer = array();
?>

Beispiel 6-5. Sammlung

<?php
$farben = array('rot', 'blau', 'grün', 'gelb');

foreach ($farben as $farbe) {
    echo "Gefällt Ihnen $farbe?\n";
}

/* Ausgabe:
Gefällt Ihnen rot?
Gefällt Ihnen blau?
Gefällt Ihnen grün?
Gefällt Ihnen gelb?
*/
?>

Beachten Sie, dass es gegenwärtig nicht möglich ist die Werte eines Arrays direkt in einer solchen Schleife zu ändern. Eine Lösung ist folgendes:

Beispiel 6-6. Sammlung

<?php
foreach ($farben as $schluessel => $farbe) {
    // funktioniert nicht:
    //$farbe = strtoupper($farbe);

    // funktioniert:
    $farben[$schluessel] = strtoupper($farbe);
}
print_r($farben);

/* Ausgabe:
Array
(
    [0] => ROT
    [1] => BLAU
    [2] => GRÜN
    [3] => GELB
)
*/
?>

Dieses Beispiel erzeugt ein Array, dessen Schlüssel bei eins beginnt.

Beispiel 6-7. 1-basierter Index

<?php
$erstes_viertel  = array(1 => 'Januar', 'Februar', 'März');
print_r($erstes_viertel);

/* Ausgabe:
Array
(
    [1] => 'Januar'
    [2] => 'Februar'
    [3] => 'März'
)
*/
?>

Beispiel 6-8. Füllen eines Arrays

<?php
// Füllen eines Arrays mit allen Inhalten eines Verzeichnisses
$handle = opendir('.');
while (false !== ($datei = readdir($handle))) {
    $dateien[] = $datei;
}
closedir($handle);
?>

Arrays sind geordnet. Diese Ordnung können Sie mit Hilfe verschiedener Sortierfunktionen verändern. Für mehr Informationen schauen Sie unter dem Abschnitt zu den Array Funktionen nach. Die Anzahl der Elemente in einem Array können Sie mit der Funktion count() zählen.

Beispiel 6-9. Sortieren eines Arrays

<?php
sort($dateien);
print_r($dateien);
?>

Weil der Wert eines Arrays alles sein kann, kann dieser Wert wiederum ein Array sein. Somit können Sie rekursive und multidimensionale Arrays erzeugen.

Beispiel 6-10. Rekursive and multidimensionale Arrays

<?php
$fruits = array ("früchte" => array("a" => "Orange",
                                    "b" => "Banane",
                                    "c" => "Apfel"
                                   ),
                 "nummern" => array(1,
                                    2,
                                    3,
                                    4,
                                    5,
                                    6
                                   ),
                 "löcher"  => array(     "erstens",
                                    5 => "zweitens",
                                         "drittens"
                                   )
                );

// Ein paar Beispiele zum Ansprechen der Werte aus obigem Array
echo $fruits["löcher"][5];    // gibt "zweitens" aus
echo $fruits["früchte"]["a"]; // gibt "Orange" aus
unset($fruits["löcher"][0]);  // entfernt "erstens"

// Erzeugen eines neuen mehrdimensionalen Arrays
$saefte["Apfel"]["gruen"] = "gut";
?>

Sie sollten wissen, dass beim Zuweisen eines Arrays die Werte immer kopiert werden. Um ein Array als Referenz zu kopieren, müssen Sie den Referenz-Operator verwenden.

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 wird verändert,
             // $arr1 ist immer noch array(2, 3)

$arr3 = &$arr1;
$arr3[] = 4; // nun sind $arr1 und $arr3 gleich
?>

Zurück | Zum Anfang | Nach vorne
Strings / Zeichenketten | Nach oben | Objekte


Objekte

Objekt-Initialisierung

Um ein Objekt zu initialisieren benutzen sie die Angabe new, dadurch wird das Objekt einer Variablen-Instanz zugewiesen.

<?php
class foo {
    function tue_foo() {
        echo "Tue gerade foo.";
    }
}

$bar = new foo;
$bar->tue_foo();
?>

Für eine ausführliche Darstellung lesen Sie das Kapitel Klassen und Objekte

Umwandlung nach object

Wenn ein Objekt in ein Objekt umgewandelt wird, wird es nicht verändert. Wenn ein Wert eines anderen Typs in ein Objekt umgewandelt wird, wird eine neue Instanz der eingebauten Klasse stdClass erzeugt. War der Wert Null, dann ist die neue Instanz leer. Bei jedem anderen Wert enthält eine Mitgliedsvariable namens scalar den Wert.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // gibt 'ciao' aus
?>

Zurück | Zum Anfang | Nach vorne
Arrays | Nach oben | Resource


Resource

Eine Resource ist eine spezielle Variable, die eine Referenz auf eine externe Ressource enthält. Ressourcen werden von bestimmten Funktionen erzeugt und benutzt. Eine Liste dieser Funktionen und der entsprechenden Resource-Typen finden Sie im Anhang.

Anmerkung: Der Resource-Typ wurde in PHP 4 eingeführt.

Umwandlung nach resource

Da Resource-Typen spezielle Routinen zu geöffneten Dateien, Datenbankverbindungen, Bildinformationen und Ähnlichem enthalten, können Sie keinen Wert in eine Resource umwandeln.

Freigabe von Ressourcen

Aufgrund des Reference-Counting Systems, das mit PHP 4's Zend Egine eingeführt wurde, wird automatisch entdeckt, wenn auf eine Ressource nicht mehr zugegriffen wird (wie in Java). Wenn dies der Fall ist werden alle Ressourcen, die für diese Ressource in Gebrauch waren, durch den "Müllsammler" (garbage collector) freigegeben. Aus diesem Grund ist es selten jemals notwendig, Speicher manuell durch Aufruf von free_result-Funktionen freizugeben.

Anmerkung: Persistente Datenbank-Links stellen einen Sonderfall dar, sie werden durch den garbage collector nicht zerstört. Siehe auch den Abschnitt über Persistente Datenbankverbindungen.

Zurück | Zum Anfang | Nach vorne
Objekte | Nach oben | NULL


NULL

Der spezielle Wert NULL steht dafür, dass eine Varaiable keinen Wert hat. NULL ist der einzig mögliche Wert des Typs NULL.

Anmerkung: Der Null-Typ wurde in PHP 4 eingeführt.

Eine Variable wird als NULL interpretiert, wenn

  • ihr die Konstannte NULL als Wert zugewiesen wurde,

  • ihr bis jetzt kein Wert zugewiesen wurde,

  • sie mit unset() gelöscht wurde.

Syntax

Es gibt nur einen Wert des Typs NULL: das Schlüsselwort NULL. Groß-/Kleinschreibung spielt keine Rolle.

<?php
$var = NULL;
?>

Siehe auch is_null() und unset().

Zurück | Zum Anfang | Nach vorne
Resource | Nach oben | In dieser Dokumentation verwendete Pseudo-Typen


In dieser Dokumentation verwendete Pseudo-Typen

Mixed

Mixed deutet darauf hin, dass ein Parameter mehrere (aber nicht notwendigerweise alle) Typen akzeptiert.

gettype() akzeptiert beispielsweise alle PHP-Typen, während str_replace() Strings und Arrays akzeptiert.

Number

Number deutet darauf hin, dass ein Parameter entweder ein Integer oder ein Float sein kann.

Callback

Einige Funktionen wie call_user_func() oder usort() akzeptieren benutzerdefinierte Callback-Funktionen als Parameter. Callback-Funktionen können nicht nur einfache Funktionen sein, sondern auch Objektmethoden einschließlich statischer Klassenmethoden.

Eine PHP-Funktion wird einfach durch Ihren Namen als String
übergeben. Sie können jede eingebaute oder benutzerdefinierte
Funktion übergeben mit Ausnahme von array(),
echo(), empty(),
eval(), exit(),
isset(), list(),
print() und unset().

Eine Methode eines instanzierten Objekts wird als Array übergeben, das ein Objekt als Element mit Index 0 und einen Methodennamen als Element mit Index 1 enthält.

Statische Klassenmethoden können auch übergeben werden, ohne ein Objekt dieser Klasse zu instanzieren, indem statt des Objekts der Name der Klasse als Element mit Index 0 übergeben wird.

Beispiel 6-11. Beispiele zur Callback-Funktion

<?php

// einfaches callback Beispiel
function meine_callback_funktion() {
    echo 'hallo welt!';
}
call_user_func('meine_callback_funktion');

// Beispiele für Callbackmethoden
class MeineKlasse {
    function meineCallbackMethode() {
        echo 'Hallo Welt!';
    }
}

// Aufruf einer statischen Klassenmethode ohne Instanzierung
// eines Objekts
call_user_func(array('MeineKlasse', 'meineCallbackMethode'));

// Aufruf einer Objektmethode
$obj = new MeineKlasse();
call_user_func(array(&$obj, 'meineCallbackMethode'));
?>

Zurück | Zum Anfang | Nach vorne
NULL | Nach oben | Typen-Tricks


Typen-Tricks

PHP erfordert (bzw. unterstützt) keine expliziten Typ-Definitionen bei der Deklaration von Variablen; der Typ einer Variablen wird durch den Zusammenhang bestimmt in dem die Variable benutzt wird. Das bedeutet, dass bei der Zuweisung eines Strings zu einer Variablen $var diese Variable $var zum Typ String wird. Sollten Sie dananch der Variablen $var einen Integer-Wert zuweisen, wird sie zu einem Integer-Typ.

Ein Beispiel für die automatische Typ-Konvertierung von PHP ist der Plus-Operator '+'. Ist einer der zu addierenden Werte vom Typ float, werden alle Werte als float-Typ behandelt. Auch das Ergebnis der Addition wird vom Typ float sein. Andernfalls werden die Werte als integer-Typen angesehen und das Ergebnis wird ebenfalls vom Typ Integer sein. Beachten Sie, dass hierdurch NICHT der Typ der Operanden selbst beeinflusst wird; der Unterschied liegt einzig und allein in der Auswertung dieser Operanden.

<?php
$foo = "0";                         // $foo ist vom Typ String (ASCII 48)
$foo += 2;                          // $foo ist jetzt vom Typ Integer (2)
$foo = $foo + 1.3;                  // $foo ist nun vom Typ float (3.3)
$foo = 5 + "10 Sehr kleine Ferkel"; // $foo ist vom Typ Integer (15)
$foo = 5 + "10 Kleine Schweine";    // $foo ist vom Typ Integer (15)
?>

Wenn Ihnen die beiden letzten Beispiele merkwürdig erscheinen, beachten Sie die Umwandlung von Strings in Zahlen.

Wenn Sie die Auswertung einer Variablen als einen speziellen Typ erzwingen wollen, beachten sie den Abschnitt in Typ-Umwandlung. Wollen Sie den Typ einer Variable ändern, schauen Sie bei settype() nach.

Um die Beispiele dieses Kapitels auszuprobieren, können Sie die Funktion var_dump() verwenden.

Anmerkung: Das Verhalten einer automatischen Umwandlung zum Typ Array ist zur Zeit nicht definiert.

<?php
$a = "1";     // $a ist ein String
$a[0] = "f";  // Was ist mit den String offsets? Was passiert?
?>

Weil PHP (aus historischen Gründen) die Indizierung innerhalb von Strings mittels der gleichen Syntax wie bei der Array-Indizierung unterstützt, führt das o.a. Beispiel zu einem Problem: Soll $a zu einem Array werden, dessen erstes Element ein "f" ist oder soll "f" das erste Zeichen des Strings $a werden?

Die aktuellen Versionen von PHP interpretieren die zweite Anweisung als Stringversatz-Kennung, weshalb $a zu "f" wird. Das Ergebnis dieser automatischen Umwandlung sollte jedoch als undefiniert betrachtet werden. Mit PHP 4 wurde die neue Syntax mit geschweiften Klammern eingeführt um auf Zeichen in einem String zuzugreifen. Verwenden Sie statt der oben vorgestellten Syntax folgende:

<?php
$a    = "abc"; // $a ist ein String
$a{1} = "f";   // $a ist jetzt "afc"
?>

Für weitere Informationen siehe Abschnitt Zugriff auf Zeichen in Strings.

Typ-Umwandlung

Typ-Umwandlung in PHP funktioniert vielfach wie in C: Der Name des gewünschten Typs wird vor der umzuwandelnden Variablen in Klammern gesetzt.

<?php
$foo = 10;             // $foo ist ein Integer-Wert
$bar = (boolean) $foo; // $bar ist vom Typ boolean
?>

Folgende Umwandlungen sind möglich:

  • (int), (integer) - nach integer

  • (bool), (boolean) - nach boolean

  • (float), (double), (real) - nach float

  • (string) - nach string

  • (array) - nach array

  • (object) - Wandlung zum Objekt

Beachten sie, dass Tabulatoren und Leerzeichen innerhalb der Klammern erlaubt sind. Deshalb sind die folgenden Beispiele identisch:

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

Anmerkung: Anstatt eine Variable in einen String umzuwandeln, können Sie die Variable auch in doppelte Anführungszeichen einschließen.

<?php
$foo = 10;            // $foo ist ein Integer
$str = "$foo";        // $str ist ein String
$fst = (string) $foo; // $fst ist auch ein String

// Das gibt aus "sie sind gleich"
if ($fst === $str) {
    echo "sie sind gleich";
}
?>

Es ist nicht immer offenkundig, was bei der Typ-Umwandlung geschieht. Für weitere Informationen schauen Sie unter folgenden Abschnitten nach:

  • Umwandlung nach boolean

  • Umwandlung nach integer

  • Umwandlung nach float

  • Umwandlung nach string

  • Umwandlung nach array

  • Umwandlung nach object

  • Umwandlung nach resource

  • PHP type comparison tables

Zurück | Zum Anfang | Nach vorne
In dieser Dokumentation verwendete Pseudo-Typen | Nach oben | Variablen


Variablen

PHP Handbuch
Zurück Nach vorne

Kapitel 7. Variablen

Inhaltsverzeichnis
Grundlegendes
Vordefinierte Variablen
Geltungsbereich von Variablen
Variable Variablen
Variablen ausserhalb von PHP

Grundlegendes

Variablen werden in PHP dargestellt durch ein Dollar-Zeichen ($) gefolgt vom Namen der Variablen. Bei Variablen-Namen wird zwischen Groß- und Kleinschreibung unterschieden (case-sensitive).

Variablen-Namen werden in PHP nach den gleichen Regeln wie andere Bezeichner erstellt. Ein gültiger Variablen-Name beginnt mit einem Buchstaben oder einem Unterstrich ("_"), gefolgt von einer beliebigen Anzahl von Buchstaben, Zahlen oder Unterstrichen. Als regulärer Ausdruck (regular expression) würde das wie folgt ausgedrückt: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'.

Anmerkung: Unserem Zweck entspricht also ein Buchstabe von a bis z bzw. A bis Z oder einem ASCII-Zeichen von 127 bis 255 (0x7f bis 0xff).

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

$4site  = 'nicht jetzt';     // ungültig, da Anfang eine Zahl
$_4site = 'nicht jetzt';     // gültig, da Unterstrich am Anfang
$täbyte = 'irgendwas';       // gültig, da 'ä' dem (Erweiterten) ASCII-Wert 228 entspricht
?>

Variablen werden in PHP 3 durch ihren Wert bestimmt. Das heisst, wenn Sie einer Variablen einen Ausdruck zuweisen, wird der gesamte Inhalt des Originalausdrucks in die Zielvariable kopiert. Die Folge ist, dass eine Variable, die ihren Inhalt von einer anderen Variablen erhalten hat, ihren Inhalt behält, auch wenn Sie danach den Inhalt der anderen (Quell- / Ursprungs-)Variablen ändern. Die Inhalte der Ziel- und Quellvariablen sind also insoweit unabhängig voneinander. Für weitere Informationen lesen Sie bitte das Kapitel unter Expressions / Ausdrücke.

PHP 4 bietet eine andere Möglichkeit der Wertzuweisung bei Variablen: Zuweisung durch Referenzierung. Das bedeutet, dass der Wert der neuen Variablen eine Referenz zur Ursprungs-Variablen darstellt (mit anderen Worten: Der Wert ist ein Alias bzw. Zeiger auf den Inhalt der Ursprungsvariablen). Beide Variablen zeigen also auf die selbe(n) Speicherstelle(n). Änderungen der neuen Variablen ändern auch deren Ursprungs-Variable und umgekehrt. Der Wert / Inhalt wird also nicht kopiert. Die Übertragung geschieht dadurch auch schneller als in PHP 3. Dies wird sich aber nur bei umfangreichen Schleifen oder bei der Übertragung von grossen Arrays oder Objekten bemerkbar machen.

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

<?php
$foo = 'Bob';             // 'Bob' der Variablen $foo zuweisen.
$bar = &$foo;             // Zeiger auf $foo in $bar erzeugen.
$bar = "Ich hei&szlig;e $bar";  // $bar verändern...
echo $bar;
echo $foo;                // $foo wurde dadurch ebenfalls verändert.
?>

Zu beachten ist, dass nur Variablenbezeichner referenziert werden können.

<?php
$foo = 25;
$bar = &$foo;     // Gültige Zuweisung.
$bar = &(24 * 7); // Ungültig, da kein Variablenbezeichner
                  // zugewiesen wird.
function test() {
    return 25;
}

$bar = &test();   // Ungültig.
?>

Zurück | Zum Anfang | Nach vorne
Typen-Tricks | Nach oben | Vordefinierte Variablen


Vordefinierte Variablen

PHP bietet jedem ausgeführtem Skript eine Vielzahl von vordefinierten Variablen an. Viele dieser Variablen können jedoch nicht vollständig erläutert werden, da sie abhängig sind vom Web-Server, der Version und dem Setup des Web- Servers sowie weiteren Faktoren. Einige dieser Variablen stehen nicht zur Verfügung, wenn PHP-Skripte per Kommando-Zeilen-Aufruf ausgeführt werden. Für eine Liste dieser Variablen lesen Sie bitte den Abschnitt Vordefinierte Variablen.

Warnung

Ab PHP 4.2.0 ist der standardmäßige Wert für die PHP-Anweisung register_globals off. Dies ist eine wesentliche Änderung in PHP. Die Anweisung register_globals off beeinflusst den Satz von vordefinierten Variablen, die im globalen Bereich verfügbar sind. Um zum Beispiel DOCUMENT_ROOT zu bekommen, müssen Sie $_SERVER['DOCUMENT_ROOT'] statt $DOCUMENT_ROOT verwenden oder um $id von der URL http://www.example.com/test.php?id=3 zu bekommen $_GET['id'] statt $id oder $_ENV['HOME'] statt $HOME.

Für diese Änderung betreffende Informationen lesen Sie bitte den Konfigurations-Eintrag für register_globals, das Sicherheitskapitel über die Verwendung von Register Globals und außerdem die PHP 4.1.0 und 4.2.0 Release Announcements.

Die reservierten vordefinierten Variablen, wie die Superglobalen Arrays, sollten bevorzugt verwendet werden.

Ab Version 4.1.0 stehen in PHP eine zusätzliche Reihe vordefinierter Arrays zur Verfügung, die Variablen vom Webserver (gegebenenfalls), von der Umgebung und von Benutzereingaben enthalten. Diese neuen Arrays sind insofern etwas sehr Spezielles, als sie automatisch global sind -- d.h., sie stehen automatisch in jedem Bereich zur Verfügung. Deshalb sind sie auch bekannt als 'Autoglobale' oder 'Superglobale'. (Es gibt in PHP keinen Mechanismus für benutzerdefinierte Superglobale.) Die Superglobale werden nachfolgend aufgelistet, aber für eine Liste ihres Inhalts und die weitere Diskussion vordefinierter Variablen und ihres Wesens lesen Sie bitte den Abschnitt Reservierte vordefinierte Variablen. Außerdem werden Sie feststellen, dass die alten vordefinierten Variablen ($HTTP_*_VARS) noch existieren. As of PHP 5.0.0, the long PHP predefined variable arrays may be disabled with the register_long_arrays directive.

Variable Variablen: Superglobale können nicht als Variable Variablen verwendet werden.

Falls bestimmte Variablen nicht unter variables_order angegeben sind, dann bleiben auch ihre entsprechenden vordefinierten Arrays leer.

PHP Superglobale

$GLOBALS

Diese Variable enthält eine Referenz zu jeder Variable, die im globalen Bereich des laufenden Skripts zur Verfügung steht. Die Schlüssel dieses Arrays sind die Namen der globalen Variablen. $GLOBALS gibt es seit PHP 3.

$_SERVER

Variablen, die vom Webserver gesetzt werden oder anderweitig direkt mit der ausführenden Umgebung des aktuellen Skripts zusammenhängen. Entspricht dem alten $HTTP_SERVER_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.

$_GET

Variablen, die dem Skript über HTTP GET geliefert werden. Entspricht dem alten $HTTP_GET_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.

$_POST

Variablen, die dem Skript über HTTP POST geliefert werden. Entspricht dem alten $HTTP_POST_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.

$_COOKIE

Variablen, die dem Skript über HTTP Cookies geliefert werden. Entspricht dem alten $HTTP_COOKIE_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.

$_FILES

Variablen, die dem Skript über HTTP Post Datei-Uploads geliefert werden. Entspricht dem alten $HTTP_POST_FILES-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist. Für mehr Informationen lesen Sie bitte Dateiuploads mit POST.

$_ENV

Variablen, die dem Skript über die Umgebung geliefert werden. Entspricht dem alten $HTTP_ENV_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.

$_REQUEST

Variablen, die dem Skript über die GET-, POST- und COOKIE-Eingabemechanismen geliefert werden und von daher nicht vertrauenswürdig sind. Die Präsenz und die Reihenfolge der Aufnahme der Variablen in dieses Array ist entsprechend der Konfigurationsanweisung variables_order definiert. Dieses Array hat in PHP vor Version 4.1.0 keine direkte Entsprechung. Siehe auch import_request_variables().

Achtung

Seit PHP 4.3.0 gibt es in $_REQUEST keine FILE-Informationen von $_FILES mehr.

Anmerkung: Wenn PHP-Skripte auf der Kommandozeile ausgeführt werden, sind die Einträge argv und argc nicht in diesem Array enthalten; diese befinden sich im $_SERVER-Array.

$_SESSION

Variablen, die aktuell in der Session eines Skripts registriert sind. Entspricht dem alten $HTTP_SESSION_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist. Für mehr Informationen lesen Sie bitte den Abschnitt Session Funktionen.

Zurück | Zum Anfang | Nach vorne
Variablen | Nach oben | Geltungsbereich von Variablen


Geltungsbereich von Variablen

Der Geltungsbereich einer Variablen ergibt sich aus dem Zusammenhang, in dem sie definiert wurde. Meistens besteht dieser aus einem einzigen Bereich. Dieser beinhaltet auch den Bereich für Dateien, die per "include"- oder "require"-Anweisung eingebunden wurden, z.B.:

<?php
$a = 1;
include "b.inc";
?>

Die Variable $a ist auch in der eingebundenen Datei b.inc verfügbar. In benutzerdefinierten Funktionen wird ein auf die Funktion beschränkter Geltungsbereich eingeführt. Jede in einer Funktion benutzte Variable ist zunächst auf den lokalen Bereich der Funktion beschränkt, z.B.:

<?php
$a = 1; // globaler Bereich

function test () {
    echo $a; // Referenz auf einen lokalen Variablen-Bereich
}

test ();
?>

Dieses Skript erzeugt keine Bildschirm-Ausgabe, da sich die Echo- Anweisung auf eine lokale Variable namens $a bezieht und dieser kein Wert im lokalen Bezug zugewiesen worden ist. Dies ist ein kleiner Unterschied zu C, wo globale Variablen auch in Funktionen vorhanden sind, es sei denn, sie werden durch eine funktionsinterne Definition überschrieben. Das kann zu Problemen führen, denn in PHP müssen global geltende Variablen innerhalb von Funktionen als solche definiert werden.

Das global Schlüsselwort

Zunächst ein Beispiel für die Verwendung von global:

Beispiel 7-1. Die Verwendung von global

<?php
$a = 1;
$b = 2;

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

    $b = $a + $b;
}

Summe();
echo $b;
?>

Das obige Skript gibt "3" aus. Durch das Deklararieren der Variablen $a und $binnerhalb der Funktion als global, weisen alle Referenzen zu beiden Variablen auf die nun globalen Werte. Es gibt keine Beschränkungen bei der Anzahl an globalen Variablen, die durch eine Funktion verändert werden können.

Eine weitere Möglichkeit besteht in der Verwendung des speziellen $GLOBALS PHP-Array. Das obige Beispiel kann damit auch so geschrieben werden:

Beispiel 7-2. Die Verwendung von $GLOBALS statt global

<?php
$a = 1;
$b = 2;

function Summe()
{
    $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}

Summe();
echo $b;
?>

Das $GLOBALS-Array ist ein assoziatives Array mit dem Bezeichner der globalen Variablen als Schlüssel und dem Inhalt dieser Variablen als Wert des Array-Elements. Beachten Sie, dass $GLOBALS in jedem Bereich existiert, weil $GLOBALS eine Superglobale ist. Hier ist ein Beispiel, das die Stärke von Superglobalen demonstriert:

Beispiel 7-3. Beispiel zur Demonstration von Superglobalen und Bereich

<?php
function test_global()
{
    // Die meisten vordefinierten Variablen sind nicht "super" und
    // benötigen 'global', um im lokalen Bereich von Funktionen zur
    // Verfügung zu stehen.
    global $HTTP_POST_VARS;

    echo $HTTP_POST_VARS['name'];

    // Superglobale stehen in jedem Bereich zur Verfügung und
    // benötigen kein 'global'. Superglobale stehen seit PHP 4.1.0
    // zur Verfügung.
    echo $_POST['name'];
}
?>

Die Verwendung von statischen Variablen

Ein weiterer wichtiger Anwendungszweck von Variablen-Bereichen ist die static-Variable. Eine statische Variable existiert nur in einem lokalen Funktions-Bereich, der Wert geht beim Verlassen dieses Bereichs aber nicht verloren. Schauen Sie das folgende Beispiel an:

Beispiel 7-4. Beispiel, das die Notwendigkeit von statischen Variablen demonstriert

<?php
function test ()
{
    $a = 0;
    echo $a;
    $a++;
}
?>

Diese Funktion ist sinnlos, da sie bei jedem Aufruf $a auf 0 setzt und "0" ausgibt. Die Anweisung $a++, welche den Wert erhöht, macht keinen Sinn, da der Wert von $a beim Verlassen der Funktion verloren geht. Um eine sinnvolle Zählfunktion zu implementieren, die ihren aktuell gesetzten Wert nicht vergisst, müssen Sie die Variable $aals "static" deklarieren:

Beispiel 7-5. Beispiel zur Verwendung statischer Variablen

<?php
function Test()
{
    static $a = 0;
    echo $a;
    $a++;
}
?>

Jetzt wird bei jedem Aufruf der Test()-Funktion der aktuelle Wert von $a ausgegeben und dann um 1 erhöht.

Static-Variablen ermöglichen auch einen Weg zum Umgang mit rekursiven Funktionen. Das sind Funktionen, die sich selbst aufrufen. Hierbei besteht die Gefahr, so genannte Endlos- Schleifen zu programmieren. Sie müssen also einen Weg vorsehen, diese Rekursion zu beenden. Die folgende einfache Funktion zählt rekursiv bis 10. Die statische Variable $zaehler wird benutzt, um die Rekursion zu beenden:

Beispiel 7-6. Statische Variablen in rekursiven Funktionen

<?php
function Test()
{
    static $zaehler = 0;

    $zaehler++;
    echo $zaehler;
    if ($zaehler < 10) {
        Test ();
    }
    $zaehler--;
}
?>

Anmerkung: Statische Variablen werden wie in oben stehenden Beispielen deklariert. Das Zuweisen eines Wertes, welcher das Ergebnis eines Ausdrucks ist, wird mit einem parse error quittiert.

Beispiel 7-7. Statische Variablen deklarieren

<?php
function foo(){
    static $int = 0;          // korrekt
    static $int = 1+2;        // falsch  (da ein Ausdruck vorliegt)
    static $int = sqrt(121);  // falsch  (ebenfalls ein Ausdruck)

    $int++;
    echo $int;
}
?>

Referenzen bei globalen und statischen Variablen

Die Zend Engine 1, die PHP 4 zugrunde liegt, führt die static- und global-Wandler für Variablen in Bezug auf Referenzen aus. Zum Beispiel erzeugt eine echte globale Variable, die mit der Anweisung global in den Funktionsbereich importiert wurde, tatsächlich eine Referenz zur globalen Variable. Das kann zu einem unerwarteten Verhalten führen, auf das im folgenden Beispiel eingegangen wird:

<?php
function test_global_ref() {
    global $obj;
    $obj = &new stdclass;
}

function test_global_noref() {
    global $obj;
    $obj = new stdclass;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

Die Ausführung dieses Beispiels erzeugt die folgende Ausgabe:

NULL
object(stdClass)(0) {
}

Ein ähnliches Verhalten gilt auch für die Anweisung static. Referenzen werden nicht statisch gespeichert:

<?php
function &get_instance_ref() {
    static $obj;

    echo "Statisches Objekt: ";
    var_dump($obj);
   if (!isset($obj)) {
        // Der statischen Variablen eine Referenz zuweisen
        $obj = &new stdclass;
    }
    $obj->eigenschaft++;
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo "Statisches Objekt: ";
    var_dump($obj);
    if (!isset($obj)) {
        // Der statischen Variablen ein Objekt zuweisen
        $obj = new stdclass;
    }
    $obj->eigenschaft++;
    return $obj;
}

$obj1 = get_instance_ref();
$immer_noch_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$immer_noch_obj2 = get_instance_noref();
?>

Die Ausführung dieses Beispiels erzeugt die folgende Ausgabe:

Statisches Objekt: NULL
Statisches Objekt: NULL

Statisches Objekt: NULL
Statisches Objekt: object(stdClass)(1) {
  ["eigenschaft"]=>
  int(1)
}

Dieses Beispiel demonstriert, dass die Referenz, die einer statischen Variablen zugewiesen wird, beim zweiten Aufruf der Funktion &get_instance_ref() vergessen ist.

Zurück | Zum Anfang | Nach vorne
Vordefinierte Variablen | Nach oben | Variable Variablen


Variable Variablen

Manchmal ist es komfortabel, variable Variablen-Bezeichner zu benutzen. Das bedeutet, einen Variablen-Namen zu setzen und dynamisch zu gebrauchen. Eine normale Variable wird wie folgt gebildet:

<?php
$a = "Hallo";
?>

Eine variable Variable nimmt den Wert einer Variablen und behandelt ihn als Bezeichner der Variablen. Im obigen Beispiel kann Hallo als Variablen-Name gebraucht werden, indem man zwei $-Zeichen benutzt, also schreibt:

<?php
$$a = "Welt";
?>

Nun existieren in der PHP-Symbol-Struktur zwei definierte und gespeicherte Variablen: $a mit dem Inhalt "Hallo" und $Hallo mit dem Inhalt "Welt". Deshalb wird die Anweisung

<?php
echo "$a ${$a}";
?>

zur genau gleichen Ausgabe führen wie:

<?php
echo "$a $Hallo";
?>

also zu: Hallo Welt.

Wenn Sie variable Variablen mit Arrays verwenden, müssen Sie eine Doppeldeutigkeit beachten. Wenn Sie nämlich $$a[1] schreiben, dann muss der Parser wissen, ob Sie $a[1] als Variable oder $$a als Variable und dann [1] als Index dieser Variablen verwenden wollen bzw. gemeint haben. Die Syntax zur Lösung dieser Doppeldeutigkeit: Verwenden Sie im ersten Fall ${$a[1]} und im zweiten Fall ${$a}[1].

Warnung

Bitte beachten Sie, dass variable Variablen nicht bei Superglobalen Arrays verwendet werden können. Das bedeutet, etwas wie ${$_GET} ist nicht möglich. Wenn Sie nach einer Möglichkeit suchen, die Verfügbarkeit von Superglobalen und den alten HTTP_*_VARS zu handhaben, können Sie das mit referenzieren versuchen.

Zurück | Zum Anfang | Nach vorne
Geltungsbereich von Variablen | Nach oben | Variablen ausserhalb von PHP


Variablen ausserhalb von PHP

HTML-Formulare (GET and POST)

Sobald ein Formular an ein PHP-Skript übergeben wird, werden die Informationen dieses Formulars dem Skript automatisch verfügbar gemacht. Es gibt viele Möglichkeiten, auf diese Informationen zuzugreifen, zum Beispiel:

Beispiel 7-8. Ein einfaches HTML-Formular

<form action="foo.php" method="post">
    Name:  <input type="text" name="username" /><br />
    Email: <input type="text" name="email" /><br />
    <input type="submit" name="submit" value="Und ab!" />
</form>

Abhängig von Ihrem speziellen Setup und Ihren persönlichen Vorlieben gibt es viele Möglichkeiten, auf die Daten von Ihren HTML-Formularen zuzugreifen. Hier einige Beispiele:

Beispiel 7-9. Zugriff auf die Daten von einem einfachen POST HTML-Formular

<?php
// Seit PHP 4.1.0 verfügbar

   echo $_POST['benutzername'];
   echo $_REQUEST['benutzername'];

   import_request_variables('p', 'p_');
   echo $p_benutzername;

// Seit PHP 3 verfügbar. Ab PHP 5.0.0 können diese langen
// vordefinierten Variablen mit der Anweisung register_long_arrays
// deaktiviert werden.

   echo $HTTP_POST_VARS['benutzername'];

// Verfügbar, falls die PHP-Anweisung register_globals = on. Ab
// PHP 4.2.0 ist der standardmäßige Wert von register_globals = off.
// Es ist nicht empfehlenswert, diese Methode zu verwenden, bzw. sich
// darauf zu verlassen.

   echo $benutzername;
?>

Die Verwendung eines GET Formulars ist, davon abgesehen, dass Sie stattdessen die entsprechende vordefinierte GET-Variable erhalten, ähnlich. Außerdem wird GET auch für den QUERY_STRING (die Information nach dem '?' in einer URL) verwendet. So enthält zum Beispiel http://www.example.com/test.php?id=3 GET-Daten, auf die mit $_GET['id'] zugegriffen werden kann. Siehe auch $_REQUEST und import_request_variables().

Anmerkung: Superglobale Arrays wie $_POST und $_GET stehen seit PHP 4.1.0 zur Verfügung.

Wie gezeigt, war register_globals vor PHP 4.2.0 standardmäßig on. In PHP 3 war es immer aktiviert. Die PHP-Gemeinschaft ermuntert alle, sich nicht auf diese Anweisung zu stützen, weil es vorzuziehen ist, davon auszugehen, dass sie off ist und entsprechend zu programmieren.

Anmerkung: Die Konfigurationseinstellung zu magic_quotes_gpc betrifft Get-, Post- und Cookie-Werte. Ist diese Einstellung aktiv, wird der Wert (It's "PHP!") automatisch zu (It\'s \"PHP!\"). Escaping ist notwendig, wenn Sie ihre Daten in eine Datenbank einfügen wollen. Siehe auch addslashes(), stripslashes() und magic_quotes_sybase.

Im Zusammenhang mit Formular-Variablen versteht PHP auch Arrays (siehe auch die verwandte Faq). Sie können z.B. die betreffenden Variablen gruppieren oder dieses Leistungsmerkmal nutzen, um Werte aus Mehrfach-Auswahl-Bereichen zu erhalten. Schicken wir zum Beispiel ein Formular an sich selbst und lassen nach dem Abschicken die Daten anzeigen:

Beispiel 7-10. Komplexere Formular-Variablen

<?php
if (isset($_POST['action']) && $_POST['action'] == 'abgeschickt') {
    echo '<pre>';
    print_r($_POST);
    echo '<a href="'. $_SERVER['PHP_SELF'] .'">Bitte versuchen Sie es nochmal</a>';

    echo '</pre>';
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Name:  <input type="text" name="personal[name]" /><br />
    Email: <input type="text" name="personal[email]" /><br />
    Bier: <br />
    <select multiple name="bier[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
        <option value="stuttgarter">Stuttgarter Schwabenbräu</option>
    </select><br />
    <input type="hidden" name="action" value="abgeschickt" />
    <input type="submit" name="submit" value="Und ab!" />
</form>
<?php
}
?>

In PHP 3 ist die Verwendung von Arrays in Formularvariablen auf eindimensionale Arrays beschränkt. In PHP 4 besteht diese Einschränkung nicht mehr.

IMAGE SUBMIT Variablen-Bezeichner

Zur Übertragung eines Formulars kann auch ein Bild (Image) statt eines Übertragungs-Schalters (Submit-Button) benutzt werden, dessen Tag wie folgt aussieht:

<input type="image" src="image.gif" name="sub" />

Klickt der Benutzer irgendwo auf das Bild, wird das entsprechende Formular an den Web-Server übertragen. Hierbei sind zwei zusätzliche Variablen vorhanden, sub_x und sub_y. Diese enthalten die Koordinaten des Klick-Punktes innerhalb des Bildes. Die Erfahreneren werden sagen, dass die Variablen, die vom Browser gesendet werden einen Punkt enthalten statt eines Unterstrichs. Dieser Punkt wird von PHP automatisch in einen Unterstrich verwandelt.

HTTP-Cookies

PHP unterstützt HTTP-Cookies, wie sie in Netscape's Spec definiert sind. Cookies ermöglichen die Daten-Speicherung innerhalb der jeweiligen Browser-Umgebung zur Weiterleitung oder wiederholten Identifikation von Benutzern. Sie können Cookies erzeugen, indem Sie die Funktion setcookie() benutzen. Cookies sind Teil des HTTP-Headers, deshalb muss die setcookie-Funktion aufgerufen werden, bevor irgendeine Ausgabe an den Browser gesendet wird. Dabei handelt es sich um die gleiche Einschränkung, die auch für die header()-Funktion gilt. Cookie-Daten stehen dann sowohl in den entsprechenden Cookie-Daten-Arrays, wie zum Beispiel $_COOKIE, $HTTP_COOKIE_VARS als auch in $_REQUEST zur Verfügung. Für weitere Details und Beispiele lesen Sie bitte die setcookie()-Seite des Handbuchs.

Wenn Sie einer einzelnen Cookie-Variable mehrere Werte zuweisen wollen, müssen Sie diese als Array übertragen. Zum Beispiel:

<?php
setcookie("MeinCookie[foo]", "Ich teste 1", time()+3600);
setcookie("MeinCookie[bar]", "Ich teste 2", time()+3600);
?>

Das erzeugt zwei einzelne Cookies obwohl MeinCookie in Ihrem Skript nun ein einziges Array ist. Wenn Sie nur ein Cookie mit mehreren Werten setzen wollen, sollten Sie zuerst serialize() oder explode() auf das Array anwenden.

Bedenken Sie, dass ein Cookie ein vorhergehendes Cookie gleichen Namens überschreibt, es sei denn, der Pfad oder die Domain ist anders. Für eine Warenkorb-Anwendung können Sie deshalb z.B. einen Zähler bilden und diesen weiterleiten:

Beispiel 7-11. Ein setcookie()-Beispiel

<?php
if (isset($_COOKIE['zaehler'])) {
    $zaehler = $_COOKIE['zaehler'] + 1;
} else {
    $zaehler = 1;
}
setcookie("zaehler", $zaehler, time()+3600);
setcookie("Cart[$zaehler]", $item, time()+3600);
?>

Punkte in eingelesenen Variablen-Bezeichnern

Normalerweise verändert PHP die Variablen-Bezeichner nicht, wenn sie einem Skript übergeben werden. Es sollte aber beachtet werden, dass der Punkt (".") kein gültiger Bestandteil eines Variablen-Bezeichners ist. Deshalb achten Sie auf folgendes:
<?php
$varname.ext;  /* ungültiger Variablen-Bezeichner */
?>
Der PHP-Parser sieht eine Variable namens $varname, gefolgt von einem Zeichenketten-Verbindungs-Operator, dieser wiederrum gefolgt von der offenen Zeichenkette 'ext' (also nicht eingegrenzt durch '"' und auch keinem Schlüssel oder reserviertem Bezeichner entsprechend). Das kann natürlich nicht zum gewünschten Ergebnis führen.

Deshalb ist es wichtig zu wissen, dass PHP in den ihm übergebenen Variablen alle Punkte (.) automatisch durch einen Unterstrich (_) ersetzt.

Bestimmung des Variablen-Typs

Da PHP den Typ der Variablen bestimmt und (im Allgemeinen) selbst eine entsprechende Umformung vornimmt, ist es nicht immer klar, welchen Typ eine Variable gerade hat. PHP beinhaltet einige Funktionen, die dies herausfinden, wie zum Beispiel: gettype(), is_array(), is_float(), is_int(), is_object() und is_string(). Lesen Sie bitte auch das Kapitel über Typen.

Zurück | Zum Anfang | Nach vorne
Variable Variablen | Nach oben | Konstanten


Konstanten

PHP Handbuch
Zurück Nach vorne

Kapitel 8. Konstanten

Inhaltsverzeichnis
Syntax
Vordefinierte Konstanten

Eine Konstante ist ein Bezeichner (Name) für eine simple Variable. Wie der Name schon ausdrückt, kann sich der Wert einer Konstanten zur Laufzeit eines Skripts nicht ändern (eine Ausnahme bilden die Magischen Konstanten, die aber tatsächlich keine Konstanten sind.) Eine Konstante unterscheidet zwischen Groß- und KLeinschreinbung (case-sensitive). Nach gängiger Konvention werden Konstanten immer in Großbuchstaben geschrieben.

Der Name einer Konstanten folgt den gleichen Regeln wie alle anderen Bezeichner in PHP. Ein gültiger Name beginnt mit einem Buchstaben oder einem Unterstrich, gefolgt von beliebig vielen Buchstaben, Nummern oder Understrichen. Als regulärer Ausdruck geschrieben: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Anmerkung: Für unsere Zwecke ist ein Buchstabe a-z, A-Z und die ASCII-Zeichen von 127 bis 255 (0x7f-0xff).

Wie bei superglobals ist der Gültigkeitsbereich einer Konstanten global. Unabhängig vom Gültigkeitsbereich können Sie in Ihrem Skript überall auf eine Konstante zugreifen. Für mehr Information zum Gültigkeitsbereich lesen Sie bitte den Abschnitt über den Geltungsbereich von Variablen. For more information on scope, read the manual section on variable scope.

Syntax

Eine Konstante können Sie über die Funktion define() definieren. Einmal definiert, kann eine Konstane weder verändert noch gelöscht werden.

Konstanten können nur scalare Daten (boolean, integer, float und string) enthalten.

Den Wert einer Konstanten erhalten Sie ganz einfach durch die Angabe ihres Namens. Einer Konstanten sollten Sie nicht, wie bei Variablen, ein $ voranstellen. Ebenso können Sie die Funktion constant() benutzen um den Wert einer Konstanten auszulesen, wenn Sie den Namen der Konstanten dynamisch erhalten wollen. Benutzen Sie get_defined_constants() um eine Liste aller definierten Konstanten zu erhalten.

Anmerkung: Konstanten und (globale) Variablen befinden sich in unterschiedlichen Namensräumen. Das hat zum Beispiel zur Folge, dass TRUE und $TRUE grundsätzlich unterschiedlich sind.

Falls Sie eine undefinierte Konstante verwenden nimmt PHP an, dass Sie den Namen der Konstanten selber meinen, genauso als ob Sie einen string (CONSTANT vs "CONSTANT") angegeben hätten. Falls das passiert, wird Ihnen ein Fehler vom Typ E_NOTICE ausgegeben. Lesen Sie hier nach, warum die Angabe $foo[bar] falsch ist (zumindest solange Sie nicht zuerst bar mittels define() als Konstante definiert haben). Möchten Sie einfach nur nachprüfen, ob eine Konstante definiert ist, benutzen Sie die Funktion defined() für diesen Zweck.

Das hier sind die Unterschiede zwischen Konstanten und Variablen:

  • Konstanten haben kein Dollarzeichen ($) vorangestellt;

  • Konstanten können nur über die Funktion define() definiert werden, nicht durch einfache Zuweisung;

  • Konstanten können überall definiert werden und auf Ihren Wert können Sie ohne Rücksicht auf Namensraumregeln von Variablen zugreifen;

  • Sobald Konstanten definiert sind, können sie nicht neu definiert oder gelöscht werden; und

  • Konstanten können nur skalare Werte haben.

Beispiel 8-1. Definiton von Konstanten

<?php
define("CONSTANT", "Hallo Welt.");
echo CONSTANT; // Ausgabe: "Hallo Welt."
echo Constant; // Ausgabe: "Constant" und eine Notice.
?>

Zurück | Zum Anfang | Nach vorne
Variablen ausserhalb von PHP | Nach oben | Vordefinierte Konstanten


Vordefinierte Konstanten

PHP stellt jedem Skript eine Vielzahl von vordefinierten Konstanten zur Verfügung. Viele dieser Konstanten werden jedoch von verschiedenen Erweiterungen definiert, die nur zur Verfügung stehen, wenn diese Erweiterungen selbst zur Verfügung stehen, entweder über dynamisches Laden zur Laufzeit oder sie sind einkompiliert.

Es gibt fünf magische Konstanten, die abhängig davon, wo sie eingesetzt werden, einen unterschiedlichen Wert haben. Zum Beispiel hängt der Wert der Konstanten __LINE__ davon ab, in welcher Zeile ihres Skripts Sie diese Konstante verwenden. Diese besonderen Konstanten sind unabhängig von Groß-/Kleinschreibung und sind folgende:

Tabelle 8-1. Einige "magische" PHP "Konstanten"

Name | Beschreibung
__LINE__ | Die aktuelle Zeilennummer einer Datei.
__FILE__ | Der vollständige Pfad- und Dateiname einer Datei.
__FUNCTION__ | Der Name einer Funktion. Steht seit PHP 4.3.0 zur Verfügung.
__CLASS__ | Der Name einer Klasse. Steht seit PHP 4.3.0 zur Verfügung.
__METHOD__ | Der Name einer Klassenmethode. Steht seit PHP 5.0.0 zur Verfügung.

Eine Liste vordefinierter Konstanten finden Sie im Abschnitt Vordefinierte Konstanten.

Zurück | Zum Anfang | Nach vorne
Konstanten | Nach oben | Ausdrücke


Ausdrücke

PHP Handbuch
Zurück Nach vorne

Kapitel 9. Ausdrücke

Ausdrücke (Expressions) sind die wichtigsten Bausteine von PHP. In PHP ist fast alles, was geschrieben wird, ein Ausdruck. Die einfachste, aber auch zutreffenste Definition für einen Ausdruck ist "alles, was einen Wert hat".

Die grundlegendste Formen von Ausdrücken sind Konstanten und Variablen. Wenn man "$a = 5" schreibt, weist man $a den Ausdruck ´5´ zu. ´5´ hat offensichtlich den Wert 5. Anders ausgedrückt: ´5´ ist ein Ausdruck mit dem Wert 5 (in diesem Fall ist ´5´ eine Integer-Konstante).

Nach dieser Zuweisung würde man erwarten, dass der Wert von $a nun ebenfalls 5 ist, wenn man also $b = $a schreibt, sollte dasselbe dabei herauskommen, als hätte man $b = 5 geschrieben. Anders ausgedrückt: $a wäre ebenfalls ein Ausdruck mit dem Wert 5. Wenn alles richtig funktioniert, wird genau das passieren.

Etwas kompliziertere Beispiele für Ausdrücke sind Funktionen:

function foo () {
    return 5;
}

Angenommen, Sie sind mit dem Konzept von Funktionen vertraut (wenn Sie es nicht sind, lesen Sie das Kapitel über Funktionen), dann würden Sie annehmen, dass die Eingabe von $c = foo() grundsätzlich daselbe bedeutet, als würde man schreiben $c = 5,und genau das trifft zu. Funktionen sind Ausdrücke mit dem Wert ihres Rückgabewertes. Da foo() den Wert 5 zurückgibt, ist der Wert des Ausdruckes ´foo()´ 5. Normalerweise geben Funktionen nicht einfach einen statischen Wert zurück, sondern berechnen irgendetwas.

Natürlich müssen Werte in PHP keine Integer-Zahlen sein, und oft sind sie es auch nicht. PHP unterstützt drei skalare Datentypen: integer values (Integer-Zahlen),floating point values (Fließkommazahlen) und string values (Zeichenketten). (Skalare sind Datentypen, die man nicht in kleinere Stücke ´brechen´ kann, im Gegensatz zu Arrays). PHP unsterstützt auch zwei zusammengesetzte (nicht-skalare) Datentypen: Arrays und Objekte. Jeder dieser Datentypen kann Variablen zugewiesen und von Funktionen zurückgegeben werden.

Bis hierhin sollten Benutzer von PHP/FI 2 keine Veränderung bemerkt haben. PHP fasst den Begriff ´Ausdruck´ aber noch viel weiter, wie es auch andere Programmiersprachen tun. PHP ist in dem Sinne eine ausdrucksoriente Sprache, dass fast alles ein Ausdruck ist. Zurück zu dem Beispiel, mit dem wir uns schon beschäftigt haben: ´$a = 5´. Es ist einfach zu erkennen, dass hier zwei Werte enthalten sind: Der Wert der Integer-Konstanten ´5´ und der Wert von $a, der auf 5 geändert wird. In Wirklichkeit ist aber noch ein zusätzlicher Wert enthalten, nämlich der Wert der Zuweisung selbst. Die Zuweisung selbst enthält den zugewiesenen Wert, in diesem Fall 5. In der Praxis bedeutet dies, dass ´$a = 5´, egal was es tut, immer einen Ausdruck mit dem Wert 5 darstellt. Folglich ist ´$b = ($a = 5)´ gleichbedeutend mit ´$a = 5; $b = 5;´ (ein Semikolon markiert das Ende einer Anweisung). Da Wertzuweisungen von rechts nach links geparst werden, kann man auch ´$b = $a = 5´ schreiben.

Ein anderes gutes Beispiel für die Ausdrucksorientierung von PHP sind Prä- und Post-Inkrement sowie die entsprechenden Dekremente. Benutzer von PHP/FI 2 und vielen anderen Sprachen sind vermutlich mit den Notationen ´variable++´ und ´variable--´ vertraut. Dies sind Inkrement- und Dekrement-Operatoren. IN PHP/FI 2 hat das Statement ´$a++´ keinen Wert (es ist kein Ausdruck) und daher kann man es nicht als Wert zuweisen oder in irgendeiner Weise benutzen. PHP erweitert die Eigenschaften von Dekrement und Inkrement, indem es die beiden ebenfalls zu Ausdrücken macht. In PHP gibt es, wie in C, zwei Arten von Inkrementen - Prä-Inkrement und Post-Inkrement. Grundsätzlich erhöhen sowohl Prä- als auch Post-Inkrement den Wert der Variable, und der Effekt auf die Variable ist derselbe. Der Unterschied ist der Wert des Inkrement-Ausdruckes. Das Prä-Inkrement, das ´++$variable´ geschrieben wird, enthält als Wert den Wert der erhöhten Variabe (PHP erhöht den Wert der Variable, bevor es ihren Wert ausliest, daher der Name ´PRÄ-Inkrement´). Das Post-Inkrement, das ´$variable++´ geschrieben wird, enthält dagegen den ursprünglichen Wert der Variablen vor der Erhöhung (PHP erhöht den Wert der Variablen, nachdem es ihren Wert ausgelesen hat, daher der Name ´POST-Inkrement´).

Ein sehr gebräuchlicher Typ von Ausdrücken sind Vergleichsausdrücke. Diese Ausdrücke geben entweder 0 (=FALSCH) oder 1 (=WAHR) zurück. PHP unterstützt > (größer), >= (größer oder gleich), == (gleich), != (ungleich), < (kleiner), und <= (kleiner oder gleich). Diese Ausdrücke werden meistens in bedingten Anweisungen, wie z. B. in if-Anweisungen, verwendet.

Im letzten Beispiel für Ausdrücke befassen wir uns mit kombinierten Zuweisungs- und Operator-Ausdrücken. Wir haben schon gezeigt, wie man den Wert von $a um 1 erhöht, nämlich indem man einfach ´$a++´ oder ´++$a´ schreibt. Aber was tut man, wenn man den Wert um mehr als eins erhöhen will, z. B. um 3? Man könnte mehrer Male ´$a++´ schreiben, aber das ist offensichtlich weder effizient noch sehr komfortabel. Viel üblicher ist es, einfach ´$a = $a + 3´ zu schreiben. ´$a + 3´ gibt den Wert von $a plus 3 zurück, dieser wird wieder $a zugewiesen, was dazu führt, dass $a nun um 3 erhöht wurde. In PHP - wie in einigen anderen Programmiersprachen, z. B. in C - kann man dies aber noch kürzer schreiben, was mit der Zeit klarer wird und auch einfacher zu verstehen ist. Um 3 zu dem aktuellen Wert hinzuzufügen, schreibt man ´$a += 3´. Das bedeutet exakt: "Nimm´ den Wert von $a, addiere 3 hinzu und weise $a den entstandenen Wert zu". Zusätzlich dazu, dass diese Schreibweise kürzer und klarer ist, resultiert sie auch in einer schnelleren Ausführung. Der Wert von ´$a += 3´ ist, wie der Wert einer regulären Zuweisung, der zugewiesene Wert. Es ist zu beachten, dass dieser Wert NICHT 3, sondern dem kombinierten Wert von $a plus 3 entspricht (Das ist der Wert, der $a zugewiesen wird). Jeder Operator, der zwei Elemente verbindet, kann in dieser Schreibweise verwendet werden, z. B. ´$a -= 5´ (vermindert den Wert von $a um 5) oder ´$a *= 7´ (multipliziert den Wert von $a mit 7 und weist das Ergebnis $a zu), usw.

Es gibt einen weiteren Ausdruck, der Ihnen vielleicht seltsam vorkommt, wenn Sie ihn bisher noch in keiner Programmiersprache kennengelernt haben, den dreifach konditionalen Operator:

$eins ? $zwei : $drei

Wenn der Wert des ersten Sub-Ausdruckes (hier: $eins) wahr ist (d. h. nicht NULL), dann wird der Wert des zweiten Subausdrucks (hier: $zwei) zurückgeben und ist das Ergebnis des konditionalen Ausdrucks. Andernfalls (d. h. wenn der erste Ausdruck falsch ist), wird der Wert des dritten Subausdruckes (hier: $drei) zurückgeben.

Das folgende Beispiel sollte das Verständnis von Prä- und Post-Inkrement und von Ausdrücken im allgemeinen erleichtern:

function verdoppeln($i) {
    return $i*2;
}
$b = $a = 5;        /* Weise den Variablen $a und $b beiden den Wert 5 zu */
$c = $a++;          /* Post-Inkrement, der urspruengliche Wert von $a (also 5)
                       wird $c zugewiesen. */
$e = $d = ++$b;     /* Prae-Inkrement, der erhöhte Wert von $b (= 6) wird $d und
                       $e zugewiesen. */

/* An diesem Punkt sind $d und $e beide gleich 6 */

$f = verdoppeln($d++);  /* Weise $f den doppelten Wert von $d vor
                       der Erhöhung um eins zu, 2*6 = 12 */
$g = double(++$e);  /* Weise $g den doppelten Wert von $e nach
                       der Erhoehung zu, 2*7 = 14 to $g */
$h = $g += 10;      /* Zuerst wie $g um 10 erhöht und hat schliesslich den Wert
                       24. Der Wert dieser Zuweisung (24) wird dann $h zugewiesen,
                       womit $h ebenfalls den Wert von 24 hat. */

Am Anfang dieses Kapitels hatten wir gesagt, wir würden die verschiedenen Arten von Anweisungen beschreiben und, wie versprochen, Ausdrücke können Anweisungen sein. Trotzdem ist nicht jeder Ausdruck eine Anweisung. In diesem Fall hat eine Anweisung die Form ´Ausdr´ ´;´, d. h. ein Ausdruck gefolgt von einem Semikolon. In ´$b=$a=5;´ ist $a=5 ein gültiger Ausdruck, aber für sich allein keine Anweisung. ´$b=$a=5;´ ist jedoch eine gültige Anweisung.

Ein letzter Punkt, der noch zu erwähnen ist, ist der ´wahr´-Wert von Ausdrücken. In vielen Fällen, hauptsächlich in bedingten Anweisungen und Schleifen, ist man nicht am spezifischen Wert eines Ausdrucks interessiert, sondern kümmert sich nur darum, ob er WAHR oder FALSCH bedeutet (PHP hat keinen speziellen boolean-Datentyp). Der Wahrheitswert eines Ausdrucks in in PHP wird ähnlich bestimmt wie in Perl. Jeder numerische Wert, der nicht NULL ist, bedeutet WAHR, NULL bedeutet FALSCH. Es ist zu beachten, dass negative Werte nicht NULL sind und deshalb als WAHR aufgefasst werden! Eine leere Zeichenkette und die Zeichenkette "0" sind FALSCH; alle anderen Zeichenketten sind WAHR. Nicht-skalare Datentypen (Arrays und Objekte) werden als FALSCH betrachtet, wenn sie keine Elemente enthalten, anderfalls geben sie WAHR zurück.

PHP stellt eine vollständige und mächtige Implementat von Ausdrücken bereit und, deren vollständige Dokumentation den Rahmen dieses Manuals sprengen würde. Die obigen Beispiele sollten Ihnen einen guten Eindruck darüber verschaffen, was Ausdrücke sind und wie man nützliche Ausdrücke konstruieren kann. Im Rest dieses Manuals werden wir ausdr schreiben, um ausdrücken, dass an dieser Stelle jeder gültige PHP-Ausdruck stehen kann.

Zurück | Zum Anfang | Nach vorne
Vordefinierte Konstanten | Nach oben | Operatoren


Operatoren

PHP Handbuch
Zurück Nach vorne

Kapitel 10. Operatoren

Inhaltsverzeichnis
Operator-Rangfolge
Arithmetische Operatoren
Zuweisungsoperatoren
Bit-Operatoren
Vergleichs-Operatoren
Fehler-Kontroll-Operatoren
Operatoren zur Programmausführung
Inkrement- bzw. Dekrementoperatoren
Logische Operatoren
Zeichenketten-Operatoren
Array Operatoren

Ein Operator ist etwas das Sie mit einem oder mehreren Werten füttern (oder Ausdrücken, um im Programmierjargon zu sprechen) und Sie erhalten als Ergebnis einen anderen Wert (damit wird diese Konstruktion selbst zu einem Ausdruck). Als Eselsbrücke können Sie sich Operatoren als Funktionen oder Konstrukte vorstellen, die Ihnen einen Wert zurück liefern (ähnlich print) und alles, was Ihnen keinen Wert zurück liefert (ähnlich echo) als irgend etwas Anderes.

Es gibt drei Arten von Opratoren. Als erstes gibt es den unären Operator, der nur mit einem Wert umgehen kann, zum Beispiel ! (der Verneinungsoperator) oder ++ (der Inkrementoperator). Die zweite Gruppe sind die sogenannten binären Operatoren; diese Gruppe enthält die meisten Operatoren, die PHP unterstützt. Eine Liste dieser Operatoren finden Sie weiter unten im Abschnitt Operator-Rangfolge .

Die dritte Gruppe bildet der ternäre Operator : ?:. Dieser sollte eher benutzt werden um abhängig von einem dritten Ausdruck eine Auswahl zwischen zwei Ausdrücken zu treffen, als zwischen zwei Sätzen oder Pfaden der Programmausführung zu wählen. Übrigens ist es eine sehr gute Idee ternäre Ausdrücke in Klammern zu setzen.

Operator-Rangfolge

Die Operator-Rangfolge legt fest, wie "eng" ein Operator zwei Ausdrücke miteinander verbindet. Zum Beispiel ist das Ergebnis des Ausdruckes 1 + 5 * 3 16 und nicht 18, da der Multiplikations-Operator ("*") in der Rangfolge höher steht als der Additions-Operator ("+"). Wenn nötig, können Sie Klammern setzen, um die Rangfolge der Operatoren zu beeinflussen. Zum Beispiel: (1 + 5) * 3 ergibt 18.

Die folgende Tabelle zeigt die Rangfolge der Operatoren, oben steht der Operator mit dem höchsten Rang.

Tabelle 10-1. Operator-Rangfolge

Assoziativität | Operator
keine Richtung | new
rechts | [
rechts | ! ~ ++ -- (int) (float) (string) (array) (object) @
links | * / %
links | + - .
links | << >>
keine Richtung | < <= > >=
keine Richtung | == != === !==
links | &
links | ^
links | |
links | &&
links | ||
links | ? :
rechts | = += -= *= /= .= %= &= |= ^= <<= >>=
rechts | print
links | and
links | xor
links | or
links | ,

Anmerkung: Obwohl ! einen höheren Rang gegenüber = hat, erlaubt es Ihnen PHP immer noch ähnliche Ausdrücke wie den folgenden zu schreiben: if (!$a =foo()).In diesem Ausdruck wird die Ausgabe von foo() der Variablen $a zugewiesen.

Zurück | Zum Anfang | Nach vorne
Ausdrücke | Nach oben | Arithmetische Operatoren


Arithmetische Operatoren

Erinnern Sie sich noch an die Grundrechenarten aus der Schule? Die arithmetischen Operatoren funktionieren genauso:

Tabelle 10-2. Arithmetische Operatoren

Beispiel | Name | Ergebnis
$a + $b | Addition | Summe von $a und $b.
$a - $b | Subtraktion | Differenz von $a und $b.
$a * $b | Multiplikation | Produkt von $a und $b.
$a / $b | Division | Quotient von $a und $b.
$a % $b | Modulus | Rest von $a geteilt durch $b.

Der Divisions-Operator ("/") gibt immer eine Fließkommazahl zurück, sogar wenn die zwei Operanden Ganzzahlen sind (oder Zeichenketten, die nach Ganzzahlen umgewandelt wurden).

Siehe auch im Handbuch das Kapitel über Mathematische Funktionen.

Zurück | Zum Anfang | Nach vorne
Operatoren | Nach oben | Zuweisungsoperatoren


Zuweisungsoperatoren

Der einfachste Zuweisungsoperator ist "=". Wahrscheinlich kommt man als erstes auf die Idee, ihn mit "ist gleich" zu bezeichnen. Das ist falsch. In Wirklichkeit bedeutet er, dass dem linken Operanden der Wert des Ausdrucks auf der rechten Seite zugewiesen wird (man müsste ihn also mit "wird gesetzt auf den Wert von" übersetzen).

Der Wert eines Zuweisungs-Ausdruckes ist der zugewiesene Wert. D.h. der Wert des Ausdruckes "$a = 3" ist 3. Das erlaubt es, einige raffinierte Dinge anzustellen:

<?php

$a = ($b = 4) + 5; // $a ist nun gleich 9 und $b wurde auf den Wert 4 gesetzt.

?>

Zusätzlich zu dem oben vorgestellten Zuweisungsoperator "=" gibt es "kombinierte Operatoren" für alle binären, arithmetischen und String-Operatoren, die es erlauben, den Wert einer Variablen in einem Ausdruck zu benutzen, und dieser anschließend das Ergebnis des Ausdrucks als neuen Wert zuzuweisen. Zum Beispiel:

<?php

$a = 3;
$a += 5; // setzt $a auf den Wert 8, als ob wir geschrieben haetten: $a = $a + 5;
$b = "Hallo ";
$b .= "Du!"; // setzt $b auf den Wert "Hallo Du!", aequivalent zu
             // $b = $b . "Du!";
?>

Man beachte, dass die Zuweisung nur den Wert der Ursprungsvarialbe der neuen Variable zuweist (Zuweisung als Wert, sie "kopiert"), weshalb sich Änderungen an der einen Variablen nicht auf die andere auswirken werden. Das kann wichtig sein, wenn man ein großes Array o. ä. in einer Schleife kopieren muss. PHP 4 unterstützt 'assignement by reference' (Zuweisung als Verweis), mit Hilfe der Schreibweise $var = &$othervar;, das funktioniert jedoch nicht in PHP 3. 'Assignement by reference' bedeutet, dass beide Variablen nach der Zuweisung die selben Daten repräsentieren und nichts kopiert wird. Um mehr über Referenzen zu lernen, lesen Sie bitte den Abschnitt Referenzen erklärt.

Zurück | Zum Anfang | Nach vorne
Arithmetische Operatoren | Nach oben | Bit-Operatoren


Bit-Operatoren

Bit-Operatoren erlauben es, in einem Integer bestimmte Bits "ein- oder auszuschalten" (auf 0 oder 1 zu setzen). Wenn beide, der links- und rechtsseitige Parameter, Zeichenketten sind, arbeiten die Bit-Operatoren mit den einzelnen Zeichen.

<?php
echo 12 ^ 9; // Ausgabe '5'

echo "12" ^ "9"; // Ausgabe: das Backspace-Zeichen (ascii 8)
                 // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // Gibt die ASCII-Werte #0 #4 #0 #0 #0
                        // 'a' ^ 'e' = #4 aus
?>

Tabelle 10-3. Bit-Operatoren

Beispiel | Name | Ergebnis
$a & $b | Und | Bits, die in $a und $b gesetzt sind werden gesetzt.
$a | $b | Oder | Bits, die in $a oder $b gesetzt sind werden gesetzt.
$a ^ $b | Entweder oder (Xor) | Bits, die entweder in $a oder $b gesetzt sind, werden gesetzt aber nicht in beiden.
~ $a | Nicht | Die Bits, die in $a nicht gesetzt sind, werden gesetzt und umgekehrt.
$a << $b | Nach links verschieben | Verschiebung der Bits von $a um $b Stellen nach links (jede Stelle entspricht einer Mulitplikation mit zwei).
$a >> $b | Nach rechts verschieben | Verschiebt die Bits von $a um $b Stellen nach rechts (jede Stelle entspricht einer Division durch zwei).

Zurück | Zum Anfang | Nach vorne
Zuweisungsoperatoren | Nach oben | Vergleichs-Operatoren


Vergleichs-Operatoren

Vergleichs-Operatoren erlauben es - wie der Name schon sagt - zwei Werte zu vergleichen. Wenn Sie an Beispielen verschiedener auf Typen bezogener Vergleiche interessiert sind, können Sie sich PHP type comparison tables anschauen.

Tabelle 10-4. Vergleichsoperatoren

Beispiel | Name | Ergebnis
$a == $b | Gleich | Gibt TRUE zurück, wenn $a gleich $b ist.
$a === $b | Identisch | Gibt TRUE zurück wenn $a gleich $b ist und beide vom gleichen Typ sind(nur PHP 4).
$a != $b | Ungleich | Gibt TRUE zurück, wenn $a nicht gleich $b ist.
$a <> $b | Ungleich | Gibt TRUE zurück, wenn $a nicht gleich $b ist.
$a !== $b | Nicht identisch | Gibt TRUE zurück, wenn $a nicht gleich $b ist, oder wenn beide nicht vom gleichen Typ sind (nur PHP 4).
$a < $b | Kleiner Als | Gibt TRUE zurück, wenn $a kleiner als $b ist.
$a > $b | Größer Als | Gibt TRUE zurück, wenn $a größer als $b ist.
$a <= $b | Kleiner Gleich | Gibt TRUE zurück, wenn $a kleiner oder gleich $b ist.
$a >= $b | Größer Gleich | Gibt TRUE zurück, wenn $a größer oder gleich $b ist.

Ein weiter Vergleichs-Operator ist der "?:"- oder Trinitäts-Operator. Er arbeitet genauso wie in C und vielen anderen Programmier-Sprachen.

<?php
// Beispielanwendung für den Trinitäts-Operator
$action = (empty($_POST['action'])) ? 'standard' : $_POST['action'];

// Obiges ist mit dieser if/else-Anweisung identisch
if (empty($_POST['action'])) {
    $action = 'standard';
} else {
    $action = $_POST['action'];
}
?>

Der Ausdruck (ausdr1) ? (ausdr2) : (ausdr3) gibt ausdr2 zurück, wenn ausdr1 TRUE zurückgibt und ausdr3, wenn ausdr1 FALSE zurückgibt.

Siehe auch strcasecmp(), strcmp(), Array Operatoren und den Abschnitt über Typen.

Zurück | Zum Anfang | Nach vorne
Bit-Operatoren | Nach oben | Fehler-Kontroll-Operatoren


Fehler-Kontroll-Operatoren

PHP unterstützt einen Operator zur Fehlerkontrolle: Das @-Symbol. Stellt man das @ in PHP vor einen Ausdruck werden alle Fehlermeldungen, die von diesem Ausdruck erzeugt werden könnten, ignoriert.

Ist das track_errors-Feature aktiviert, werden alle Fehlermeldungen, die von diesem Ausdruck erzeugt werden, in der Variablen $php_errormsg gespeichert. Da diese Variable mit jedem neuen Auftreten eines Fehlers überschrieben wird, sollte man sie möglichst bald nach Verwendung des Ausdrucks überprüfen, wenn man mit ihr arbeiten will.

<?php
/* Beabsichtigter Dateifehler */
$my_file = @file ('nicht_vorhandene_Datei') or
    die ("Datei konnte nicht geöffnetwerden: Fehler war:'$php_errormsg'");

// Das funktioniert bei jedem Ausdruck, nicht nur bei Funktionen:
$value = @$cache[$key];
// erzeugt keine Notice, falls der Index $key nicht vorhanden ist.

?>

Anmerkung: Der @-Operator funktioniert nur bei Ausdrücken. Eine einfache Daumenregel: wenn Sie den Wert von etwas bestimmen können, dann können Sie den @-Operator davor schreiben. Zum Beispiel können Sie ihn vor Variablen, Funktionsaufrufe und vor include() setzen, vor Konstanten und so weiter. Nicht verwenden können Sie diesen Operator vor Funktions- oder Klassendefinitionen oder vor Kontrollstrukturen wie zum Beispiel if und foreach und so weiter.

Siehe auch error_reporting() und den Abschnitt über Error Handling and Logging Functions.

Anmerkung: Der @ Fehler-Kontroll-Operator verhindert jedoch keine Meldungen, welche aus Fehlern beim Parsen resultieren.

Warnung

Zum gegenwärtigen Zeitpunkt deaktiviert der "@" Fehler-Kontrolloperator die Fehlermeldungen selbst bei kritischen Fehlern, die die Ausführung eines Skripts beenden. Unter anderem bedeutet das, wenn Sie "@" einer bestimmten Funktion voranstellen, diese aber nicht zur Verfügung steht oder falsch geschrieben wurde, Ihr PHP-Skript einfach beendet wird, ohne Hinweis auf die Ursache.

Zurück | Zum Anfang | Nach vorne
Vergleichs-Operatoren | Nach oben | Operatoren zur Programmausführung


Operatoren zur Programmausführung

PHP unterstützt einen Operator zur Ausführung externer Programme: Die sog. Backticks (``). Achtung: Die Backticks sind keine einfachen Anführungszeichen! PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Die Ausgabe des aufgerufenen Programms wird zurückgegeben (d.h. wird nicht einfach ausgegeben, sondern kann einer Variablen zugewiesen werden). Die Verwendung des Backtick-Operators ist mit shell_exec() identisch.

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

Anmerkung: Der Backtick-Operator steht nicht zur Verfügung, wenn safe mode aktiviert ist oder die Funktion shell_exec() deaktiviert wurde.

Siehe auch den Abschnitt über Funktionen zur Programmausführung, popen(), proc_open() und Using PHP from the commandline.

Zurück | Zum Anfang | Nach vorne
Fehler-Kontroll-Operatoren | Nach oben | Inkrement- bzw. Dekrementoperatoren


Inkrement- bzw. Dekrementoperatoren

PHP unterstützt Prä- und Post-Inkrement- und Dekrementoperatoren im Stil der Programmiersprache C.

Tabelle 10-5. Inkrement- und Dekrementoperatoren

Beispiel | Name | Auswirkung
++$a | Prä-Inkrement | Erhöht den Wert von $a um eins (inkrementiert $a) und gibt anschließend den neuen Wert von $a zurück.
$a++ | Post-Inkrement | Gibt zuerst den aktuellen Wert von $a zurück und erhöht dann den Wert von $a um eins.
--$a | Prä-Dekrement | Vermindert den Wert von $a um eins (dekrementiert $a) und gibt anschließend den neuen Wert von $a zurück.
$a-- | Post-Dekrement | Gibt zuerst den aktuellen Wert von $a zurück und erniedrigt dann den Wert von $a um eins.

Ein einfaches Beispiel-Skript:

<?php
echo "<h3>Post-Inkrement</h3>";
$a = 5;
echo "Sollte 5 sein: " . $a++ . "<br />\n";
echo "Sollte 6 sein: " . $a . "<br />\n";

echo "<h3>Pre-Inkrement</h3>";
$a = 5;
echo "Sollte 6 sein: " . ++$a . "<br />\n";
echo "Sollte 6 sein: " . $a . "<br />\n";

echo "<h3>Post-Dekrement</h3>";
$a = 5;
echo "Sollte 5 sein: " . $a-- . "<br />\n";
echo "Sollte 4 sein: " . $a . "<br />\n";

echo "<h3>Pre-Dekrement</h3>";
$a = 5;
echo "Sollte 4 sein: " . --$a . "<br />\n";
echo "Sollte 4 sein: " . $a . "<br />\n";
?>

PHP folgt bei der Behandlung arithmetischer Operationen an Zeichenvariablen der Perl-Konvention und nicht der von C. Zum Beispiel wird in Perl aus 'Z'+1 'AA', während aus 'Z'+1 in C '[' wird ( ord('Z') == 90, ord('[') == 91 ). Beachten Sie, dass Zeichenvariablen zwar inkrementiert aber nicht dekrementiert werden können.

Beispiel 10-1. Arithmetrische Operationen an Zeichenvariablen

<?php
$i = 'W';
for($n=0; $n<6; $n++)
  echo ++$i . "\n";

/*
  Erzeugt in etwa folgende Ausgabe:

X
Y
Z
AA
AB
AC

*/
?>

Zurück | Zum Anfang | Nach vorne
Operatoren zur Programmausführung | Nach oben | Logische Operatoren


Logische Operatoren

Tabelle 10-6. Logische Operatoren

Beispiel | Name | Ergebnis
$a and $b | Und | TRUE wenn sowohl $a als auch $b TRUE ist.
$a or $b | Oder | TRUE wenn $a oder $b TRUE ist.
$a xor $b | Entweder Oder | TRUE wenn entweder $a oder $b TRUE ist, aber nicht beide.
! $a | Nicht | TRUE wenn $a nicht TRUE ist.
$a && $b | Und | TRUE wenn sowohl $a als auch $b TRUE ist.
$a || $b | Oder | TRUE wenn $a oder $b TRUE ist.

Der Grund dafür, dass es je zwei unterschiedliche Operatoren für die "Und"- und die "Oder"-Verknüpfung gibt ist der, dass die beiden Operatoren jeweils Rangfolgen haben. (siehe auch Operator-Rangfolge.)

Zurück | Zum Anfang | Nach vorne
Inkrement- bzw. Dekrementoperatoren | Nach oben | Zeichenketten-Operatoren


Zeichenketten-Operatoren

Es gibt in PHP zwei Operatoren für string (Zeichenkette). Der erste ist der Vereinigungs-Operator ('.'), dessen Rückgabewert eine zusammengesetzte Zeichenkette aus dem rechten und dem linken Argument ist. Der zweite ist der Vereinigungs-Zuweisungsoperator ('.='), der das Argument auf der rechten Seite an das Argument der linken Seite anhängt. Siehe Zuweisungs-Operatoren für weitere Informationen.

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

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

Siehe auch die Abschnitte über Strings / Zeichenketten und String-Funktionen.

Zurück | Zum Anfang | Nach vorne
Logische Operatoren | Nach oben | Array Operatoren


Array Operatoren

Tabelle 10-7. Array Operatoren

Beispiel | Name | Ergebnis
$a + $b | Vereinigung | Verinigung von $a und $b.
$a == $b | Gleichwerigkeit | TRUE wenn $a und $b die gleichen Elemente enthalten.
$a === $b | Identität | TRUE wenn $a und $b die gleichen Elemente in der gleichen Reihenfolge enthalten.
$a != $b | Ungleichheit | TRUE wenn $a nicht gleich $b ist.
$a <> $b | Ungleichheit | TRUE wenn $a nicht gleich $b ist.
$a !== $b | nicht identisch | TRUE wenn $a nicht identisch zu $b ist.

Der + Operator hängt das rechsstehende Array an das linksstehende Array an, wobei doppelte Schlüssel NICHT überschrieben werden.

<?php
$a = array("a" => "Apfel", "b" => "Banane");
$b = array("a" =>"pear", "b" => "Erdbeere", "c" => "Kirsche");

$c = $a + $b; // Verinigung von $a mit $b;
echo "Vereinigung von \$a mit \$b: \n";
var_dump($c);

$c = $b + $a; // Vereinigung von $b mit $a;
echo "Vereinigung von \$b mit \$a: \n";
var_dump($c);
?>

Dieses Skript gibt folgendes aus:
Vereinigung von $a mit $b:
array(3) {
  ["a"]=>
  string(5) "Apfel"
  ["b"]=>
  string(6) "Banane"
  ["c"]=>
  string(7) "Kirsche"
}
Vereinigung von $b mit $a:
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(8) "Erdbeere"
  ["c"]=>
  string(7) "Kirsche"
}

Beim Vergleich werden Arrayelemente als gleich angesehen, wenn diese dieselben Schlüssel und Werte beinhalten.

Beispiel 10-2. Array Vergleiche

<?php
$a = array("a" => "Apfel", "b" => "Banane");
$b = array(1 => "Banane", "0" => "Apfel");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Siehe auch die Abschnitte über Arrays und Array Funktionen.

Zurück | Zum Anfang | Nach vorne
Zeichenketten-Operatoren | Nach oben | Kontroll-Strukturen


Kontroll-Strukturen

PHP Handbuch
Zurück Nach vorne

Kapitel 11. Kontroll-Strukturen

Inhaltsverzeichnis
if
else
elseif
Alternative Syntax für Kontroll-Strukturen
while
do..while
for
foreach
break
continue
switch
declare
return
require()
include()
require_once()
include_once()

Jedes PHP-Skript besteht aus einer Reihe von Anweisungen. Eine Anweisung kann eine Zuweisung, ein Funktionsaufruf, eine Schleife, eine bedingte Anweisung oder ein Befehl sein, der nichts macht (eine leere Anweisung). Jede Anweisung endet gewöhnlich mit einem Semikolon. Darüber hinaus können Anweisungen zu einer Anweisungsgruppe zusammengefasst werden, welche durch geschweifte Klammern begrenzt wird. Eine Anweisungsgruppe selbst ist auch wieder eine Anweisung. Die unterschiedlichen Arten von Anweisungen werden in diesem Kapitel erläutert.

if

Das if-Konstrukt ist eine der wichtigsten Möglichkeiten vieler Programmier-Sprachen, PHP eingeschlossen. Es erlaubt die bedingte Ausführung von Programmteilen. PHP kennt eine if -Struktur, die ähnlich wie in der Programmiersprache C implementiert ist:

if (ausdr)
    Anweisung

Wie im Abschnitt über Ausdrücke beschrieben, wird ausdr auf seinen boolschen Wertinhalt ausgewertet. Wenn ausdr als TRUE ausgewertet wird, führt PHP die Anweisung aus. Falls die Auswertung FALSE ergibt, wird die Anweisung übergangen. Mehr Informationen drüber welche Werte als FALSE ausgewertet werden finden Sie im Abschnitt 'Umwandlung nach boolean'.

Das folgende Beispiel wird a ist größer als b anzeigen, wenn $a größer als $b ist:

<?php
if ($a > $b)
    echo "a ist größer als b";
?>

Oft werden Sie die bedingte Ausführung von mehr als einer Anweisung wollen. Selbstverständlich ist es nicht erforderlich, jede Anweisung mit einer if-Bedingung zu versehen. Statt dessen können Sie mehrere Anweisungen in Gruppen zusammenfassen. Der folgende Programm-Code wird zum Beispiel a ist größer als b anzeigen, wenn $a größer als $b ist und danach wird der Wert von $a in $b gespeichert:

<?php
if ($a > $b) {
    print "a ist größer als b";
    $b = $a;
}
?>

if-Anweisungen können beliebig oft innerhalb anderer if-Anweisungen definiert werden. Das ermöglicht ihnen völlige Flexibilität bei der bedingten Ausführung verschiedenster Programmteile.

Zurück | Zum Anfang | Nach vorne
Array Operatoren | Nach oben | else


Alternative Syntax für Kontroll-Strukturen

PHP bietet eine alternative Syntax für einige seiner Kontroll-Strukturen, als da sind if, while, for, foreach und switch. Die öffnende Klammer muss immer durch einen Doppelpunkt ":" und die schließende Klammer entsprechend durch endif;, endwhile;, endfor;, endforeach; oder endswitch; ersetzt werden.

<?php if ($a == 5): ?>
A ist gleich 5
<?php endif; ?>

Im obigen Beispiel ist der HTML-Bereich "A ist gleich 5" in eine if-Anweisung mit alternativer Syntax eingebettet. Der HTML-Bereich wird nur ausgegeben, wenn $a gleich 5 ist.

Die alternative Syntax kann auch auf else und elseif angewendet werden. Es folgt eine if-Struktur mit elseif und else im alternativen Format:

<?php
if ($a == 5):
    echo "a ist gleich 5";
    echo "...";
elseif ($a == 6):
    echo "a ist gleich 6";
    echo "!!!";
else:
    echo "a ist weder 5 noch 6";
endif;
?>

Siehe auch while, for und if für weitere Beispiele.

Zurück | Zum Anfang | Nach vorne
elseif | Nach oben | while


return

Wird die return() Anweisung innerhalb einer Funktion aufgerufen, wird die Ausführung der Funktion sofort beendet und das Argument als Wert des Funktionsaufrufs zurückgegeben. return() beendet auch die Ausführung einer eval() Anweisung oder einer Skriptdatei.

Erfolgt der Aufruf innerhalb des globalen Bereichs, wird die Ausführung des aktuellen Skripts beendet. Wurde das aktuelle Skript include()ed oder require()ed, wird die Kontrolle an das aufrufende Skript zurückgegeben. Wurde das aktuelle Skript include()ed, wird der Wert, der return() zugewiesen wurde, als Wert des Aufrufs von include() zurückgegeben. Wird return() innerhalb des Hauptskripts aufgerufen, wird die Ausführung beendet. Handelt es sich bei dem Skript um eine Datei, die über die Einträge auto_prepend_file oder auto_append_file in der php.ini aufgerufen wurde, wird die Ausführung dieses Skripts beendet.

Weitere Informationen erhalten Sie im Abschnitt Rückgabewerte.

Anmerkung: Beachten Sie, dass return() ein Sprachkonstrukt und keine Funktion ist. Die Klammern um ein Argument sind deshalb nur zwingend notwendig, wenn es sich um einen Ausdruck handelt, dessen Ergebnis zurückgegeben werden soll. Es ist gebräuchlich die Klammern wegzulassen, wenn eine Variable zurück gegeben soll.

Zurück | Zum Anfang | Nach vorne
declare | Nach oben | require()


Funktionen

PHP Handbuch
Zurück Nach vorne

Kapitel 12. Funktionen

Inhaltsverzeichnis
Vom Nutzer definierte Funktionen
Funktionsparameter
Rückgabewerte
old_function
Variablenfunktionen

Vom Nutzer definierte Funktionen

Eine Funktion kann wie folgt definiert werden:

function foo ($arg_1, $arg_2, ..., $arg_n)
{
    echo "Beispielfunktion.\n";
    return $retval;
}

Jeder beliebige korrekte PHP-Code kann in einer Funktion vorkommen, sogar andere Funktionen und Klassen- Definitionen.

In PHP 3 müssen Funktionen definiert sein, bevor man auf sie verweist. In PHP4 ist das nicht mehr erforderlich, außer wenn eine Funktion nur bedingt definiert wird, wie in den beiden untenstehenden Beispielen gezeigt.

Wenn eine Funktion nur unter bestimmten Bedingungen definiert wird, muß die Definition dieser Funktion noch vor deren Aufruf abgearbeitet werden.

Beispiel 12-1. Bedingte Funktionen

<?php

$makefoo = true;

/* Wir können foo() von her aus nicht
   aufrufen, da sie noch nicht existiert,
   aber wir können bar() aufrufen */

bar();

if ($makefoo) {
  function foo ()
  {
    echo "Ich existiere nicht, bis mich die Programmausführung erreicht hat.\n";
  }
}

/* Nun können wir foo() sicher aufrufen,
   da $makefoo als true ausgewertet wurde */

if ($makefoo) foo();

function bar()
{
  echo "Ich existiere sofort nach Programmstart.\n";
}

?>

Beispiel 12-2. Funktionen innerhalb von Funktionen

<?php
function foo()
{
  function bar()
  {
    echo "Ich existiere nicht, bis foo() aufgerufen wurde.\n";
  }
}

/* Wir können bar() noch nicht
   aufrufen, da es nicht existiert */

foo();

/* Nun können wir auch bar() aufrufen,
   da sie durch die Abarbeitung von
   foo() verfügbar gemacht wurde */

bar();

?>

PHP unterstützt weder das Überladen von Funktionen, noch ist es möglich, zuvor deklarierte Funktionen neu zu definieren oder die Definition zu löschen.

PHP 3 unterstützt keine variable Anzahl von Parametern, obwohl Vorgabewerte für Parameter unterstützt werden (weitere Informationen finden Sie unter Vorgabewerte für Parameter). PHP 4 unterstützt beides: siehe Variable Parameteranzahl und die Funktionsreferenzen für func_num_args(), func_get_arg() und func_get_args() für weitere Informationen.

Zurück | Zum Anfang | Nach vorne
include_once() | Nach oben | Funktionsparameter


Funktionsparameter

Mit einer Parameterliste kann man Informationen an eine Funktion übergeben. Die Parameterliste ist eine durch Kommas getrennte Liste von Variablen und/oder Konstanten.

PHP unterstützt die Weitergabe von Parametern als Werte (das ist der Standard), als Verweise, und als Vorgabewerte. Die Übergabe einer variablen Anzahl von Parametern wird nur von PHP 4 und höher unterstützt, siehe Variable Parameteranzahl und die Funktionsreferenzen für func_num_args(), func_get_arg() und func_get_args() für weitere Informationen. Durch die Übergabe eines Arrays mit Parametern kann man auch in PHP 3 einen ähnlichen Effekt erreichen:

function rechne_array($eingabe)
{
    echo "$eingabe[0] + $eingabe[1] = ", $eingabe[0]+$eingabe[1];
}

Verweise als Parameter übergeben

Normalerweise werden den Funktionen Werte als Parameter übermittelt. Wenn man den Wert dieses Parameters innerhalb der Funktion ändert, bleibt der Parameter außerhalb der Funktion unverändert. Wollen Sie aber genau das erreichen, dann müssen Sie die Parameter als Verweise (Referenzen) übergeben.

Wenn eine Funktion einen Parameter generell als Verweis behandeln soll, setzt man in der Funktionsdefinition ein kaufmännisches Und (&) vor den Parameternamen:

function fuege_etwas_anderes_an (&$string)
{
    $string .= 'und nun zu etwas anderem.';
}
$str = 'Dies ist ein String, ';
fuege_etwas_anderes_an ($str);
echo $str; // Ausgabe: 'Dies ist ein String, und nun zu etwas anderem.'

Vorgabewerte für Parameter

Eine Funktion kann C++-artige Vorgabewerte für skalare Parameter wie folgt definieren:

function machkaffee ($typ = "Cappucino")
{
    return "Ich mache eine Tasse $typ.\n";
}
echo machkaffee ();
echo machkaffee ("Espresso");

Die Ausgabe von diesem kleinen Skript ist:
Ich mache eine Tasse Cappucino.
Ich mache eine Tasse Espresso.

Der Vorgabewert muss ein konstanter Ausdruck sein, darf also (zum Beispiel) keine Variable oder Element einer Klasse sein.

Bitte beachten Sie, dass alle Vorgabewerte rechts von den Nicht-Vorgabeparametern stehen sollten; - sonst wird es nicht funktionieren. Betrachten Sie folgendes Beispiel:

function mach_joghurt ($typ = "rechtsdrehendes", $geschmack)
{
    return "Mache einen Becher $typ $geschmack-joghurt.\n";
}

echo mach_joghurt ("Brombeer");   // arbeitet nicht wie erwartet

Die Ausgabe dieses Beispiels ist::
Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Mache einen Becher Brombeer-joghurt.

Nun vergleichen Sie bitte oberes Beispiel mit folgendem:

function mach_joghurt ($geschmack, $typ = "rechtsdrehendes")
{
    return "Mache einen Becher $typ $geschmack-joghurt.\n";
}

echo mach_joghurt ("Brombeer");   // arbeitet wie erwartet.

... und jetzt ist die Ausgabe:
Mache einen Becher rechtsdrehendes Brombeer-Joghurt.

Variable Anzahl von Parametern

PHP 4 unterstützt eine variable Anzahl von Parametern in
benutzerdefinierten Funktionen. Das Handling dieser Parameter
fällt mittels der Funktionen func_num_args(),
func_get_arg() und
func_get_args() sehr leicht.

Es ist keine spezielle Syntax erforderlich. Die Parameter können wie gehabt explizit in den Funktionsdeklarationen angegeben werden, und werden sich wie gewohnt verhalten.

Zurück | Zum Anfang | Nach vorne
Funktionen | Nach oben | Rückgabewerte


Rückgabewerte

Sie können Werte mit dem optionalen Befehl "return" zurückgeben. Es können Variablen jedes Typs zurückgegeben werden, auch Listen oder Objekte. Die beendet sofort die Funktion, und die Kontrolle wird wieder an die aufrufende Zeile zurückgegeben. Weitere Informationen finden Sie unter return().

function quadrat ($zahl)
{
    return $zahl * $zahl;
}
echo quadrat (4);   // gibt '16' aus.

Es ist nicht möglich, mehrere Werte von einer Funktion zurückzugeben. Ein ähnliches Resultat kann man aber durch die Rückgabe von Listen erreichen.

function kleine_zahlen()
{
   return array (0, 1, 2);
}
list ($null, $eins, $zwei) = kleine_zahlen();

Um von einer Funktion eine Referenz zurückzugeben, müssen Sie den Referenz-Operator & sowohl in der Funktionsdeklaration, als auch bei der Zuweisung des zurückgegebenen Wertes verwenden:

function &returniere_referenz()
{
    return $einereferenz;
}

$neuereferenz =& returniere_referenz();

Weitere Informationen über Referenzen finden Sie im Kapitel Referenzen in PHP.

Zurück | Zum Anfang | Nach vorne
Funktionsparameter | Nach oben | old_function


Variablenfunktionen

PHP unterstützt das Konzept der Variablenfunktionen. Wenn Sie an das Ende einer Variablen Klammern hängen, versucht PHP eine Funktion aufzurufen, deren Name der aktuelle Wert der Variable ist. Dies kann unter anderem für Callbacks, Funktionstabellen, usw. genutzt werden.

Variablenfunktionen funktionieren nicht mit Sprachkonstrukten wie echo(), print(), unset(), isset(), empty(), include() und require(). Sie müssen Ihre eigenen Wrapperfunktionen verwenden, um diese Konstrukte als variable Funktionen benutzen zu können.

Beispiel 12-3. Beispiel für Variablenfunktionen

<?php
function foo()
{
    echo "In foo()<br>\n";
}

function bar($arg = '')
{
    echo "In bar(); der Parameter ist '$arg'.<br>\n";
}

// Dies ist eine Wrapperfunkiton für echo
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // Dies ruft foo() auf

$func = 'bar';
$func('test');  // Dies ruft bar() auf

$func = 'echoit';
$func('test');  // Dies ruft echoit() auf
?>

Sie können auch die Methode eines Objektes mittels der variablen Funktionen aufrufen.

Beispiel 12-4. Variable Methode

<?php
class Foo
{
    function Var()
    {
        $name = 'Bar';
        $this->$name(); // Dies ruft die Bar() Methode auf
    }

    function Bar()
    {
        echo "Das ist Bar";
    }
}

$foo = new Foo();
$funcname = "Var";
$foo->$funcname();   // Dies ruft $foo->Var() auf

?>

Siehe auch call_user_func(), Variable Variablen und function_exists().

Zurück | Zum Anfang | Nach vorne
old_function | Nach oben | Klassen und Objekte


Klassen und Objekte

PHP Handbuch
Zurück Nach vorne

Kapitel 13. Klassen und Objekte

Inhaltsverzeichnis
Klassen
extends
Konstruktoren
::
parent
Objekte serialisieren - Objekte in Sessions
Die "magischen" Funktionen __sleep und __wakeup
Referenzen innherhalb des Konstruktors

Klassen

Eine Klasse ist eine Sammlung von Variablen und Funktionen, die mit diesen Variablen arbeiten. Eine Klasse wird folgendermaßen definiert:

<?php
class Cart
{
    var $items;  // Artikel in unserem Einkaufswagen

    // Füge dem Einkaufswagen $num Artikel der Sorte $artnr zu

    function add_item ($artnr, $num)
    {
        $this->items[$artnr] += $num;
    }

    // Nimm $num Artikel von $artnr aus dem Einkaufswagen

    function remove_item ($artnr, $num)
    {
        if ($this->items[$artnr] > $num) {
            $this->items[$artnr] -= $num;
            return true;
        } else {
            return false;
        }
    }
}
?>

In diesem Beispiel wird eine Klasse "Cart" definiert. Sie besteht aus einem assoziativen Array von Produkten im Einkaufswagen und zwei Funktionen zum Hinzufügen und Entfernen von Artikeln.

Achtung

Die folgenden warnenden Bemerkungen gelten für PHP 4.

Der Name stdClass ist reserviert, da er intern von Zend benutzt wird. Sie können in PHP keine Klasse mit dem Namen stdClass haben.

Die Funktionsnamen __sleep und __wakeup sind in PHP Klassen "magisch". Sie können in Ihren Klassen keine Funktionen mit diesen Namen haben, außer Sie wollen sie mit dieser "magischen" Funktionalität assoziieren. Mehr Informationen dazu finden Sie weiter unten.

Sämtliche mit __ beginnende Funktionsnamen sind PHP als "magisch" vorbehalten. Es wird empfohlen, in PHP keine Funktionsnamen mit __ zu verwenden, außer Sie möchten dokumentierte "magische" Funktionalität.

Anmerkung: In PHP 4 sind nur konstante Initialisierungen für var Variablen erlaubt. Um Variablen mit nicht konstanten Werten zu initialisieren, benötigen Sie eine Funktion zur Initialisierung, welche beim Erstellen eines Objektes automatisch von der Klasse aufgerufen wird. Eine solche Funktion wird Konstruktor genannt (siehe unten).

<?php
/* Keine wird in PHP 4 funktionieren */
class Cart
{
    var $todays_date = date("Y-m-d");
    var $name = $firstname;
    var $owner = 'Fred ' . 'Jones';
    var $items = array("VCR", "TV");
}

/* So sollte es gemacht werden */
class Cart
{
    var $todays_date;
    var $name;
    var $owner;
    var $items;

    function Cart()
    {
        $this->todays_date = date("Y-m-d");
        $this->name = $GLOBALS['firstname'];
        /* etc. . . */
    }
}
?>

Klassen sind Typen, das heißt sie sind die Blaupausen für reale Variablen. Um sie zu nutzen, muss zunächst eine Variable mit dem Operator new angelegt werden.

<?php
$cart = new Cart;
$cart->add_item("10", 1);

$another_cart = new Cart;
$another_cart->add_item("0815", 3);

Dies erstellt die Objekte $cart und $another_cart aus der Klasse Cart. Dann wird die Funktion add_item() des $cart Objektes aufgerufen, um $cart einen Artikel mit der Artikelnummer 10 hinzuzufügen. 3 Artikel mit der Artikelnummer 0815 werden $another_cart hinzugefügt.

Sowohl $cart als auch $another_cart haben die Funktionen add_item(), remove_item() und die Variable items. Dies sind verschiedene Funktionen und Variablen. Sie können sich Objekte ähnlich den Verzeichnissen in einem Dateisystem vorstellen. Sie können in einem Dateisystem zwei verschiedene Dateien README.TXT haben, solange sie sich in verschiedenen Verzeichnissen befinden. So wie Sie in Verzeichnissen den vollen Pfadnamen eingeben müssen, um jede Datei von dem obersten Verzeichnis aus zu erreichen, müssen Sie auch den vollen Namen der aufzurufenden Funktion angeben: Das heißt für PHP, dass das Hauptverzeichnis der globale Namensbereich, und der Separator des Pfadnamens -> wäre. Deshalb benennen die Namen $cart->items und $another_cart->items auch zwei verschiedene Variablen. Beachten Sie, dass die Variable $cart->items, und nicht $cart->$items genannt wird, da ein Variablenname in PHP nur ein einziges Dollarzeichen hat.

// korrekt, einfaches $
$cart->items = array("10" => 1);

// falsch, denn $cart->$items wird zu $cart->""
$cart->$items = array("10" => 1);

// richtig aber fraglich, ob dies erwünscht war:
// $cart->$myvar wird zu $cart->items
$myvar = 'items';
$cart->$myvar = array("10" => 1);

Innerhalb einer Klassendefinition ist nicht bekannt, unter welchem Namen das Objekt in Ihrem Programm erreichbar sein wird: Als die Klasse Cart geschrieben wurde war nicht bekannt, dass das Objekt später $cart oder $another_cart genannt wird. Deshalb können Sie innerhalb der Klasse Cart selbst auch nicht $cart->items schreiben. Um nun die eigenen Funktionen und Variablen innerhalb einer Klasse anzusprechen, können Sie die Pseudo-Variable $this verwenden, welche Sie auch als 'meine eigene' oder 'aktuelles Objekt' verstehen können. Deshalb kann '$this->items[$artnr] += $num' auch als 'addiere $num zu $artnr in meinem eigenen Array items', oder 'addiere $num zu $artnr im Array items innerhalb des aktuellen Objektes' lesen.

Anmerkung: Es gibt ein paar angenehme Funktionen, um mit Klassen und Objekten umzugehen. Mehr darüber erfahren Sie im Kapitel Klassen- und Objekt-Funktionen.

Zurück | Zum Anfang | Nach vorne
Variablenfunktionen | Nach oben | extends


Objekte serialisieren - Objekte in Sessions

Anmerkung: In PHP 3 verlieren Objekte während des Prozesses der Serialisierung und Deserialisierung ihre Assoziation zur Klasse. Die resultierende Variable ist vom Typ Objekt, hat aber keine Klasse und keine Methoden, weshalb sie ziemlich unbrauchbar ist (Sie wurde wie ein Array, jedoch mit einer ziemlich komischen Syntax).

Achtung

Die folgende Information ist nur für PHP 4 gültig.

serialize() gibt eine Zeichenkette zurück, die eine Byte-Strom-Repräsentation irgendeines in PHP speicherbaren Wertes enthält. unserialize() kann diese Zeichenkette verwenden, um die ursprünglichen Variablenwerte wieder herzustellen. Die Verwendung von serialize zum Speichern eines Objektes wird alle Variablen innerhalb eines Objektes speichern. Die Funktionen in einem Objekt werden nicht gespeichert, sondern nur der Name der Klasse.

Um ein Objekt wieder deserialisieren zu können, muss die Klasse dieses Objektes definiert werden. Das heißt, wenn Sie ein Objekt $a der Klasse A in page1.php haben und dieses serialisieren, erhalten Sie eine Zeichenkette, die sich auf die Klasse A bezieht, und alle Werte der in $a enthaltenen Variablen enthält. Wenn Sie $a der Klasse A in page2.php mittels unserialize wiederherstellen möchten, muss die Definition von Klasse A in page2.php vorhanden sein. Dies kann zum Beispiel durch das Speichern der Klassendefiniton von Klasse A in einer Include-Datei, und das Einbinden dieser Datei sowohl in page1.php und page2.php realisiert werden.

classa.inc:
  class A
  {
      var $one = 1;

      function show_one()
      {
          echo $this->one;
      }
  }

page1.php:
  include("classa.inc");

  $a = new A;
  $s = serialize($a);
  // speichere $s irgendwo, wo sie page2.php finden kann.
  $fp = fopen("store", "w");
  fputs($fp, $s);
  fclose($fp);

page2.php:
  // Dies ist für das korrekte Arbeiten von unserialize nötig.
  include("classa.inc");

  $s = implode("", @file("store"));
  $a = unserialize($s);

  // Nun verwenden wir die Funktion show_one() des Objektes $a.
  $a->show_one();

Wenn Sie mit Sessions arbeiten und session_register() verwenden, um Objekte zu registrieren, so werden diese Objekte am Ende der PHP Seite serialisiert, und in jeder folgenden Seite automatisch via unserialize wiederhergestellt. Das heißt, dass diese Objekte auf jeder Ihrer Seite auftauchen können, sobald sie Teil Ihrer Session sind.

Es wird ausdrücklich empfohlen, dass Sie die Klassendefinitionen der so registrierten Objekte in allen Ihren Seiten einbinden, auch wenn Sie diese Klassen eigentlich nicht auf allen Ihren Seiten benötigen. Tun Sie es nicht und wird ein Objekt ohne einer vorhandenen Klassendefinition deserialisiert, verliert es seine Assoziation zur Klasse, und wird zu einem Objekt der Klasse stdClass, ohne irgendwelchen Funktionen. Das bedeutet, dass es ziemlich nutzlos wird.

Würde also $a in dem obigen Beispiel mittels session_register("a") ein Teil einer Session, sollten Sie die Datei classa.inc nicht nur in page1.php und page2.php, sondern in all Ihre Seiten einbinden.

Zurück | Zum Anfang | Nach vorne
parent | Nach oben | Die "magischen" Funktionen __sleep und __wakeup


Referenzen innherhalb des Konstruktors

Referenzen innerhalb des Konstruktors können zu verwirrenden Resultaten führen. Dieser Abschnitt hilft, Probleme zu vermeiden.

class Foo
{
    function Foo($name)
    {
        // eine Referenz innerhalb des globalen Arrays  $globalref erstellen
        global $globalref;
        $globalref[] = &$this;
        // setze den Namen auf den übergebenen Wert
        $this->setName($name);
        // und gib' ihn aus
        $this->echoName();
    }

    function echoName()
    {
        echo "<br>",$this->name;
    }

    function setName($name)
    {
        $this->name = $name;
    }
}

Prüfen wir, ob zwischen $bar1, die mittels dem Operator zum Kopieren = erstellt wurde, und $bar2, die mittels dem Referenzoperator =& erstellt wurde, besteht...

$bar1 = new Foo('set in constructor');
$bar1->echoName();
$globalref[0]->echoName();

/* Ausgabe:
set in constructor
set in constructor
set in constructor */

$bar2 =& new Foo('set in constructor');
$bar2->echoName();
$globalref[1]->echoName();

/* Ausgabe:
set in constructor
set in constructor
set in constructor */

Scheinbar besteht kein Unterschied, aber tatsächlich existiert ein signifikanter: $bar1 und $globalref[0] sind NICHT referenziert, d.h. sie sind NICHT die selbe Variable. Das kommt daher, dass "new" nicht automatisch eine Referenz, sondern eine Kopie zurückgibt.

Anmerkung: Das zurückgeben von Kopien anstatt von Referenzen stellt keinen Performanceverlust dar (da PHP 4 und höher Reference Counting verwendet). Andererseits ist es sehr oft besser, einfach mit Kopien anstatt mit Referenzen zu arbeiten, da die Erstellung von Referenzen etwas Zeit in Anspruch nimmt, während das Erstellen von Kopien so gut wie keine Zeit braucht (sofern keine von ihnen ein großes Array oder Objekt ist, und eines davon geändert wird und das/die andere/n nachträglich. In diesem Fall wäre es besser, Referenzen zu verwenden, um sie alle gleichzeitig zu ändern).

Um das zuvor geschriebene zu beweisen, sehen wir uns den folgenden Code an.

// nun werden wir den Namen ändern. Was erwarten Sie?
// ...dass sowohl $bar1, als auch $globalref[0] ihre Namen ändern...
$bar1->setName('set from outside');

// wie bereits zuvor erwähnt, ist dies nicht der Fall
$bar1->echoName();
$globalref[0]->echoName();

/* Ausgabe:
set from outside
set in constructor */

// lassen Sie uns den Unterschied zwischen $bar2 and $globalref[1] ansehen
$bar2->setName('set from outside');

// glücklicherweise sind sie nicht nur nicht gleich, sondern auch die selbe
// Variable; demnach sind $bar2->name und $globalref[1]->name ebenfalls gleich
$bar2->echoName();
$globalref[1]->echoName();

/* Ausgabe:
set from outside
set from outside */

Ein anderes, letztes Beispiel zum Verständnis:

class A
{
    function A($i)
    {
        $this->value = $i;
        // finden Sie heraus, warum wir hier keine Referenz benötigen
        $this->b = new B($this);
    }

    function createRef()
    {
        $this->c = new B($this);
    }

    function echoValue()
    {
        echo "<br>","class ",get_class($this),': ',$this->value;
    }
}

class B
{
    function B(&$a)
    {
        $this->a = &$a;
    }

    function echoValue()
    {
        echo "<br>","class ",get_class($this),': ',$this->a->value;
    }
}

// überlegen Sie, warum hier die Verwendung einer einfachen Kopie in der
// mit * markierten Zeile zu einem unerwünschten Ergebnis führen würde
$a =& new A(10);
$a->createRef();

$a->echoValue();
$a->b->echoValue();
$a->c->echoValue();

$a->value = 11;

$a->echoValue();
$a->b->echoValue(); // *
$a->c->echoValue();

/*
Ausgabe:
class A: 10
class B: 10
class B: 10
class A: 11
class B: 11
class B: 11
*/

Zurück | Zum Anfang | Nach vorne
Die "magischen" Funktionen __sleep und __wakeup | Nach oben | Referenzen in PHP


Referenzen in PHP

PHP Handbuch
Zurück Nach vorne

Kapitel 14. Referenzen in PHP

Inhaltsverzeichnis
Was Referenzen sind
Was Referenzen leisten
Was Referenzen nicht sind
Referenzen zurückgeben
Referenzen aufheben
Referenzen entdecken

Was Referenzen sind

Referenzen sind in PHP ein Mechanismus um verschiedene Namen für den gleichen Inhalt von Variablen zu ermöglichen. Sie sind nicht mit Zeigern in C zu vergleichen, sondern Aliasdefinitionen für die Symboltabelle. PHP unterscheidet zwischen Variablenname und Variableninhalt, wobei der gleiche Variableninhalt unterschiedliche Namen besitzen kann. Der bestmögliche Vergleich ist der mit Dateinamen und Dateien im Dateisystem von Unix - Variablennamen sind Verzeichniseinträge, während der Variableninhalt die eigentliche Datei darstellt. Referenzen können nun als Hardlinks im Dateisystem verstanden werden.

Zurück | Zum Anfang | Nach vorne
Referenzen innherhalb des Konstruktors | Nach oben | Was Referenzen leisten


Was Referenzen leisten

PHP Referenzen erlauben es, zwei Variablennamen sich auf den gleichen Variableninhalt beziehen zu lassen. Das heisst im folgenden Beispiel, dass sich $a und $b auf dieselbe Variable beziehen:

$a =& $b

Anmerkung: $a und $b sind hier gleichwertig, und $a ist nicht nur ein Zeiger auf $b oder umgekehrt, sondern $a und $b zeigen auf den selben Inhalt.

Seit PHP 4.0.4 kann & auch in Verbindung mit new verwendet werden.

$bar =& new fooclass();
$foo =& find_var ($bar);

Anmerkung: Wenn der & Operator nicht verwendet wird, erzeugt PHP eine Kopie des Objekts. Wenn nun $this innerhalb der Klasse verwendet wird, bezieht es sich auf die aktuelle Instanz der Klasse. Die Zuordnung ohne & erzeugt eine Kopie der Instanz (d.h. des Objekts) und $this wird sich auf die Kopie beziehen. In der Regel will man aus Performance- und Speicherverbrausgründen nur eine einzige Instanz einer Klasse erzeugen. Dafür stellt PHP den & bereit.

Eine weitere Einsatzmöglichkeit von Referenzen ist die Übergabe von Parametern an eine Funktion mit pass-by-reference. Hierbei beziehen sich der lokale Variablenname als auch der Variablenname der aufrufenden Instanz auf denselben Variableninhalt:

function foo (&$var) {
    $var++;
}

$a=5;
foo ($a);

Nach der Ausführung hat $a den Wert 6, da sich in der Funktion foo der Variablenname $var auf denselben Variableninhalt bezieht wie $a in der aufrufenden Instanz (hier das Hauptprogramm).

Daneben besteht die Möglichkeit aus Funktionen heraus Werte mit return by-reference zurückzugeben.

Zurück | Zum Anfang | Nach vorne
Referenzen in PHP | Nach oben | Was Referenzen nicht sind


Was Referenzen nicht sind

Wie bereits gesagt: Referenzen sind keine Zeiger. Das bedeutet, der folgende Code tut nicht, was zum Beispiel ein C Programmierer erwarten würde:

function foo (&$var) {
    $var =& $GLOBALS["baz"];
}
foo($bar);

Folgendes wird passieren: $var in foo wird zunächst an $bar aus der aufrufenden Instanz, dann aber an $GLOBALS["baz"], gebunden. Es gibt keine Möglichkeit, $bar aus der aufrufenden Instanz mittels Referenz-Mechanismen an etwas anderes zu binden, da $bar in der Funktion foo nicht zur Verfügung steht ($bar wird durch $var repräsentiert; $var verfügt nur über Variableninhalt, besitzt aber keinen name-to-value Eintrag in der Symboltabelle der aufrufenden Instanz).

Zurück | Zum Anfang | Nach vorne
Was Referenzen leisten | Nach oben | Referenzen zurückgeben


Referenzen zurückgeben

Das Zurückgeben von Ergebnissen per Referenz aus Funktionen heraus kann manchmal recht nüzlich sein. Hierbei ist folgende Syntax zu beachten:

function &find_var ($param) {
    ...code...
    return $found_var;
}

$foo =& find_var ($bar);
$foo->x = 2;

In diesem Beispiel wird also die Eigenschaft des von find_var gelieferten Objektes gesetzt, nicht die der Kopie, wie es der Fall wäre, wenn die Funktion find_var ihr Ergebnis nicht per Referenz liefern würde.

Anmerkung: Im Gegensatz zur Parameterübergabe per Referenz ist bei der Rückgabe mittels Referenz an beiden Stellen die Angabe des & notwendig.

Zurück | Zum Anfang | Nach vorne
Was Referenzen nicht sind | Nach oben | Referenzen aufheben


Referenzen aufheben

Wird eine Referenz aufgehoben, so wird nur die Bindung zwischen einem Variablennamen und dem Variableninhalt entfernt. Der Inhalt der Variablen wird hierbei nicht gelöscht. Betrachten wir folgendes Beispiel:

$a = 1;
$b =& $a;
unset ($a);

Die Variable $b wird nicht gelöscht, sondern es wird nur die Bindung des Variablennamen $a an den Variableninhalt aufgehoben. Dieser Variableninhalt ist immer noch über $b verfügbar.

Wiederum sieht man die Analogie zwischen Unix und den Referenzen: Das Aufheben einer Referenz entspricht einem Aufruf von unlink unter Unix.

Zurück | Zum Anfang | Nach vorne
Referenzen zurückgeben | Nach oben | Referenzen entdecken


Referenzen entdecken

Viele Sprachelemente von PHP sind intern mit der Benutzung von Referenzen implementiert, daher gilt alles bisher gesagte auch für diese Konstrukte:

global References

Die Verwendung von global $var erzeugt im aktuellen Scope eine Referenz auf die globale Variable $var, sie ist also äquivalent zu folgendem:

$var =& $GLOBALS["var"];

Dies hat zur Folge, dass das Anwenden von unset() auf $var keinen Einfluss auf die globale Variable hat.

$this

In einer Objektmethode ist $this immer eine Referenz auf die aufrufende Objektinstanz.

Zurück | Zum Anfang | Nach vorne
Referenzen aufheben | Nach oben | Sicherheit


Sicherheit

PHP Handbuch
Zurück Nach vorne

III. Sicherheit

Inhaltsverzeichnis
15. Sicherheit

Zurück | Zum Anfang | Nach vorne
Referenzen entdecken |  | Sicherheit


Sicherheit

PHP Handbuch
Zurück Nach vorne

Kapitel 15. Sicherheit

Inhaltsverzeichnis
Allgemeine Überlegungen
CGI-Version
Apache-Modul
Dateisystem - Sicherheit
Datenbank - Sicherheit
Fehlerbehandlung
Verwendung von Register Globals
Vom Nutzer übermittelte Daten
Verstecken von PHP
Aktuell bleiben

PHP ist eine mächtige Sprache, und der Interpreter, der in einen Webserver als Modul oder als separate CGI-Version eingebunden werden kann, kann auf Dateien zugreifen, Befehle ausführen und Netzwerkverbindungen zu einem Server herstellen. Diese Eigenschaften können einen Webserver unsicher machen, wenn man es bei den Voreinstellungen belässt. PHP wurde besonders dafür entwickelt, um eine sicherere Sprache als Perl oder C für die Erstellung von CGI-Programmen bereitzustellen. Mit der richtigen Wahl der Einstellungen beim Kompilieren und zur Laufzeit bietet PHP genau die Kombination aus Freiheit und Sicherheit, die gerade benötigt wird.

Da es sehr viele verschiedene Möglichkeiten gibt, PHP zu nutzen, gibt es viele Konfigurationseinstellungen, die das Verhalten von PHP beeinflussen. Eine große Auswahl an Einstellungen garantiert, dass man PHP für viele Zwecke einsetzen kann. Allerdings bedeutet das auch, dass es Kombinationen gibt, die eine Installation mit nur ungenügender Sicherheit zur Folge haben.

Die Flexibilität der Konfiguration konkurriert mit der Flexibilität in der Programmierung. Mit PHP können komplette Server Applikationen mit allen Möglichkeiten eines Shell Benutzers erstellt werden, oder auch nur einfache Server Side Includes mit einem minimalen Risiko in einer streng kontrollierten Umgebung. Wie die Umgebung erstellt wird, und wie sicher diese ist, ist zu einem großen Teil die Sache des PHP Entwicklers.

Dieses Kapitel beginnt mit einigen generellen Ratschlägen zur Sicherheit, erklärt die verschiedenen Kombinationen der Konfigurationseinstellungen und unter welchen Gegebenheiten sie sicher genutzt werden können, und beschreibt verschiedene Überlegungen zur Programmierung für verschiedene Sicherheitsstufen.

Allgemeine Überlegungen

Ein komplett sicheres System ist praktisch ein Ding der Unmöglichkeit, weshalb ein unter Sicherheitsprofis oft genutzter Ansatz ist, einen Mittelweg zwischen Risiko und Verwendbarkeit zu finden. Wenn jede von einem Benutzer übermittelte Variable zwei Formen von biometrischer Prüfung (wie z.B. ein Scan der Netzhaut und ein Fingerabdruck) verlangen würde, wäre eine extrem hohe Ebene der Verantwortlichkeit erreicht. Ein sehr komplexes Formular auszufüllen würde auch eine halbe Stunde in Anspruch nehmen, die Benutzer dazu ermuntern könnte, Wege zur Umgehung der Sicherheitsmaßnahmen zu suchen.

Die beste Sicherheit ist oft unaufdringlich genug um den Anforderungen zu entsprechen, ohne den Benutzer an seiner Arbeit zu hindern oder den Code-Autor mit übertriebener Komplexität zu überlasten. Tatsächlich sind einige Sicherheitsangriffe nur die Folge von allzu strengen Sicherheitsmaßnahmen, was mit der Zeit nur zu deren Unterminierung führt.

Eine Phrase die es wert ist, sich an sie zu erinnern: Ein System ist nur so gut wie das schwächste Glied in der Kette. Wenn alle Transaktionen mittels Zeit, Ort, Transaktionstyp, etc. streng mitprotokolliert werden, der Benutzer aber nur mittels einem einzigen Cookie verifiziert wird, lässt die Zuverlässigkeit für die Bindung des Benutzers an das Transaktions-Log bedrohlich nach.

Denken Sie während der Tests daran, dass Sie selbst für die einfachsten Seiten nicht alle Möglichkeiten testen können. Der von Ihnen vielleicht erwartete Input wird zu dem eines verstimmten Mitarbeiters oder eines Crackers der Monate Zeit hat, oder einer Katze, die über die Tastatur läuft in keinerlei Zusammenhang stehen. Deshalb betrachten Sie Ihren Code am Besten aus der logischen Perspektive um zu erkennen, wo unerwartete Daten eingebracht werden können und fragen sich dann, wie diese modifiziert, reduziert, oder weiter ausgeführt werden.

Das Internet ist voll von Leuten die versuchen, sich durch Entschlüsseln/zerstören Ihres Codes, den Zusammenbruch Ihres Systems, Einsetzen von unangebrachten Inhalten, und anderen, Ihren Tag interessant gestaltenden Maßnahmen, einen Namen zu machen. Es ist egal, ob Sie eine kleine oder große Site haben, Sie sind einfach ein Ziel wenn Sie online sind oder wenn Sie einen Server haben, zu dem man eine Verbindung aufbauen kann. Viele Cracker-Programme erkennen nicht die Größe, sondern durchsieben einfach gewaltige IP Blöcke im Netz, um Opfer zu finden. Versuchen Sie, keines zu werden.

Zurück | Zum Anfang | Nach vorne
Sicherheit | Nach oben | CGI-Version


CGI-Version

Mögliche Angriffe

PHP als CGI zu nutzen, ist eine Möglichkeit für Installationen, bei denen aus irgendwelchen Gründen kein Modul in die Serversoftware eingebunden werden soll (wie beim Apache) oder für Systeme, bei denen verschiedene CGI-Wrapper genutzt werden sollen, um sichere chroot- und setuid-Umgebungen für Skripte zu schaffen. Bei dieser Konfiguration wird das ausführbare PHP-Binary üblicherweise im cgi-bin Verzeichnis des Webservers installiert. CERT advisory CA-96.11 spricht sich gegen die Platzierung von Interpretern im cgi-bin Verzeichnis aus. Obwohl das PHP-Binary als eigenständiger Interpreter verwendet werden kann, wurde PHP so entwickelt, um den durch diese Konfiguration möglich werdenden Angriffe vorzubeugen:

  • Zugriff auf Systemdateien: http://my.host/cgi-bin/php?/etc/passwd

    Die auf ein Fragezeichen (?) folgende Abfrageinformation in einer URL wird durch das CGI-Interface als Kommandozeilenargument an den Interpreter weitergereicht. In der Kommandozeile wird üblicherweise die im ersten Argument angegebene Datei von Interpretern geöffnet und ausgeführt.

    Beim Aufruf als CGI-Binary verweigert PHP die Interpretation der Kommandozeilenargumente.

  • Zugriff auf beliebige Web-Dokumente auf dem Server: http://my.host/cgi-bin/php/secret/doc.html

    Der Teil der URL-Pfadinformation nach dem Namen der PHP Binärdatei, /secret/doc.html wird im allgemeinen benutzt, um den Namen der Datei zu übergeben, die durch das CGI-Programm geöffnet und interpretiert werden soll. Normalerweise werden einige Einträge in der Konfigurationsdatei des Webservers benutzt (Apache: Action), um Aufrufe von Dokumenten wie http://my.host/secret/script.php3 an den PHP-Interpreter umzuleiten. Bei dieser Konfiguration überprüft der Webserver zuerst die Zugriffsrechte im Verzeichnis /secret und erstellt anschließend den umgeleiteten Aufruf http://my.host/cgi-bin/php/secret/script.php. Unglücklicherweise wird, wenn der Aufruf bereits in dieser Form geschieht, vom Webserver keine Zugriffsüberprüfung der Datei /secret/script.php, sondern lediglich der Datei /cgi-bin/php vorgenommen. So ist jeder Benutzer, der auf /cgi-bin/php zugreifen darf in der Lage, sich zu jedem geschützten Dokument auf dem Webserver Zugriff zu verschaffen.

    Bei PHP können beim Kompilieren die Konfigurationsoption --enable-force-cgi-redirect und zur Laufzeit die Konfigurationsdirektiven doc_root und user_dir benutzt werden, um diesen Angriff zu verhindern, falls der Verzeichnisbaum des Servers Verzeichnisse mit Zugriffsbeschränkungen beinhaltet. Ausführliche Informationen über die verschiedenen Kombinationen siehe weiter unten.

Fall 1: Nur öffentliche Dateien vorhanden

Wenn der Server keine Inhalte hat, die durch Passwort oder IP-basierte Zugriffskontrolle geschützt sind, werden diese Konfigurationsoptionen nicht benötigt. Wenn der Webserver keine Redirects erlaubt oder keine Möglichkeit hat, dem PHP-Binary mitzuteilen dass es sich um eine sicher umgeleitete Anfrage handelt, kann die Option --enable-force-cgi-redirect im configure-Script angegeben werden. Nichtsdestotrotz müssen Sie sicherstellen, dass Ihre PHP-Skripte nicht auf die eine oder andere Art des Aufrufs angewiesen sind, weder direkt durch http://my.host/cgi-bin/php/dir/script.php noch durch einen Redirect http://my.host/dir/script.php.

Beim Apache kann der Redirect durch den Gebrauch von AddHandler und Action konfiguriert werden (siehe unten).

Fall 2: --enable-force-cgi-redirect benutzen

Diese beim Kompilieren verwendete Option verhindert grundsätzlich den Aufruf von PHP mit einer URL wie http://my.host/cgi-bin/php/secretdir/script.php. Stattdessen parst PHP in diesem Modus nur dann, wenn der Aufruf durch einen korrekten Redirect des Webservers erfolgte.

Normalerweise wird der Redirect in der Apache-Konfiguration mit den folgenden Einträgen festgelegt:

Action php-script /cgi-bin/php
AddHandler php-script .php

Diese Option wurde nur mit dem Apache Webserver getestet und ist abhängig davon, wie Apache die nicht standardmäßige CGI-Umgebungsvariable REDIRECT_STATUS bei Redirect-Anfragen setzt. Sollte Ihr Webserver keine Möglichkeit unterstützen, zu übermitteln, ob es sich um einen direkte Aufruf oder einen Redirect handelt, können Sie diese Option nicht verwenden und müssen einen der anderen hier beschriebenen Wege gehen, die CGI-Version zu nutzen.

Fall 3: doc_root oder user_dir festlegen

Aktiven Inhalt, wie beispielsweise Skripts und ausführbare Dateien, in den Dokumentverzeichnissen des Webservers abzulegen, wird manchmal als unsichere Methode angesehen. Wenn, beispielsweise aufgrund von Konfigurationsfehlern, die Skripte nicht ausgeführt, sondern als reguläre HTML-Dokumente angezeigt werden kann dies ein Durchsickern von geistigem Eigentum und sicherheitsrelevanter Informationen (Passwörter!) zur Folge haben. Deshalb ziehen es viele Systemadministratoren vor, eine zweite Verzeichnisstruktur für Skripte einzurichten, auf die nur durch das PHP-CGI zugegriffen werden kann. Diese werden dann stets interpretiert und nicht angezeigt.

Auch wenn die Methode zum sichergestellten Verhindern einer Umleitung von Anfragen (wie im vorangegangenen Kapitel beschrieben) nicht verfügbar ist, ist es notwendig, ein doc_root für Skripte zusätzlich zum Web-Dokumentenverzeichnis einzurichten.

Sie können das PHP-Skriptverzeichnis durch die Direktive doc_root in der Konfigurationsdatei festlegen, oder Sie setzen die Umgebungsvariable PHP_DOCUMENT_ROOT. Wenn sie gesetzt ist, wird die CGI-Version von PHP den Namen der zu öffnenden Datei stets aus doc_root und der Pfadinformation der Anfrage zusammensetzen, sodass man sicher sein kann, dass außerhalb dieses Verzeichnisses keine Skripte ausgeführt werden (außer user_dir, siehe unten).

Eine weitere hier nützliche Option ist user_dir. Wenn das user_dir nicht gesetzt ist, hat nur doc_root Einfluss auf die zu öffnende Datei. Der Aufruf einer URL wie http://my.host/~user/doc.php hat nicht zum Ergebnis, dass eine Datei im Home-Verzeichnis des Benutzers geöffnet wird, sondern eine Datei namens ~user/doc.php unterhalb des doc_root (Ja, ein Verzeichnisname, der mit einer Tilde anfängt [~]).

Ist das user_dir beispielsweise auf public_php gesetzt, wird eine Anfrage wie http://my.host/~user/doc.php eine Datei namens doc.php im Verzeichnis public_php im Heimatverzeichnis des Benutzers öffnen. Wenn das Heimatverzeichnis des Benutzers /home/user ist, so ist die ausgeführte Datei /home/user/public_php/doc.php.

Die user_dir-Expansion erfolgt ohne Berücksichtigung der doc_root Einstellung. So können Zugriffe auf die Dokumenten- und Benutzerverzeichnisse separat gesteuert werden.

Fall 4: PHP-Parser außerhalb des Webverzeichnisbaums

Eine sehr sichere Sache ist es, das PHP-Parser-Binary irgendwo außerhalb des Webverzeichnisbaums zu platzieren, beispielsweise in /usr/local/bin. Der einzige Nachteil dieses Verfahrens ist, dass eine Zeile ähnlich der folgenden:

#!/usr/local/bin/php

als erste Zeile in jeder Datei, die PHP-Tags enthält, stehen muss. Außerdem muss die Datei ausführbar sein. Ansonsten ist sie genauso zu behandeln wie ein beliebiges CGI-Script in Perl oder sh oder anderen gebräuchlichen Scriptsprachen, die den #! shell-escape-Mechanismus nutzen, um sich selbst aufzurufen.

Damit PHP bei dieser Konfiguration die PATH_INFO- und PATH_TRANSLATED-Informationen korrekt auswertet, sollte der PHP-Parser mit der Option --enable-discard-path kompiliert werden.

Zurück | Zum Anfang | Nach vorne
Sicherheit | Nach oben | Apache-Modul


Apache-Modul

Wenn PHP als Apache-Modul eingesetzt wird, übernimmt es die Benutzerrechte des Apache (üblicherweise user "nobody"). Das hat verschiedene Auswirkungen auf Sicherheit und Authentifizierung, z.B.: Wenn Sie PHP zum Zugriff auf eine Datenbank benutzen, es sei denn diese Datenbank hat eine integrierte Zugriffskontrolle, müssen Sie dem Benutzer "nobody" Zugriffsrechte auf die Datenbank erteilen. Das heißt, dass ein böswilliges Skript auch Benutzerkennung und Passwort auf die Datenbank zugreifen, und sie verändern könnte. Es ist durchaus möglich, dass ein Web-Spider über die Webseite eines Datenbankadministrators stolpert, und alle Ihre Datenbanken löscht. Sie können sich dagegen mit Apache Authentifizierung schützen, oder ein eigenes Zugangsmodell unter Verwendung von LDAP, .htaccess Dateien, etc. entwerfen, und diesen Code als Teil Ihrer PHP Skripte einbinden.

Es wurde festgestellt, dass wenn einmal die Sicherheitsmaßnahmen so weit eingerichtet sind dass dem PHP User (in diesem Fall ein Apache User) nur mehr ein geringes Risiko bleibt, PHP daran gehindert wird, virenverseuchte Dateien in das Benutzerverzeichnis zu schreiben. Oder vielleicht wurde es auch daran gehindert, auf Datenbanken zuzugreifen oder diese gar zu verändern. In gleicher Weise wird auch davor abgehalten, "gute" oder "bösartige" Dateien zu schreiben, oder "gute" bzw. "bösartige" Datenbanktransaktionen durchzuführen.

Ein häufig gemachter Fehler in Punkto Sicherheit ist Apache Root-Rechte zu erteilen, oder die Möglichkeiten von Apache in einer anderen Weise auszuweiten.

Die Ausweitung der Benutzerrechte für Apache auf root ist sehr gefährlich, und kann dem gesamten System schaden, denn mit sudo, chroot, oder anderwärtig als root zu arbeiten sollte niemand anders als den Sicherheitsprofis überlassen werden.

Es gibt auch ein paar einfachere Lösungen. Mit open_basedir() können Sie kontrollieren, welche Verzeichnisse PHP benutzen darf oder nicht. Sie können auch einen Bereich nur für Apache einrichten, um alle webbasierten Aktivitäten auf nicht-Benutzer- bzw. nicht-System-Dateien einzuschränken.

Zurück | Zum Anfang | Nach vorne
CGI-Version | Nach oben | Dateisystem - Sicherheit


Dateisystem - Sicherheit

PHP ist von den in den meisten Serversystemen implementierten Sicherheitseinstellungen hinsichtlich der Berechtigungen auf Datei- und Verzeichnisebene abhängig. Dies verleiht Ihnen Kontrolle darüber, welche Dateien in dem Dateisystem gelesen werden dürfen. Vorsicht ist bei weltweit lesbaren Dateien geboten um sicherzustellen, dass diese sicher von allen Usern mit Zugriff auf dieses Dateisystem (nur) gelesen werden können.

Da PHP entwickelt wurde um Zugriffe auf das Dateisystem auf Benutzebene zu erlauben, ist es natürlich auch möglich ein PHP Skript zu schreiben das Ihnen erlaubt Systemdateien wie /etc/passwd zu lesen, Ethernetverbindungen zu modifizieren, enorme Druckaufträge zu senden, etc. Dies hat offensichtliche Implikationen, indem Sie sicherstellen müssen, dass alle von Ihnen zu lesenden bzw. zu schreibenden Dateien auch die richtigen sind.

Stellen Sie sich folgendes Skript vor, in dem ein User zum Ausdruck bringt, dass gerne eine Datei in seinem Heimatverzeichnis löschen möchte. Dies geht von einer Situation aus, in der ein PHP Web-Interface regelmäßig zum Dateimanagement verwendet wird, und der Apache User ist auch berechtigt, in seinem Heimatverzeichnis Dateien zu löschen.

Beispiel 15-1. Schlechte Variablenprüfung führt zu....

<?php
// Löschen einer Datei aus dem Heimatverzeichnis des Users
$username = $_POST['user_submitted_name'];
$homedir = "/home/$username";
$file_to_delete = "$userfile";
unlink ("$homedir/$userfile");
echo "$file_to_delete wurde gelöscht!";
?>
Da der Benutzername über ein User-Formular zu posten ist, kann jeder einen Benutzer- und Dateinamen von jemand anderen übertragen, und Dateien löschen. In diesem Fall empfiehlt es sich, eine andere Form der Authentifizierung zu verwenden. Stellen Sie sich vor was passieren würde, wenn die übertragenen Variablen "../etc/" und "passwd" beinhalten würden. Der Code würde dann effektiv lesen:

Beispiel 15-2. ... Ein Angriff auf das Dateisystem

<?php
// löscht eine Datei irgendwo auf der Festplatte, wo der
// Benutzer die nötigen Rechte besitzt. Wenn PHP root hat:
$username = "../etc/";
$homedir = "/home/../etc/";
$file_to_delete = "passwd";
unlink ("/home/../etc/passwd");
echo "/home/../etc/passwd wurde gelöscht!";
?>
Es gibt zwei wichtige Kriterien die Sie beachten sollten, um diese Dinge zu vermeiden:

  • Erteilen Sie dem PHP Web-user (Binärdatei) nur eingeschränkte Rechte.

  • Prüfen Sie alle übertragenen Variablen.

Hier ist ein verbessertes Skript:

Beispiel 15-3. Etwas sicherere Prüfung des Dateinamens

<?php
// löscht eine Datei von der Festplatte, auf die
// der PHP user Zugriff hat.
$username = $_SERVER['REMOTE_USER']; // verwendet eine
                                     // Authentifizierungsmethode
$homedir = "/home/$username";

$file_to_delete = basename("$userfile"); // den Pfad entfernen
unlink ($homedir/$file_to_delete);

$fp = fopen("/home/logging/filedelete.log","+a"); //logge die Löschung
$logstring = "$username $homedir $file_to_delete";
fputs ($fp, $logstring);
fclose($fp);

echo "$file_to_delete wurde gelöscht!";
?>
Auch dies nicht völlig makellos. Wenn Ihr Authentifizierungssystem Benutzern erlauben sollte, deren eigene Logins zu kreieren, und ein Benutzer wählt den Login "../etc", ist das System wieder aufgedeckt. Aus diesem Grund ziehen Sie es vielleicht vor, einen besseren Check zu schreiben:

Beispiel 15-4. Sicherere Dateinamensprüfung

<?php
$username = $HTTP_SERVER_VARS['REMOTE_USER']; // verwendet eine
                                              // Authentifizierungsmethode
$homedir = "/home/$username";

if (!ereg('^[^./][^/]*$', $userfile))
    die('bad filename'); // "DIE", gehen Sie nicht weiter

if (!ereg('^[^./][^/]*$', $username))
     die('bad username'); // "DIE", gehen Sie nicht weiter
//etc...
?>

Abhängig vom Betriebssystem gibt es eine große Anzahl Dateien mit der Sie sich befassen sollten, inklusive Einträge für Geräte (/dev/ oder com1), Konfigurationsdateien (/etc/ Dateien und die .ini Dateien), gut bekannte Verzeichnisse (/home/, My Documents), etc. Aus diesem Grund ist es gewöhnlich einfacher eine Vorgangsweise einzuführen, bei der außer den von Ihnen explizit erlaubten Dingen alles verboten ist.

Zurück | Zum Anfang | Nach vorne
Apache-Modul | Nach oben | Datenbank - Sicherheit


Datenbank - Sicherheit

Heutzutage sind Datenbanken die Hauptkomponenten jeder Webbasierten Applikation, aufgrund welcher Websites verschiedene dynamische Inhalte anbieten können. Nachdem heikle oder geheime Informationen in solch einer Datenbank gespeichert werden können, sollten Sie deren Schutz ernsthaft bedenken.

Um Informationen zu bekommen oder zu speichern, müssen Sie eine legitime Abfrage senden, das Ergebnis holen, und die Verbindung schließen. Heutzutage ist die allgemein verwendete Abfragesprache für solche Interaktionen die Structured Query Language (SQL). Sehen Sie, wie sich ein Angreifer an einer SQL Abfrage zu schaffen machen kann.

Sie werden merken, dass PHP Ihre Datenbank alleine nicht schützen kann. Die folgenden Abschnitte sind eine Einführung in die Grundlagen, wie man innerhalb von PHP Skripten auf Datenbanken zugreift und diese manipuliert.

Denken Sie an diese einfache Regel: tief gestaffelte Verteidigung. Je mehr Platz Sie den Maßnahmen zum Schutz Ihrer Datenbank geben, desto geringer ist die Wahrscheinlichkeit, dass ein Angreifer Erfolg hat, und gespeicherte Geheiminformationen aufdeckt oder missbraucht. Gutes Design des Datenbankschemas, und die Applikation wird mit Ihren größten Befürchtungen fertig.

Datenbanken designen

Der Erste Schritt liegt immer im Erstellen der Datenbank, außer Sie wollen eine bereits existierende Dritter verwenden. Ist eine Datenbank erstellt, ist sie einem Eigentümer zugewiesen, welcher das Kommando zum Erstellen ausgeführt hat. Gewöhnlich kann nur der Eigentümer (oder ein Superuser) alles mit den Objekten in dieser Datenbank machen, und um anderen Benutzern die Verwendung zu erlauben, müssen Rechte vergeben werden.

Applikationen sollten sich mit der Datenbank nie als deren Eigentümer oder als ein Superuser verbinden, da diese Benutzer jede gewollte Abfrage ausführen können, um z.B. das Schema zu modifizieren (z.B. Tabellen löschen) oder den gesamten Inhalt löschen.

Sie können verschiedene Datenbanknutzer mit sehr limitierten Rechten auf Datenbankobjekte für jeden Aspekt Ihrer Applikation anlegen. Nur die wirklich benötigten Rechte sollten gewährt werden, und vermeiden Sie, dass der gleiche Benutzer in verschiedenen Anwendungsfällen mit der Datenbank interagieren kann. Das heißt, dass Eindringlinge, welche unter Verwendung einer dieser Referenzen Zugriff auf Ihre Datenbank erlangt haben, nur so viele Änderungen durchführen können, wie es Ihre Applikation kann.

Implementieren Sie nicht alle Geschäftslogik in die Webapplikation (z.B. Ihr Skript), sondern tun Sie das im Datenbankschema unter Verwendung von Sichten, Triggern, oder Regeln. Wenn sich das System entwickelt, werden neu zu öffnende Ports zu der Datenbank vorgesehen, und Sie müssen die Logik in jedem Datenbank-Client neu implementieren. Überdies können Trigger verwendet werden, um transparent und automatisch mit Feldern umzugehen, welche beim debuggen Ihrer Applikation oder beim Zurückverfolgen von Transaktionen oft einen Einblick gewähren.

Zur Datenbank verbinden

Vielleicht wollen Sie die Verbindungen über SSL herstellen, um die Client/Server Kommunikation für eine erhöhte Sicherheit zu verschlüsseln, oder aber auch ssh verwenden, um die Netzwerkverbindung zwischen den Clients und dem Datenbankserver zu verschlüsseln. Ist eines davon realisiert, wird ein Monitoring Ihres Verkehrs und das Erlangen von Informationen zu harter Arbeit.

Verschlüsseltes Speichermodell

SSL/SSH schützt zwar die gerade auf dem Weg befindlichen Daten vom Client zum Server, jedoch nicht die dauernd in einer Datenbank gespeicherten Daten. SSL ist ein "auf-der-Leitung" Protokoll.

Hat ein Angreifer direkten Zugriff auf Ihre Datenbank (den Webserver umgehend), können die gespeicherten heiklen Daten aufgedeckt oder zweckentfremdet werden, außer wenn die Information von der Datenbank selbst geschützt ist. Die Daten zu verschlüsseln ist ein guter Weg, diese Gefahr zu mildern, doch bieten nur wenige Datenbanken diese Art der Verschlüsselung von Daten.

Der einfachste Weg, dieses Problem zu umgehen ist, erst einmal Ihr eigenes Verschlüsselungspaket zu erstellen, und dieses dann in Ihren PHP Skripten zu nutzen. PHP kann Ihnen in diesem Fall mit seinen verschiedenen Erweiterungen helfen, wie z.B. Mcrypt and Mhash, welche eine große Auswahl an Verschlüsselungsalgorhythmen abdecken. Das Skript verschlüsselt die Daten vor dem Speichern, und entschlüsselt diese wieder beim Erhalt. Siehe die Verweise für weitere Beispiele, wie Verschlüsselung arbeitet.

Im Fall von wirklich versteckten Daten, wenn deren unverfälschte Repräsentation nicht nötig ist (z.B. keine Anzeige), ist hashing ebenfalls überlegenswert. Das bekannte Beispiel für das Hashing ist das Speichern des MD5 hash eines Passwortes in einer Datenbank, anstatt des Passwortes selbst. Siehe auch crypt() und md5().

Beispiel 15-5. Verwenden eines hashed Passwortfeldes

// Speichern des Passwort hash
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

// Afragen, ob der User das richtige Passwort übermittelt hat
$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

if (pg_numrows($result) > 0) {
    echo "Welcome, $username!";
}
else {
    echo "Authentication failed for $username.";
}

SQL Injection

Viele Entwickler sind sich nicht bewusst, wie man sich an SQL Abfragen zu schaffen machen kann und nehmen an, dass eine SQL Abfrage ein vertrauenswürdiges Kommando ist. Das heißt, dass SQL Abfragen Zugriffskontrollen hinters Licht führen, und dadurch Standard Authentifizierungs- und Authorisationschecks umgehen können, und manchmal können SQL Abfragen sogar Zugriff zu Kommandos auf Betriebssystemebene erlauben.

Direkt SQL Command Injection ist eine Technik, wo ein Angreifer SQL Kommandos erstellt oder existierende verändert, um versteckte Daten sichtbar zu machen, wertvolle Daten zu überschreiben, oder sogar gefährliche Kommandos auf Systemebene des Datenbank-Hosts auszuführen. Dies wird durch die Applikation erreicht, welche den Input des Benutzers mit statischen Parametern kombiniert, um eine SQL Abfrage zu erstellen. Die folgenden Beispiele basieren - leider - auf wahren Begebenheiten.

Dank dem Mangel an Input Validierungen, und dem Verbinden zum Datenbankserver als ein Superuser oder jemand der Benutzer anlegen kann, kann ein Angreifer einen Superuser in Ihrer Datenbank anlegen.

Beispiel 15-6. Die Ergebnisliste in mehrere Seiten aufsplitten ... und Superuser anlegen (PostgreSQL and MySQL)

$offset = argv[0]; // Vorsicht, keine Validierung des Input !
$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
// mit PostgreSQL
$result = pg_exec($conn, $query);
// mit MySQL
$result = mysql_query($query);
Normale Benutzer klicken auf die 'nächste' bzw. 'vorige' Links, wo $offset in der URL enthalten ist. Das Skript erwartet, dass die ankommende $offset einen Dezimalwert enthält. Ganz gleich, jemand versucht einzubrechen, indem er das folgende in einer urlencode()'d Form an die URL anhängt

// Im Fall von PostgreSQL
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--

// Im Fall von MySQL
0;
UPDATE user SET Password=PASSWORD('crack') WHERE user='root';
FLUSH PRIVILEGES;

Wenn es passiert ist, würde ihm das Skript einen Zugriff als Superuser präsentieren. Beachten Sie, dass 0; ein gültiges Offset zur ursprünglichen Abfrage liefert, und sie beendet.

Anmerkung: Es ist eine übliche Technik, den SQL Parser mittels dem Kommentarzeichen in SQL -- zu zwingen, den Rest der vom Entwickler geschriebenen Abfrage zu ignorieren.

Ein gangbarer Weg um Passwörter zu finden ist, Ihre Seiten mit den Suchergebnissen hinters Licht zu führen. Der Angreifer braucht nur zu probieren, ob irgendeine übertragene Variable, die in dem SQL Statement verwendet wird, nicht richtig gehandhabt wird. Diese Filter können gewöhnlich in einer vorausgehenden Form gesetzt werden, indem WHERE, ORDER BY, LIMIT und OFFSET Klauseln in SELECT Statements umgebaut werden. Wenn Ihre Datenbank das UNION Konstrukt unterstützt, kann der Angreifer versuchen, eine komplette Abfrage an das Original anzuhängen, um Paßwörter aus einer willkürlichen Tabelle aufzulisten. Die Verwendung von verschlüsselten Passwortfeldern wird ausdrücklich empfohlen.

Beispiel 15-7. Artikel auflisten ... und ein paar Passwörter (irgendein Datenbankserver)

$query  = "SELECT id, name, inserted, size FROM products
                  WHERE size = '$size'
                  ORDER BY $order LIMIT $limit, $offset;";
$result = odbc_exec($conn, $query);
Der statische Teil der Abfrage kann mit einem anderen SELECT Statement kombiniert werden, welches alle Passwörter preisgibt

'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--

Wenn diese Abfrage (mit dem ' und --) einer der in $query verwendeten Variablen zugewiesen würde, wäre das "Abfragebiest" erwacht.

SQL UPDATEs sind ebenfalls ein Anlass, Ihre Datenbank anzugreifen. Diese Abfragen sind auch durch das Ändern und Anhängen einer komplett neuen Abfrage gefährdet. Aber der Angreifer könnte auch mit der SET Klausel herumspielen. In diesem Fall muss eine Schemainformation vorhanden sein, um die Abfrage erfolgreich manipulieren zu können. Diese kann durch Untersuchen der Variablennamen im Formular, oder simpel mittels brute force gesammelt werden. Es gibt nicht so viele Namenskonventionen für Felder, welche Passwörter oder Benutzernamen speichern.

Beispiel 15-8. Vom Zurücksetzen eines Passwortes ... zum Erlangen von mehr Rechten (irgendein Datenbankserver)

$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
Aber ein böswilliger Benutzer übermittelt den Wert ' or uid like'%admin%'; -- zu $uid, um das Administrator Passwort zu ändern, oder setzt einfach $pwd auf "hehehe', admin='yes', trusted=100 " (mit dem hinteren Leerzeichen), um mehr Rechte zu erhalten. Dann wird die Abfrage verdreht:

// $uid == ' or uid like'%admin%'; --
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

// $pwd == "hehehe', admin='yes', trusted=100 "
$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;"

Ein furchterregendes Beispiel, wie der Zugriff auf Kommandos auf Betriebssystemebene bei manchen Datenbankservern erfolgen kann.

Beispiel 15-9. Angriff auf das Betriebssystem des Datenbank Hosts (MSSQL Server)

$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);
Wenn ein Angreifer den Wert a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- zu $prod überträgt, wird $query zu:

$query  = "SELECT * FROM products
                    WHERE id LIKE '%a%'
                    exec master..xp_cmdshell 'net user test testpass /ADD'--";
$result = mssql_query($query);

Der MSSQL Server führt die SQL Statements in dem Batch aus, inklusive einem Kommando zum Anlegen eines neuen Benutzers in der Datenbank Accounts. Würde diese Applikation als sa und der MSSQLSERVER Service mit genügend Rechten laufen, hätte der Angreifer nun ein Konto, mit welchem er Zugriff auf diese Maschine hätte.

Anmerkung: Manche der obigen Beispiele sind an einen spezifischen Datenbankserver gebunden. Das heißt jedoch nicht, dass nicht ein ähnlicher Angriff auf andere Produkte möglich wäre. Ihr Datenbankserver könnte auf andere Weise genauso verwundbar sein.

Techniken zur Vermeidung

Sie könnten sich nun darauf berufen, dass der Angreifer in den meisten Beispielen ein Stück Information über das Datenbankschema haben muss. Sie haben recht, aber Sie wissen nie, wann und wie es genommen werden kann, und wenn es passiert, kann Ihre Datenbank entblößt werden. Wenn Sie ein Open Source, oder öffentlich verfügbares Paket zur Handhabung von Datenbanken verwenden, welches vielleicht zu einem Content Management System oder Forum gehört, können Eindringlinge leicht eine Kopie eines Stücks Ihres Codes erstellen. Es kann auch ein Sicherheitsrisiko sein, wenn es sich um ein schlecht designtes Paket handelt.

Diese Angriffe basieren hauptsächlich auf dem Ausnutzen des Codes, welcher ohne Bedenken auf die Sicherheit geschrieben wurde. Vertrauen Sie nie auf irgendeine Art von Input, speziell wenn er von der Clientseite kommt, selbst wenn er von einer Auswahlbox, einem versteckten Eingabefeld, oder einem Cookie kommt. Das erste Beispiel zeigt, dass solch eine untadelige Abfrage ein Disaster anrichten kann.

  • Stellen Sie nie als Superuser oder Owner einer Datenbank eine Verbindung zur Datenbank her. Verwenden Sie immer speziell angelegte Benutzer mit sehr limitierten Rechten.

  • Prüfen Sie, ob der gegebene Input dem erwarteten Datentyp entspricht. PHP bietet eine große Auswahl an Funktionen zum Validieren des Input, von den einfachsten unter Variablenfunktionen und Character Type Functions (z.B. is_numeric() bzw. ctype_digit()), bis hin zu den Perl kompatiblen Regulären Ausdrücken.

  • Wenn die Applikation numerischen Input erwartet, erwägen Sie die Prüfung der Daten mit is_numeric(), oder die Änderung des Typs mit settype(), oder verwenden Sie die numerische Repräsentation mittels sprintf().

    Beispiel 15-10. Ein sicherer Weg, eine Abfrage zu erstellen

    settype($offset, 'integer');
    $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

    // Beachten Sie %d im Formatstring, %s zu verwenden wäre sinnlos
    $query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                     $offset);

  • Escapen Sie jeden nicht numerischen Input, welcher zur Datenbank weitergereicht werden soll mit addslashes() oder addcslashes(). Siehe auch das erste Beispiel. Wie dieses Beispiel zeigt, sind in den statischen Teil der Abfrage eingebrachten Escapes nicht genug, und können leicht gehacked werden.

  • Geben Sie keinerlei datenbankspezifische Informationen aus, speziell über das Schema, egal wie (auf ehrliche oder unehrliche Weise). Siehe auch Fehlerbehandlung und Error Handling and Logging Functions.

  • Sie können stored procedures und vorher definierte Cursor verwenden, um den Datenzugriff zu abstrahieren, sodass Benutzer nicht direkt auf Tabellen oder Views zugreifen, aber diese Lösung hat andere Auswirkungen.

Abgesehen davon profitieren Sie von einer Protokollierung der Abfragen entweder in Ihrem Skript, oder durch die Datenbank selbst, wenn es hilft. Klar, die Protokollierung kann nicht irgendeinen schädlichen Versuch verhindern, aber es kann helfen herauszufinden, welche Applikation umgangen wurde. Das Log ist durch die in ihm enthaltene Information nützlich, und je mehr Details es enthält, desto besser ist es im Allgemeinen.

Zurück | Zum Anfang | Nach vorne
Dateisystem - Sicherheit | Nach oben | Fehlerbehandlung


Fehlerbehandlung

PHP Security hat zwei Seiten der Fehlerbehandlung. Eine ist für die Erhöhung der Sicherheit vorteilhaft, die andere ist schädlich.

Eine Standard-Angriffstaktik beinhaltet die Erstellung eines Profils des anzugreifenden Systems, indem die aufgrund der Einspeisung von unzulässigen Daten zurückgegebenen Fehlermeldungen anhand deren Art und des Kontextes ausgewertet werden. Wenn z.B. ein Angreifer Informationen über eine auf einem eingesendeten Formular basierte Seite zusammengetragen hat, kann er versuchen, Variablen zu überschreiben bzw. zu modifizieren:

Beispiel 15-11. Variablen mit einer eigenen HTML Seite angreifen

<form method="post" action="attacktarget?username=badfoo&password=badfoo">
<input type="hidden" name="username" value="badfoo">
<input type="hidden" name="password" value="badfoo">
</form>

Die normalerweise zurückgegebenen PHP Fehler können für den Entwickler hilfreich sein, wenn dieser ein Skript debuggen möchte, Hinweise auf eine nicht korrekt arbeitende Funktion oder Datei, oder die PHP Datei und die Zeilennummer des aufgetretenen Fehlers anzeigen lassen möchte. Das sind alles Informationen, die ausgenutzt werden können. Es ist für einen PHP Entwickler nicht unüblich, show_source(), highlight_string(), oder highlight_file() zur Fehlersuche zu verwenden, jedoch kann dies in einem lebenden System auch versteckte Variablen, ungeprüfte Syntax und andere gefährliche Informationen aufdecken. Speziell gefährlich ist es, Code von bekannten Quellen mit integrierten Debugging Handlern auszuführen, oder weit verbreitete Debuggingtechniken zu verwenden. Wenn ein Angreifer die von Ihnen benutzte generelle Technik herausfindet, kann er versuchen, mit Brute-Force Ihre Seite zu knacken, indem er verschiedene allgemein gebräuchliche Debug Strings sendet:

Beispiel 15-12. Ausnutzen von gebräuchlichen Debugging Variablen

<form method="post" action="attacktarget?errors=Y&amp;showerrors=1"&debug=1">
<input type="hidden" name="errors" value="Y">
<input type="hidden" name="showerrors" value="1">
<input type="hidden" name="debug" value="1">
</form>

Ungeachtet der Fehlerbehandlungsmethode führt die Möglichkeit ein System nach Fehlermeldungen sondieren dazu, dass einem Angreifer mehr Informationen geboten werden.

Zum Beispiel weist schon alleine der Stil einer Fehlermeldung darauf hin, dass auf einem System PHP läuft. Wenn der Angreifer auf eine .html Seite kommt und untersuchen möchte welches System im Hintergrund läuft (um nach bekannten Systemschwächen zu suchen), könnte dieser mittels der Einspeisung von falschen Daten herausfinden, dass ein System mit PHP aufgebaut ist.

Ein Fehler einer Funktion gibt Aufschluss darüber, ob ein System eine bestimmte Datenbankapplikation benutzt, oder gibt Hinweise darauf, wie eine Webseite programmiert bzw. entworfen wurde. Dies erlaubt eine tiefere Überprüfung von offenen Datenbank-Ports, oder die Suche nach spezifischen Bugs bzw. Schwächen einer Webseite. Mit der Einspeisung von falschen Daten kann ein Angreifer z.B. die Reihenfolge der Authentifizierung in einem Skript bestimmen (anhand der Zeilennummern in den Fehlermeldungen), wie auch durch "Herumstochern" Missbrauchsmöglichkeiten an verschiedenen Stellen im Script herausfinden.

Eine Fehlermeldung des Dateisystems oder eines generellen PHP-Errors welche Rechte der Server hat, wie auch die Struktur und Organisation der Dateien auf dem Webserver. Vom Entwickler geschriebene Fehlermeldungen können das Problem verschlimmern, bis hin zum Preisgeben von zuvor "versteckten" Informationen.

Es gibt drei bedeutende Lösungen zu diesem Thema. Die erste ist, alle Funktionen zu überprüfen und zu versuchen, die Menge an Fehlermeldungen zu ersetzen. Die zweite ist, die Ausgabe von Fehlermeldungen am laufenden Code generell zu deaktivieren. Die dritte ist, sich unter Verwendung der PHP Funktionen zur Fehlerbehandlung seinen eigenen Error-handler zu schreiben. Abhängig von Ihrer Sicherheitspolitik könnte jede der drei Lösungen für Sie geeignet sein.

Ein Weg, diesen Punkt vorzeitig zu behandeln ist, das PHP eigene error_reporting() zu benutzen, um Ihren Code sicherer zu gestalten und möglicherweise gefährliche Nutzungen von Variablen zu entdecken. Wenn Sie Ihren Code noch vor dem Einsatz mit E_ALL testen, können Bereiche entdecken, in denen Ihre Variablen eventuell für Verseuchung oder andere Modifikationen offen sind. Sind Sie bereit zum Einsatz, können Sie Ihren Code mit E_NONE vor Sondierungen schützen.

Beispiel 15-13. Gefährliche Variablen mit E_ALL finden

<?php
if ($username) {  // Vor Verwendung nicht initialisiert oder geprüft
    $good_login = 1;
}
if ($good_login == 1) { // Wenn der obige Test fehlschlägt, ist vor der
                        // Verwendung nicht initialisiert oder geprüft
    fpassthru ("/highly/sensitive/data/index.html");
}
?>

Zurück | Zum Anfang | Nach vorne
Datenbank - Sicherheit | Nach oben | Verwendung von Register Globals


Verwendung von Register Globals

Ein Feature von PHP zur Erhöhung der Sicherheit ist die Konfiguration von PHP mit register_globals = off. Mit Deaktivierung der Möglichkeit, irgendeine vom Benutzer übertragenen Variable in den PHP Code zu injizieren, können Sie die Anzahl "vergifteter" Variablen reduzieren, welche ein potentieller Angreifer zufügen könnte. Dieser benötigt mehr Zeit, um sich Übermittlungen auszudenken, und Ihre internen Variablen sind effektiv von den übergebenen Benutzervariablen isoliert.

Während dies den benötigten Aufwand mit PHP zu arbeiten leicht erhöht ist dargelegt, dass die Vorteile gegenüber dem Aufwand klar überwiegen.

Beispiel 15-14. Mit register_globals=on arbeiten

<?php
if ($username) {  // kann vom User mit get/post/cookies übermittelt werden
    $good_login = 1;
}

if ($good_login == 1) { // kann vom User mit get/post/cookies übermittelt werden
    fpassthru ("/highly/sensitive/data/index.html");
}
?>

Beispiel 15-15. Mit register_globals = off arbeiten

<?php
if($_COOKIE['username']){
    // kann nur von einem Cookie kommen
    $good_login = 1;
    fpassthru ("/highly/sensitive/data/index.html");
}
?>
Dies weise genutzt ist es auch möglich, präventive Messungen durchzuführen, um bei versuchten Vorstößen zu warnen. Wenn Sie im Voraus wissen, woher eine Variable kommen soll, können Sie prüfen, ob die übermittelten Daten nicht einen unpassenden Weg genommen haben. Obwohl dies nicht garantiert, dass Daten nicht nur ausgedacht sind, erfordert es von einem Angreifer, auch den richtigen Weg zu finden.

Beispiel 15-16. Entdecken einfacher Manipulationen von Variablen

<?php
if ($_COOKIE['username'] &&
    !$_POST['username'] &&
    !$_GET['username'] ) {
    // Durchführen anderer Checks, ob der Benutzername gültig ist...
    $good_login = 1;
    fpassthru ("/highly/sensitive/data/index.html");
} else {
   mail("admin@example.com", "Possible breakin attempt", $_SERVER['REMOTE_ADDR']);
   echo "Security violation, admin has been alerted.";
   exit;
}
?>
Natürlich bedeutet ein einfaches Deaktivieren von register_globals nicht, dass Ihr Code nun automatisch sicher ist. Jeder Teil mit Daten sollte auch auf andere Arten geprüft werden.

Zurück | Zum Anfang | Nach vorne
Fehlerbehandlung | Nach oben | Vom Nutzer übermittelte Daten


Vom Nutzer übermittelte Daten

In vielen PHP Programmen liegt die größte Schwäche nicht an der Sprache selbst, sondern bloß an Code, der nicht mit dem nötigen Augenmerk auf die Sicherheit geschrieben wurde. Deshalb sollten Sie sich immer Zeit nehmen, die Implikationen eines gegebenen Codestücks zu bedenken, um einen möglichen Schaden durch eine eventuell unerwartete übergebene Variable festzustellen.

Beispiel 15-17. Gefährliche Verwendung von Variablen

<?php
// lösche eine Datei aus dem Benutzer-Verzeichnis...
// oder vielleicht dem eines anderen Benutzers?
unlink ($evil_var);

// Schreibe die Log-Information von deren Zugriff...
// oder vielleicht einen /etc/passwd Eintrag?
fputs ($fp, $evil_var);

// Führe etwas triviales aus... oder rm -rf *?
system ($evil_var);
exec ($evil_var);

?>
Sie sollten Ihren Code immer sorgfältig kontrollieren, um eine sorgfältige Prüfung irgendwelcher von einem Web-Browser übertragenen Variablen sicherzustellen, und sich selbst folgende Fragen stellen:

  • Wird sich dieses Skript nur auf die vorgesehenen Dateien auswirken?

  • Kann auf ungewöhnliche oder unerwünschte Daten reagiert werden?

  • Kann dieses Skript auf nicht vorgesehene Art genutzt werden?

  • Kann dies in Verbindung mit anderen Skripten in einer negativen Art benutzt werden?

  • Werden alle Transaktionen ausreichend geloggt?

Wenn Sie sich diese Fragen anstatt danach schon während dem Schreiben des Skriptes stellen, ersparen Sie sich das unangenehme Umschreiben, wenn eine Erhöhung der Sicherheit erforderlich wird. Mit dieser Art zu denken werden Sie die Sicherheit des Systems zwar nicht garantieren, aber sie können helfen, sie zu erhöhen.

Sie könnten auch Überlegungen anstellen, ob Sie nicht register_globals, magic_quotes, oder andere bequeme Einstellungen abschalten, welche Sie in Punkto Gültigkeit, Herkunft, oder Inhalt einer gegebenen Variable durcheinanderbringen könnten. Mit PHP im error_reporting(E_ALL) Modus zu arbeiten kann auch helfen, Sie vor Variablen zu warnen, welche benutzt werden, bevor sie geprüft oder initialisiert wurden (so können Sie verhindern, dass mit ungewöhnlichen Daten gearbeitet wird).

Zurück | Zum Anfang | Nach vorne
Verwendung von Register Globals | Nach oben | Verstecken von PHP


Verstecken von PHP

Generell ist Sicherheit durch Unklarheit eine der schwächsten Formen von Sicherheit. Aber in manchen Fällen ist ein klein Wenig mehr an extra Sicherheit wünschenswert.

Ein paar einfache Techniken helfen PHP zu Verstecken, um einen nach Schwächen in Ihrem System suchenden Angreifer möglicherweise langsamer zu machen. Wenn Sie in Ihrer php.ini expose_php = off setzen, reduzieren Sie damit die ihm zur Verfügung stehenden Informationen.

Eine andere Taktik ist, den Webserver wie z.B. Apache entweder mittels einer .htaccess Direktive oder in der Apache Konfigurationsdatei selbst so konfigurieren, dass dieser verschiedene Dateitypen durch PHP parst. So können Sie irreführende Dateierweiterungen verwenden:

Beispiel 15-18. PHP als andere Sprache ausgeben

# Lasse PHP Code wie andere Arten von Code aussehen
AddType application/x-httpd-php .asp .py .pl
Oder komplett unklar machen:

Beispiel 15-19. Verwenden von unbekannten Typen für PHP Dateierweiterungen

# Lasse PHP Code wie unbekannte Typen aussehen
AddType application/x-httpd-php .bop .foo .133t
Oder verstecken Sie ihn als html Code, was einen leichten Performanceverlust bedeutet, da alle html Dateien durch die PHP Engine geparst werden:

Beispiel 15-20. Verwenden von html Typen für PHP Dateierweiterungen

# Lasse PHP code wie html aussehen
AddType application/x-httpd-php .htm .html
Um dies effektiv arbeiten zu lassen, müssen Sie Ihre PHP Dateien nach den obigen Dateierweiterungen umbenennen. Während dies eine Form der Sicherheit durch Verhüllung ist, ist es ein kleines präventives Maß mit ein paar Nachteilen.

Zurück | Zum Anfang | Nach vorne
Vom Nutzer übermittelte Daten | Nach oben | Aktuell bleiben


Aktuell bleiben

PHP wird, wie jedes andere große System auch, ständig geprüft und weiterentwickelt. Jede neue Version wird oft sowohl große, als auch kleine Änderungen enthalten, welche die Gesamtsicherheit und Stabilität des Systems betreffenden Punkte (z.B. Sicherheit, Konfiguration) verbessern bzw. vorhandene Mängel beheben.

Wie auch bei anderen Scriptsprachen und Programmen auf Systemebene ist der beste Ansatz ein oftmaliges Update, und sich laufend über die letzten Versionen und deren Änderungen zu informieren.

Zurück | Zum Anfang | Nach vorne
Verstecken von PHP | Nach oben | Features


Features

PHP Handbuch
Zurück Nach vorne

IV. Features

Inhaltsverzeichnis
16. HTTP-Authentifizierung mit PHP
17. Cookies
18. Steuerung von Dateiuploads
19. Zugriff auf entfernte Dateien
20. Verbindungssteuerung
21. Persistente Datenbankverbindungen
22. Safe Mode
23. PHP auf der Kommandozeile

Zurück | Zum Anfang | Nach vorne
Aktuell bleiben |  | HTTP-Authentifizierung mit PHP


HTTP-Authentifizierung mit PHP

PHP Handbuch
Zurück Nach vorne

Kapitel 16. HTTP-Authentifizierung mit PHP

Die HTTP-Authentifizierung durch PHP ist nur verfügbar, wenn PHP als Apache-Modul läuft und funktioniert daher nicht mit der CGI-Version. In einem PHP-Skript für ein Apache-Modul kann man die Funktion header() benutzen, um die Nachricht "Authentifizierung notwendig" an den Client-Browser zu senden, damit dieser ein Fenster zur Eingabe von Benutzername/Passwort öffnet. Hat der Benutzer diese eingegeben, wird die URL des PHP-Scripts mit den Variablen $PHP_AUTH_USER, $PHP_AUTH_PW und $PHP_AUTH_TYPE, die den jeweiligen Benutzernamen, das Passwort und den Typ der Identifizierung enthalten, erneut aufgerufen. Momentan wird nur das Authentifizierungsmodell "basic" unterstützt. Näheres hierzu bei der header() Funktion.

Anmerkung zur PHP Version: Autoglobals, wie $_SERVER, sind seit der PHP Version 4.1.0 verfügbar. $HTTP_SERVER_VARS seit PHP 3.

Ein Auszug aus einem Skript, das die Clientauthentifizierung auf einer Seite erzwingt, würde so aussehen:

Beispiel 16-1. HTTP-Authentifizierung

<?php
  if (!isset($_SERVER['PHP_AUTH_USER'])) {
       Header("WWW-Authenticate: Basic realm=\"My Realm\"");
       Header("HTTP/1.0 401 Unauthorized");
       echo "Text to send if user hits Cancel button\n";
       exit;
        } else {
    echo "Hello {$_SERVER['PHP_AUTH_USER']}";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
  }
?>

Hinweis: Achten Sie bei den Header-Zeilen für maximale Kompatibilität auf die richtige Schreibweise! Das Schlüsselwort "Basic" sollte genau so geschrieben werden, der Realm-String muss in doppelte (nicht einfache) Anführungszeichen eingeschlossen sein, und in der "HTTP/1.0 401"-Zeile darf nur genau ein Leerzeichen vor dem 401-Code stehen.

Anstatt $_SERVER['PHP_AUTH_USER'] und $_SERVER['PHP_AUTH_PW'] einfach nur auszugeben, werden Sie den Benutzernamen und das Passwort auf Gültigkeit überprüfen wollen. Dies kann durch die Abfrage einer Datenbank oder das Einlesen einer Textdatei geschehen.

Vorsicht bei einigen Internet Explorer-Versionen - sie scheinen sehr wählerisch zu sein, was die Reihenfolge der Header angeht. Abhilfe schafft hier das Senden des WWW-Authenticate Headers vor dem HTTP/1.0 401.

Um zu unterbinden, dass ein Skript das Passwort einer durch einen traditionellen externen Mechanismus geschützten Seite ausliest, werden die PHP_AUTH Variablen nicht gesetzt, wenn eine externe Authentifizierung für diese bestimmte Seite aktiviert ist. In diesem Fall kann die $_SERVER['REMOTE_USER'] Variable benutzt werden, um den Benutzer durch die externe Zugriffskontrolle zu identifizieren.

Konfigurationshinweis: PHP prüft das Vorhandensein einer AuthType Apache-Direktive, um zu entscheiden, ob eine externe Authentifizierung aktiv ist. Vermeiden Sie deshalb diese Konfigurationsdirektive im Kontext der PHP-Authentifizierung (anderenfalls wird jeder Authentifizierungsversuch misslingen).

Zu beachten ist, dass obenstehendes keinesfalls jemanden, der die Kontrolle über eine nichtgeschützte URL hat, davon abhalten kann, Passwörter von geschützten URLs auf dem gleichen Rechner auszulesen.

Sowohl Netscape als auch der Internet Explorer löschen den lokalen Authentifizierungscache des Browserfensters, wenn der Server eine 401-Meldung zurückgibt. Dies kann benutzt werden, um einen Benutzer "auszuloggen" und eine erneute Eingabe des Benutzernamens/Passworts zu erzwingen. Manchmal wird dieses Verhalten für das automatische Ausloggen nach Ablauf einer bestimmten Zeitspanne oder für einen Logout-Button genutzt.

Beispiel 16-2. HTTP-Authentifizierung, mit erneuter Anforderung von Name/Passwort

<?php
  function authenticate()
  {
     Header("WWW-Authenticate: Basic realm=\"Test Authentication System\"");
     Header("HTTP/1.0 401 Unauthorized");
     echo "You must enter a valid login ID and password to access this resource\n";
     exit;
  }

  if (!isset($_SERVER['PHP_AUTH_USER']) || ($SeenBefore == 1 && ! strcmp( $OldAuth, $_SERVER['PHP_AUTH_USER']))) {
    authenticate();
  } else {
      echo "Welcome: {$_SERVER['PHP_AUTH_USER']}<br>";
      echo "Old: $OldAuth";
      echo "<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\">\n";
      echo "<input type=\"hidden\" name=\"SeenBefore\" value=\"1\">\n";
      echo "<input type=\"hidden\" name=\"OldAuth\" value=\"{$_SERVER['PHP_AUTH_USER']}\">\n";
      echo "<input type=\"submit\" value=\"Re Authenticate\">\n";
      echo "</form>\n";
  }
?>

Dieses Verhalten wird vom Authentifizierungsstandard HTTP Basic nicht gefordert, daher sollte man sich nie darauf verlassen. Tests mit Lynx haben gezeigt, dass Lynx die Authentifizierungsinformationen bei Erhalt einer 401-Meldung nicht löscht. Ein Klick auf den Zurück- Button und danach auf Vorwärts wird die angeforderte Adresse öffnen (und zwar so lange, bis die Identifizierung der Benutzer geändert wird).

Weiterhin muss beachtet werden, dass dies unter dem Microsoft IIS mit der CGI-Version von PHP aufgrund einer Einschränkung des IIS nicht funktioniert.

Zurück | Zum Anfang | Nach vorne
Features | Nach oben | Cookies


Cookies

PHP Handbuch
Zurück Nach vorne

Kapitel 17. Cookies

PHP unterstützt HTTP-Cookies. Hierbei handelt es sich um einen Mechanismus, um Informationen beim Client zu speichern und somit wiederkehrende Besucher zu identifizieren oder ihren Weg innerhalb des Angebotes nachzuvollziehen. Cookies können durch die Funktion setcookie() gesetzt werden. Sie sind Bestandteil des HTTP-Headers, was bedeutet, dass die Funktion setcookie() aufgerufen werden muss, bevor irgendeine Ausgabe an den Browser erfolgt. Dies ist die gleiche Einschränkung, der auch die Funktion header() unterliegt. Sie können die Funktionen zur Ausgabesteuerung benutzen, um die Ausgaben des Skriptes zu verzögern, bis entschieden ist, ob Cookies gesetzt bzw. Header gesendet werden sollen oder nicht.

Vom Client gesendete Cookies werden - abhängig von den Konfigurationsvariablen register_globals und variables_order - automatisch in eine Variable geschrieben, wie es auch bei mittels GET oder POST gesendeten Daten geschieht. Sollen einem Cookie mehrere Werte zugewiesen werden, so muss dem Cookienamen lediglich [] angefügt werden.

Seit PHP 4.1.0 werden alle vom Client gesendeten Cookies in dem auto-globalen Array $_COOKIE gespeichert. In älteren PHP-Versionen stehen diese Daten in $HTTP_COOKIE_VARS gespeichert, sofern die Konfigurationsvariable track_vars gesetzt ist.

Weitere Informationen sowie Anmerkungen zu Browser-Bugs finden Sie im Abschnitt setcookie().

Zurück | Zum Anfang | Nach vorne
HTTP-Authentifizierung mit PHP | Nach oben | Steuerung von Dateiuploads


Steuerung von Dateiuploads

PHP Handbuch
Zurück Nach vorne

Kapitel 18. Steuerung von Dateiuploads

Inhaltsverzeichnis
Dateiuploads mit POST
Fehlermeldungen erklärt
Häufige Probleme
Upload mehrerer Dateien
PUT-Unterstützung

Dateiuploads mit POST

PHP kann Dateiuploads mit jedem RFC-1867 konformen Browser (dazu gehören der Netscape Navigator 3 oder höher, Microsoft Internet Explorer 3 mit einem Patch von Microsoft oder höher ohne Patch) durchführen. Es können sowohl Text- als auch Binärdaten hochgeladen werden. Mit PHP´s Authentifizierungs- und Dateifunktionen besteht volle Kontrolle darüber, wer Dateien hochladen darf und was mit den Dateien geschehen soll, wenn der Upload beendet ist.

Diesbezügliche Konfigurationshinweise: Siehe auch die Anweisungen file_uploads, upload_max_filesize, upload_tmp_dir und post_max_size in der php.ini

PHP unterstützt auch Dateiuploads nach der PUT-Methode, die beispielsweise vom Netscape Composer und den W3C Amaya Clients benutzt wird. Siehe dazu PUT-Unterstützung für nähere Informationen.

Eine Maske für den Dateiupload kann erstellt werden, indem man ein Formular entwirft, das ungefähr so aussieht:

Beispiel 18-1. Formular für den Dateiupload

<form enctype="multipart/form-data" action="_URL_" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
Die _URL_ sollte auf eine PHP-Datei verweisen. Das versteckte Feld MAX_FILE_SIZE muss dem Dateieingabefeld vorangestellt werden und den Wert der maximal akzeptierten Dateigröße in Bytes enthalten.

Warnung

Die maximale Dateigröße MAX_FILE_SIZE ist für den Browser nur ein Hinweis und es ist leicht, diese Grenze zu umgehen. Also verlassen Sie sich nicht darauf, dass der Browser Ihrem Wunsch auch nachkommt! Wie auch immer, die PHP-Einstellungen für die maximale Dateigröße können nicht getäuscht werden.

Die für hochgeladene Dateien definierten Variablen sind je nach PHP Version und Konfiguration verschieden. Die Autoglobale $_FILES existiert seit PHP 4.1.0 und das Array $HTTP_POST_FILES seit PHP 4.0.0. Diese Arrays enthalten alle Informationen über Ihre hochgeladenen Dateien. Die Verwendung von $_FILES wird bevorzugt. Ist die PHP Anweisung register_globals auf on, stehen auch entsprechende Variablennamen zur Verfügung. Seit PHP 4.2.0 steht register_globals standardmäßig auf off.

Im Folgenden sind die Inhalte von $_FILES aus unserem Beispielskript aufgelistet. Beachten Sie, dass dies auf der Annahme basiert, dass der Name des Dateiuploads wie in dem obigen Beispielskript userfile ist.

$_FILES['userfile']['name']

Der ursprüngliche Dateiname auf der Client Maschine.

$_FILES['userfile']['type']

Der Mime-Type der Datei, falls der Browser diese Information zur Verfügung gestellt hat. Ein Beispiel wäre "image/gif".

$_FILES['userfile']['size']

Die Größe der hochgeladenen Datei in Bytes.

$_FILES['userfile']['tmp_name']

Der temporäre Dateiname, unter dem die hochgeladene Datei auf dem Server gespeichert wurde.

$_FILES['userfile']['error']

Der Fehlercode im Zusammenhang mit dem hochladen der Datei. ['error'] wurde in PHP 4.2.0 eingeführt.

Anmerkung: In den Versionen vor PHP 4.1.0 war dies $HTTP_POST_FILES, und ist keine 'Autoglobale' Variable wie $_FILES. PHP 3 unterstützt $HTTP_POST_FILES nicht.

Ist register_globals in der php.ini aktiviert, stehen zusätzliche Variablen zur Verfügung. Zum Beispiel entspricht $userfile_name $_FILES['userfile']['name'], $userfile_type entspricht $_FILES['userfile']['type'], etc. Beachten Sie, dass register_globals standardmäßig deaktiviert ist, jedoch wird empfohlen, sich nicht darauf zu verlassen.

Standardmäßig werden Dateien in dem vorgegebenen temporären Verzeichnis des Servers gespeichert, außer es wurde mittels upload_tmp_dir in der php.ini ein anderer Ort konfiguriert. Das Standardverzeichnis des Servers kann durch das Setzen der Umgebungsvariablen TMPDIR in der Umgebung, in der PHP ausgeführt wird, geändert werden. Das Setzen mittels der Funktion putenv() innerhalb eines Skriptes ist nicht möglich. Mittels dieser Umgebungsvariable kann auch sichergestellt werden, dass auch andere Operationen an hochgeladenen Dateien arbeiten können.

Beispiel 18-2. Dateiuploads prüfen

Weitere Informationen finden Sie auch in den Beschreibungen für is_uploaded_file() und move_uploaded_file(). Das folgende Beispiel verarbeitet einen von einem HTML-Formular kommenden Dateiupload.

<?php
// In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden.
// In PHP kleiner als 4.0.3 verwenden Sie copy() und is_uploaded_file() anstatt von
// move_uploaded_file()

$uploaddir = '/var/www/uploads/';

print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
    print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
    print_r($_FILES);
} else {
    print "Possible file upload attack!  Here's some debugging info:\n";
    print_r($_FILES);
}

?>

Das die hochgeladene Datei empfangende Skript sollte die notwendige Logik zur Entscheidung enthalten, was mit der hochgeladenen Datei geschehen soll. Sie können zum Beispiel $_FILES['userfile']['size'] benutzen, um zu kleine bzw. zu große Dateien wegzuwerfen. Sie können $_FILES['userfile']['type'] nutzen, um Dateien eines unerwünschten Typs wegzuwerfen. Seit PHP 4.2.0 können Sie Ihre Logik auch mittels $_FILES['userfile']['error'] anhand der Fehlercodes planen. Egal welche Logik Sie verwenden, Sie sollten die Datei in dem temporären Verzeichnis entweder löschen, oder an einen anderen Ort verschieben.

Wurde die Datei in dem temporären Verzeichnis nicht verschoben oder umbenannt, wird sie am Ende des Requests gelöscht.

Zurück | Zum Anfang | Nach vorne
Cookies | Nach oben | Fehlermeldungen erklärt


Fehlermeldungen erklärt

Seit PHP 4.2.0 gibt PHP zusammen mit dem Datei-Array entsprechende Fehlermeldungen. Die Fehlermeldung befindet sich im Segment ['error'] des Datei-Arrays, welches während des Hochladens der Datei erstellt wird. In anderen Worten kann der Fehler in $_FILES['userfile']['error'] gefunden werden.

UPLOAD_ERR_OK

Wert: 0; Es liegt kein Fehler vor, die Datei wurde erfolgreich hochgeladen.

UPLOAD_ERR_INI_SIZE

Wert: 1; Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.

UPLOAD_ERR_FORM_SIZE

Wert: 2; Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.

UPLOAD_ERR_PARTIAL

Wert: 3; Die Datei wurde nur teilweise hochgeladen.

UPLOAD_ERR_NO_FILE

Wert: 4; Es wurde keine Datei hochgeladen.

Anmerkung: Dies wurden Konstanten in PHP 4.3.0.

Zurück | Zum Anfang | Nach vorne
Steuerung von Dateiuploads | Nach oben | Häufige Probleme


Häufige Probleme

Der mit MAX_FILE_SIZE eingestellte Wert kann nicht größer sein als der des ini-Parameters upload_max_filesize. Der Standardwert ist 2 Megabyte.

Ist memory limit aktiviert, könnte eine Erhöhung von memory_limit nötig sein. Stellen Sie sicher, dass der Wert von memory_limit groß genug ist.

Wenn max_execution_time zu kurz konfiguriert ist, könnte das Skript den Wert überschritten haben. Stellen Sie sicher, dass der Wert von max_execution_time groß genug ist.

Ist post_max_size zu klein konfiguriert, können große Dateien nicht hochgeladen werden. Stellen Sie sicher, dass der Wert von post_max_size groß genug ist.

Nicht zu prüfen an welcher Datei Sie arbeiten kann bedeuten, dass Benutzer auf sensible Informationen in anderen Verzeichnissen Zugriff erhalten.

Beachten Sie, dass CERN httpd in dem vom Client erhaltenen Content-Type Mime Header alles nach dem ersten Whitespace wegzuschneiden scheint. Solange dies der Fall ist, unterstützt CERN httpd keine Dateiuploads.

Aufgrund der vielen möglichen Arten der Darstellung von Verzeichnissen können wir nicht garantieren, dass Dateien mit exotischen Namen (wie z.B. mit enthaltenen Leerzeichen) auch wirklich richtig verarbeitet werden.

Zurück | Zum Anfang | Nach vorne
Fehlermeldungen erklärt | Nach oben | Upload mehrerer Dateien


Upload mehrerer Dateien

Mehrere Dateien können hochgeladen werden, indem Sie verschiedene Namen name für input verwenden.

Es ist ebenfalls möglich, mehrere Dateien simultan hochzuladen, und die Informationen automatisch in Arrays zu erhalten. Um dies zu tun, verwenden Sie in dem HTML Formular die gleiche Array-Sende-Syntax wie bei Auswahllisten mit Mehrfachauswahl und Checkboxen:

Anmerkung: Die Unterstützung für den Upload von mehreren Dateien wurde in PHP 3.0.10 hinzugefügt.

Beispiel 18-3. Upload mehrerer Dateien

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Send these files:<br>
  <input name="userfile[]" type="file"><br>
  <input name="userfile[]" type="file"><br>
  <input type="submit" value="Send files">
</form>

Wenn das obige Formular übermittelt ist, werden die Arrays $_FILES['userfile'], $_FILES['userfile']['name'] und $_FILES['userfile']['size'] initialisiert (wie auch in $HTTP_POST_FILES vor PHP Version 4.1.0.). Ist register_globals aktiviert, werden auch globale Variablen für die hochgeladenen Dateien initialisiert. Jedes von ihnen ist ein numerisch indiziertes Array mit den entsprechenden Werten für die hochgeladenen Dateien.

Nehmen wir zum Beispiel an, dass die Dateinamen /home/test/review.html und /home/test/xwp.out übermittelt wurden. In diesem Fall würde $_FILES['userfile']['name'][0] review.html enthalten, und $_FILES['userfile']['name'][1] hätte den Wert xwp.out. Genauso würde $_FILES['userfile']['size'][0] die Dateigröße von review.html enthalten, usw.

$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] und $_FILES['userfile']['type'][0] sind ebenfalls gesetzt.

Zurück | Zum Anfang | Nach vorne
Häufige Probleme | Nach oben | PUT-Unterstützung


PUT-Unterstützung

Die Unterstützung der PUT-Methode hat sich zwischen PHP 3 und PHP 4 geändert. In PHP 4 sollten Sie den standard Input-Datenstrom benutzen, um die Inhalte eines HTTP PUT zu lesen.

Beispiel 18-4. Speicher von HTTP PUT Dateien mit PHP 4

<?php
/* PUT Daten kommen in den stdin Stream */
$putdata = fopen("php://stdin","r");

/* Eine Datei zum Schreiben öffnen */
$fp = fopen("myputfile.ext","w");

/* Jeweils 1kB Daten lesen und
   in die Datei schreiben */
while ($data = fread($putdata,1024))
  fwrite($fp,$data);

/* Die Streams schließen */
fclose($fp);
fclose($putdata);
?>

Anmerkung: Sämtliche untenstehende Dokumentation betrifft nur PHP 3.

PHP unterstützt die HTTP PUT-Methode, wie sie von Clients wie Netscape Composer oder W3C Amaya benutzt wird. PUT-Anfragen sind weitaus unkomplizierter als ein Dateiupload und sehen etwa so aus:

PUT /path/filename.html HTTP/1.1

Das würde normalerweise bedeuten, dass der entfernte Client den folgenden Inhalt als /path/filename.html im Webverzeichnisbaum speichert. Natürlich ist es keine gute Idee, dass PHP oder Apache jeden Benutzer beliebige Dateien überschreiben lassen. Um eine solche Anfrage bearbeiten zu können, muss der Webserver erst angewiesen werden, ein bestimmtes PHP-Skript für die Abarbeitung aufzurufen. Im Apache wird dies durch die Script - Direktive festgelegt. Sie kann fast überall in der Apache-Konfigurationsdatei platziert werden, gebräuchlich ist die Platzierung innerhalb einer <Directory>- oder <Virtualhost>- Sektion. Eine Zeile wie die folgende erledigt dies:

Script PUT /put.php

Diese Zeile legt fest, dass Apache alle PUT-Anfragen für URIs, die dem Kontext entsprechen, in dem diese Zeile steht, an das put.php Skript weiterleitet. Dies setzt natürlich voraus, dass PHP aktiv und für die .php-Dateierweiterung registriert ist.

Innerhalb der put.php-Datei könnte folgendes stehen:

<?php copy($PHP_UPLOADED_FILE_NAME,$DOCUMENT_ROOT.$REQUEST_URI); ?>

Dies kopiert die Datei an den vom Client angegebenen Ort. Möglicherweise sollen vor dem Kopieren der Datei noch Überprüfungen und/oder Benutzerauthentifizierung stattfinden. Wenn PHP eine PUT-Anfrage erhält, wird die Datei genau wie bei der POST-Methode in einem temporären Verzeichnis gespeichert. Nach dem Abarbeiten der Anfrage wird die temporäre Datei gelöscht. Also muss das PHP-Skript, das die PUT-Anfrage bearbeitet, die Datei irgendwohin kopieren. Der Name der temporären Datei findet sich in der Variablen $PHP_PUT_FILENAME; der Name der zu speichernden Datei steht in $REQUEST_URI (kann bei Nicht-Apache Webservern variieren). Dieser Zieldateiname wird vom Client festgelegt. Man kann den Client auch umgehen; beispielsweise könnten alle hochgeladenen Dateien in ein spezielles Upload-Directory kopiert werden.

Zurück | Zum Anfang | Nach vorne
Upload mehrerer Dateien | Nach oben | Zugriff auf entfernte Dateien


Zugriff auf entfernte Dateien

PHP Handbuch
Zurück Nach vorne

Kapitel 19. Zugriff auf entfernte Dateien

Wenn die Unterstützung für den "URL fopen wrapper" bei der Konfiguration von PHP vorhanden ist (welche standardmäßig eingestellt ist, es sei denn, die Option --disable-url-fopen-wrapper wurde bei der Installation verwendet (Versionen bis 4.0.3) oder der Parameter allow_url_fopen in der php.ini deaktiviert wurde (neuere Versionen), können HTTP und FTP URLs bei den meisten Funktionen verwendet werden, die einen Dateinamen als Parameter benötigen, inklusive require() und include() Anweisungen.

Anmerkung: remote files funktionieren nicht mit include() und require() Anweisungen unter Windows.

Beispielsweise kann eine Datei auf einem anderen Webserver geöffnet und verarbeitet werden. Diese Daten können zur Abfrage einer Datenbank benutzt werden oder passend zum Rest der eigenen Website ausgegeben werden.

Beispiel 19-1. Den Titel einer entfernten Seite auslesen

<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
    echo "<p>Datei konnte nicht geöffnet werden.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* Funktioniert nur, wenn Titel und title-Tags in einer Zeile stehen */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>

Auch eine Datei auf einem FTP-Server kann geschrieben werden, solange man sich über einen Benutzer mit entsprechenden Zugriffsrechten verbindet und die Datei noch nicht existiert. Um sich mit einem anderen Benutzer als 'anonymous' zu verbinden muß ein username (und möglichst ein Passwort) innerhalb der URL angegeben werden, wie z.B. 'ftp://user:password@ftp.example.com/pfad/zur/datei'. (Die selbe Syntax kann verwendet werden, um auf Daten via HTTP zuzugreifen, wenn diese eine Basic Authentication benötigen.)

Beispiel 19-2. Daten auf einen entfernten Server speichern

<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Datei konnte zum schreiben nicht geöffnet werden.\n";
    exit;
}
/* Schreibe die Daten hier hin. */
fputs ($file, "$HTTP_USER_AGENT\n");
fclose ($file);
?>

Anmerkung: Obiges Beispiel könnte dazu verleiten, dieses Verfahren zu benutzen, um in ein 'remote log-file' zu schreiben. Wie oben erwähnt kann man jedoch ausschließlich neue Dateien anlegen, wenn man URL fopen() wrapper benutzt. Für 'distributed logging' sollte man sich die Funktion syslog() anschauen.

Zurück | Zum Anfang | Nach vorne
PUT-Unterstützung | Nach oben | Verbindungssteuerung


Verbindungssteuerung

PHP Handbuch
Zurück Nach vorne

Kapitel 20. Verbindungssteuerung

Anmerkung: Folgendes trifft auf die Versionen 3.0.7 und später zu.

PHP erhält intern einen Verbindungsstatus. Dieser kann drei Zustände annehmen:

  • 0 - NORMAL

  • 1 - ABORTED

  • 2 - TIMEOUT

Wenn ein PHP-Skript aktiv ist, ist der Status üblicherweise NORMAL. Sollte der Client-Rechner die Verbindung beenden, wird der Status auf ABORTED gesetzt. Ein clientseitiges Beenden der Verbindung wird für gewöhnlich veranlaßt, wenn der Benutzer den STOP-Button seines Browsers drückt. Wenn das eingestellte Zeitlimit (siehe set_time_limit()) überschritten wird, wird der Status TIMEOUT gesetzt.

Sie können entscheiden, ob der Verbindungsabbruch seitens des Clients den Abbruch des Skriptes zur Folge haben soll. Manchmal ist es sinnvoll, Skripte sauber zu beenden, auch wenn kein Browser mehr zur Verfügung steht, der die Ausgabe empfängt. Die Abarbeitung eines Skriptes wird standardmäßig abgebrochen, wenn der Client die Verbindung beendet. Dieses Verhalten kann sowohl durch die Option ignore_user_abort in der Konfigurationsdatei php3.ini, durch die entsprechende Option php3_ignore_user_abort in der Apache-Konfigurationsdatei als auch durch ignore_user_abort() beeinflußt werden. Wenn PHP nicht angewiesen wird, einen Verbindungsabbruch durch den Benutzer zu ignorieren und die Verbindung dann durch den Benutzer beendet wird, wird die Abarbeitung des Scriptes abgebrochen. Die einzige Ausnahme ist, wenn durch die Funktion register_shutdown_function() eine Shutdown-Funktion angegeben wird, die bei clientseitigem Abbruch ausgeführt wird. Wenn dann der Benutzer den STOP-Button seines Browsers drückt, wird PHP bei der nächsten Ausgabe des Skriptes feststellen, dass die Verbindung abgebrochen wurde und die Shutdown-Funktion aufrufen. Diese Shutdown-Funktion wird auch aufgerufen, wenn das Skript auf normalem Wege beendet wird, daher sollte man, wenn man für den Fall eines Benutzerabbruchs etwas anderes vorgesehen hat, die Funktion connection_aborted() verwenden. Sie gibt TRUE zurück, wenn die Verbindung abgebrochen wurde.

Ein Skript kann ebenfalls durch den eingebauten Script-Timer beendet werden. Der Standard-Timeout beträgt 30 Sekunden. Er kann durch die Option max_execution_time in der php3.ini, durch den entsprechenden Eintrag php3_max_execution_time in der Apache-Konfigurationsdatei oder durch die Funktion set_time_limit() beeinflußt werden. Bei Zeitüberschreitung wird das Skript beendet und, genau wie im obigen Fall des Verbindungsabbruchs, eine registrierte Shutdown-Funktion ausgeführt. Um zu überprüfen, ob es sich um einen Abbruch aufgrund von Zeitüberschreitung handelt, kann die Funktion connection_timeout() benutzt werden. Sie gibt TRUE zurück, wenn es sich um eine Zeitüberschreitung handelt.

Zu bemerken ist, dass der ABORTED und der TIMEOUT-Status gleichzeitig auftreten können. Dies ist möglich, wenn PHP angewiesen wird, Benutzerabbrüche zu ignorieren. PHP wird feststellen, dass der Benutzer die Verbindung abgebrochen hat, das Skript allerdings läuft weiter. Sollte es dann das Zeitlimit erreichen, wird es abgebrochen und eine Shutdown-Funktion, wenn definiert, wird aufgerufen. Zu diesem Zeitpunkt kann man feststellen, dass connection_timeout() und connection_aborted() TRUE zurückgeben. Diese beiden Statusmöglichkeiten können auch durch einen Aufruf der Funktion connection_status() abgefragt werden. Sie liefert ein Bitfeld des aktiven Status. Wenn beispielsweise TIMEOUT und ABORTED aktiv sind, wird 3 zurückgegeben.

Zurück | Zum Anfang | Nach vorne
Zugriff auf entfernte Dateien | Nach oben | Persistente Datenbankverbindungen


Persistente Datenbankverbindungen

PHP Handbuch
Zurück Nach vorne

Kapitel 21. Persistente Datenbankverbindungen

Persistente Verbindungen sind SQL-Verbindungen, die nach Abarbeitung des Skriptes nicht geschlossen werden. Wenn eine persistente Verbindung angefordert wird, prüft PHP zuerst, ob bereits eine identische persistente Verbindung (die vielleicht vorher offen geblieben ist) existiert und benutzt sie in diesem Fall. Sollte keine Verbindung existieren, wird eine hergestellt. Eine 'identische' Verbindung ist eine Verbindung, die zu dem gleichen Host mit dem gleichen Usernamen und Passwort hergestellt wurde.

Anmerkung: Auch andere Erweiterungen bieten persistente Verbindungen, wie z.B. IMAP extension.

Wer nicht durchgängig mit der Art und Weise vertraut ist, wie Webserver arbeiten und die Last verteilen, könnte missverstehen, wofür persistente Verbindungen gedacht sind. Im Besonderen bieten sie keine Möglichkeit, 'Benutzersitzungen' über die gleiche SQL-Verbindung zu öffnen und keine Möglichkeit, eine Transaktion effizient aufzubauen, und sie können auch viele andere Dinge nicht. Um absolute Klarheit zu schaffen: Persistente Verbindungen bieten keine Funktionalität, die nicht auch von nicht-persistenten Verbindungen bereitgestellt wird.

Warum?

Das hat mit der Arbeitsweise von Webservern zu tun. Es gibt drei Möglichkeiten, wie ein Webserver PHP zur Generierung von Webseiten einsetzen kann.

Die erste Methode ist, PHP als CGI-'Wrapper' zu benutzen. Wenn diese Methode eingesetzt wird, wird für jede Anfrage nach einer PHP-Seite vom Webserver eine Instanz des PHP- Interpreters gestartet und anschließend wieder beendet. Durch die Beendigung des Interpreters nach abgeschlossener Anfrage werden alle Ressourcen, auf die zugegriffen wurde (wie beispielsweise eine Verbindung zu einem SQL- Datenbankserver) wieder geschlossen. In diesem Fall erreicht man nichts, wenn man persistente Verbindungen benutzt - sie sind eben nicht beständig.

Die zweite und populärste Methode ist der Einsatz von PHP als Modul in einem Multiprozess-Webserver, was momentan nur auf den Apache zutrifft. Typischerweise hat ein Multiprozess-Webserver einen Prozess (den 'Eltern' Prozess), der einen Satz weiterer Prozesse (die 'Kinder') koordiniert, welche die eigentliche Arbeit des Bereitstellens der Seiten übernehmen. Jede Anfrage, die von einem Client erfolgt, wird an einen untergeordneten Prozess, der noch keine andere Anfrage bearbeitet, weitergereicht. Das bedeutet, dass eine zweite Anfrage des gleichen Clients an den Server unter Umständen von einem anderen untergeordneten Prozess als die erste Anfrage bearbeitet wird. In diesem Fall sorgt eine persistente Verbindung dafür, dass jeder untergeordnete Prozess sich nur einmal mit dem SQL-Server verbinden muss, wenn eine solche benötigt wird. Benötigt dann eine weitere Seite die Verbindung mit dem SQL-Server, kann auf die zurückgegriffen werden, die der untergeordnete Prozess vorher hergestellt hat.

Die letzte Methode ist, PHP als Plug-in für einen Multithread- Webserver zu benutzen. Derzeit bietet PHP 4 Unterstützung für ISAPI, WSAPI und NSAPI (unter Windows), wodurch die Nutzung von PHP mit Multithread-Serven wie Netscape Fast Track (iPlanet), Microsoft Internet Information Server (IIS) und O'Reilly's WebSite Pro ermöglicht wird. Das Verhalten entspricht im wesentlichen dem oben beschriebenen Multiprozess-Modell. Beachten Sie, dass PHP 3 keine Unterstützung für SAPI bietet.

Wozu dienen persistente Verbindungen, wenn sie keine zusätzliche Funktionalität bieten?

Die Antwort ist außerordentlich einfach: Effizienz. Persistente Verbindungen sind nützlich, wenn der Aufwand für das Herstellen einer Verbindung zu einem SQL-Server hoch ist. Ob dies der Fall ist oder nicht, hängt von vielen Faktoren ab - zum Beispiel, um welche Datenbank es sich handelt, ob sie auf dem gleichen Rechner wie der Webserver läuft oder welche Last die SQL-Maschine zu bewältigen hat usw. Grundsätzlich gilt, dass, wenn viele Verbindungen hergestellt werden müssen, persistente Verbindungen außerordentlich hilfreich sind. Sie veranlassen den untergeordneten Prozess, sich während seiner gesamten Lebensdauer lediglich einmal mit dem SQL-Server zu verbinden, anstatt bei jedem Aufruf einer Seite, die eine Verbindung benötigt. Das heißt, dass jeder untergeordnete Prozess, der eine persistente Verbindung öffnet, seine eigene dauerhafte Verbindung zum Server hat. Bei 20 untergeordneten Prozessen, die ein Skript ausführen, das eine persistente Verbindung zum SQL-Server herstellt, hat man beispielsweise 20 verschiedene Verbindungen zum SQL-Server - eine für jeden untergeordneten Prozess.

Beachten Sie jedoch, dass dies auch ein paar Nachteile haben kann, wenn Sie eine Datenbank mit limitierten Verbindungen benutzen, welche durch persistente Verbindungen überschritten werden. Wenn Ihre Datenbank ein Limit von 16 gleichzeitigen Verbindungen hat, und aufgrund einer stark ausgelasteten Server-Session 17 Kind-Prozesse versuchen, eine Verbindung herzustellen, wird es einem nicht gelingen. Sollten in Ihren Skripten Fehler bestehen, welche das Schließen der Verbindungen nicht erlauben (wie z.B. Endlosschleifen), kann das eine Datenbank mit mit nur 16 Verbindungen sehr schnell überschwemmen. Konsultieren Sie die Dokumentation Ihrer Datenbank bezüglich der Behandlung von aufgegebenen Verbindungen oder Verbindungen im Leerlauf.

Warnung

Sie sollten sich zur Vorsicht noch ein paar Gedanken machen, wenn Sie persistente Verbindungen benutzen. Einer ist, wenn Sie über eine persistente Verbindung Tabellen sperren und das Skript diese Sperre aus welchem Grund auch immer nicht mehr aufheben kann, nachfolgende Skripte, welche die selbe Verbindung benutzen, blockieren und den Neustart von entweder dem Webserver oder dem Datenbankserver verlangen. Ein weiterer ist, dass wenn Sie Transaktionen benutzen, ein Transaktionsblock zu dem nächsten die Verbindung nutzenden Skript übertragen wird, wenn die Ausführung des Skriptes vor dem Transaktionsblock gestoppt wird. In jedem Fall können Sie register_shutdown_function() benutzen, um eine einfache Funktion zu registrieren, welche Ihre Tabellen wieder entsperrt, oder Ihre Transaktionen zurückstellt. Besser ist es, wenn Sie dieses Problem gänzlich vermeiden, indem keine persistenten Verbindungen in Skripten benutzen, welche Tabellen sperren oder Transaktionen verwenden (Sie können sie immer noch anderswo benutzen).

Eine wichtige Zusammenfassung. Persistente Verbindungen wurden entwickelt, um eins-zu-eins Abbildungen auf reguläre Verbindungen zu haben. Das heißt, dass man immer in der Lage sein sollte, die persistenten Verbindungen durch nicht-persistente zu ersetzten, ohne dass dies den Skriptablauf verändert. Es kann (und wird vermutlich auch) die Effizienz des Skriptes beeinflussen, aber nicht dessen Verhalten.

Siehe auch fbsql_pconnect(),
ibase_pconnect(), ifx_pconnect(),
imap_popen(), ingres_pconnect(),
msql_pconnect(), mssql_pconnect(),
mysql_pconnect(), ociplogon(),
odbc_pconnect(), ora_plogon(),
pfsockopen(), pg_pconnect() und
sybase_pconnect().

Zurück | Zum Anfang | Nach vorne
Verbindungssteuerung | Nach oben | Safe Mode


Safe Mode

PHP Handbuch
Zurück Nach vorne

Kapitel 22. Safe Mode

Inhaltsverzeichnis
Funktionen, die durch Safe Mode deaktiviert oder eingeschränkt werden

Safe Mode ist der Versuch, Sicherheitsprobleme bei gemeinsam genutzten Servern zu lösen. Bezogen auf die Systemarchitektur, ist es der falsche Ansatz, diese Probleme innerhalb der PHP Schicht lösen zu wollen. Da es auf Ebene des Webservers bzw. des Betriebssystems keine praktischen Alternativen gibt, wird Safe Mode nunmehr von vielen Leuten, vor allem von Providern, eingesetzt.

Es existieren folgende Direktiven um Safe Mode zu konfigurieren:
safe_mode = Off
safe_mode_gid = 0
safe_mode_include_dir =
safe_mode_exec_dir =
open_basedir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =

Wenn safe_mode aktiviert ist, überprüft PHP, ob der Eigentümer des laufenden Skriptes dem Eigentümer der Datei entspricht, an der mit Hilfe der Dateifunktionen gearbeitet werden soll. Beispiel:
-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
Bei der Ausführung dieses Skriptes
<?php
readfile('/etc/passwd');
?>
erscheint bei aktiviertem Safe Mode folgende Warnung:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

Wenn anstelle von safe_mode ein open_basedir Verzeichnis angegeben wurde, können Dateioperationen nur noch unterhalb dieses Verzeichnisses vorgenommen werden. Beispiel (Apache httpd.conf):
<Directory /docroot>
php_admin_value open_basedir /docroot
</Directory>
Wenn das Skript script.php mit der open_basedir Einstellung ausgeführt wird, erscheint folgende Warnung:
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

Darüberhinaus können einzelne Funktionen deaktiviert werden. Würde man folgenden Eintrag in der php.ini vornehmen:
disable_functions readfile,system
Würde diese Warnung erscheinen:
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Funktionen, die durch Safe Mode deaktiviert oder eingeschränkt werden

Dies ist eine Auflistung der Funktionen, die durch Safe Mode eingeschränkt werden. Diese Liste ist möglicherweise unvollständig und fehlerhaft!

Tabelle 22-1. Durch Safe Mode eingeschränkte Funktionen

Funktion | Einschränkungen
dbmopen() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
dbase_open() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
filepro() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
filepro_rowcount() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
filepro_retrieve() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
ifx_*() | sql_safe_mode restrictions, (!= Safe Mode)
ingres_*() | sql_safe_mode restrictions, (!= Safe Mode)
mysql_*() | sql_safe_mode restrictions, (!= Safe Mode)
pg_loimport() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
posix_mkfifo() | Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst.
putenv() | Führt die safe_mode_protected_env_vars und safe_mode_allowed_env_vars ini-directiven aus. Siehe auch Dokumentation zu putenv()
move_uploaded_file() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
chdir() | Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst.
dl() | Diese Funktion ist bei Verwendung von Safe Mode deaktiviert.
backtick operator | Diese Funktion ist bei Verwendung von Safe Mode deaktiviert.
shell_exec() (funktional gleichwertig zu den Backtick-Operatoren) | Diese Funktion ist bei Verwendung von Safe Mode deaktiviert.
exec() | Ausführbare Dateien können nur innerhalb des durch safe_mode_exec_dir angegebenen Verzeichnisses ausgeführt werden. Aus praktischen Gründen ist es momentan nicht erlaubt, .. im Pfad zu den ausführbaren Datein anzugeben.
system() | Ausführbare Dateien können nur innerhalb des durch safe_mode_exec_dir angegebenen Verzeichnisses ausgeführt werden. Aus praktischen Gründen ist es momentan nicht erlaubt, .. im Pfad zu den ausführbaren Datein anzugeben.
passthru() | Ausführbare Dateien können nur innerhalb des durch safe_mode_exec_dir angegebenen Verzeichnisses ausgeführt werden. Aus praktischen Gründen ist es momentan nicht erlaubt, .. im Pfad zu den ausführbaren Datein anzugeben.
popen() | Ausführbare Dateien können nur innerhalb des durch safe_mode_exec_dir angegebenen Verzeichnisses ausgeführt werden. Aus praktischen Gründen ist es momentan nicht erlaubt, .. im Pfad zu den ausführbaren Datein anzugeben.
mkdir() | Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst.
rmdir() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
rename() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst. Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst.
unlink() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst. Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst.
copy() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst. Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst. (on source and target)
chgrp() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
chown() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.
chmod() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst. In addition, you cannot set the SUID, SGID and sticky bits
touch() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst. Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst.
symlink() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst. Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst. (note: only the target is checked)
link() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst. Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst. (note: only the target is checked)
getallheaders() | Header die mit 'authorization' (unabhängig von Groß- oder Kleinschreibung) beginnen, werden bei Verwendung von Safe Mode nicht zurückgegeben. Achtung: Dies ist fehlerhaft bei der AOL-Server Implementation der Funktion getallheaders()!
highlight_file(), show_source() | Überprüft ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst. Überprüft ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst. (Hinweis: gilt nur ab Version PHP 4.2.1)
Jede Funktion, die php4/main/fopen_wrappers.c benutzt... | ??

Zurück | Zum Anfang | Nach vorne
Persistente Datenbankverbindungen | Nach oben | PHP auf der Kommandozeile


PHP auf der Kommandozeile

PHP Handbuch
Zurück Nach vorne

Kapitel 23. PHP auf der Kommandozeile

Seit Version 4.3.0 unterstützt PHP einen neuen Typ SAPI (Server Application Programming Interface) namens CLI (Command Line Interface). Wie der Name schon verrät, liegt das Hauptaugemerk dieses SAPI-Typs auf der Entwicklung von Anwendungen für die Kommandozeile (und auch den Desktop) mit PHP. Es gibt etliche Unterschiede zwischen dem CLI SAPI und anderen SAPIs, die in diesem Kapitel beschrieben werden. Es ist erwähnenswert, dass CLI und CGI verschiedene SAPIs sind, obwohl sie viele Verhaltensweisen teilen.

Das CLI SAPI wurde zum ersten Mal mit PHP 4.2.0 eingeführt, war aber noch experimentell und musste explizit mit --enable-cli beim ./configure-Aufruf eingeschaltet werden. Seit PHP 4.3.0 ist das CLI SAPI nicht länger experimentell und die Option --enable-cli standardmäßig auf on gestellt. Sie können --disable-cli benutzen, um es auszuschalten.

Von PHP 4.3.0 an werden Namen, Pfade und Vorhandensein der CLI/CGI-Binaries voneinander abweichen, abhängig davon, wie PHP auf Ihrem System installiert ist. Standarmäßig werden nach dem Aufruf von make sowohl CGI als auch CLI kompiliert und als sapi/cgi/php beziehungsweise sapi/cli/php in Ihrem PHP-Quellcodeverzeichnis hinterlegt. Sie werden bemerken, dass beide php benannt sind. Was während make install passiert, hängt von Ihrem configure-Kommando ab. Wenn ein Modul-SAPI während configure gewählt wird, wie etwa apxs oder wenn die --disable-cgi-Option benutzt wird, wird das CLI während make install nach {PREFIX}/bin/php kopiert, ansonsten wird das CGI dort hinterlegt. Also wird, wenn beispielsweise --with--apxs in Ihrem configure-Kommando auftaucht, das CLI während make install nach {PREFIX}/bin/php kopiert. Wenn Sie die Installation des CGI-Binaries außer Kraft setzen wollen, benutzen Sie make install-cli nach make install. Alternativ können Sie --disable-cgi in Ihrem configure-Kommando angeben.

Anmerkung: Weil sowohl --enable-cli als auch --enable-cgi standardmäßig eingeschaltet sind, muss --enable-cli in Ihrem configure-Kommando nicht zwingend bedeuten, dass das CLI während make install nach {PREFIX}/bin/php kopiert wird.

Die Windows-Pakete zwischen PHP 4.2.0 und PHP 4.2.3 enthielten das CLI als php-cli.exe, beheimatet im selben Verzeichnis wie das CGI php.exe. Beginnend mit PHP 4.3.0 enthält das Windows-Paket das CLI als php.exe in einem eigenen Verzeichnis namens cli, also cli/php.exe. Beginnend mit PHP 5 wird das CLI im Hauptordner al php.exe ausgeliefert. Die CGI-Version heisst php-cgi.exe.

Seit PHP gibt es eine neue Datei, php-win.exe. Diese ist identisch mit der CLI-Version, die einzige Ausnahme besteht darin, dass php-win nichts ausgibt und somit keine Konsole bietet. (Es erscheint keine "MS-DOS-Eingabeaufforderung".) Dieses Verhalten ist ähnlich php-gtk. Sie sollten die folgende Option für ./configure benutzen: --enable-cli-win32.

Welche SAPI habe ich?: Auf der Kommandozeile wird Ihnen die Eingabe von php -v verraten, ob Sie php als CGI oder CLI einsetzen. Sehen Sie sich auch die Funktion php_sapi_name() und die Konstante PHP_SAPI an.

Anmerkung: Eine UNIX manual page wurde in PHP 4.3.2 hinzugefügt. Sie können sie ansehen, indem sie man php auf der Kommandozeile eintippen.

Beachtenswerte Unterschiede des CLI SAPI verglichen mit anderen SAPIs:

  • Anders als beim CGI SAPI werden keine Header ausgegeben.

    Obwohl das CGI SAPI einen Weg bietet, HTTP-Header zu unterdrücken, gibt es keine gleichwertige Option, sie im CLI SAPI anzuzeigen.

    CLI wird standardmäßig im stillen Modus gestartet, dennoch gibt es die Optionen -q und --no-header aus Kompatibilitätsgründen noch, so dass Sie auch ältere CGI-Skripte noch benutzen können.

    Es verändert das Arbeitsverzeichnis nicht zu dem des Skriptes. (Die Optionen -C und --no-chdir wurden aus Kompatibilitätsgründen beibehalten.)

    Fehlermeldungen in Plaintext (keine HTML-Formatierung).

  • Es gibt bestimmte php.ini-Direktiven, die vom CLI SAPI außer Kraft gesetzt werden, weil sie in einer Kommandozeilenumgebung keinen Sinn ergeben.

    Tabelle 23-1. Überschriebene php.ini-Direktiven

    Direktive | CLI SAPI-Standardwert | Kommentar
    html_errors | FALSE | Es kann sehr schwierig sein, eine Fehlermeldung auf der Kommandozeile zu lesen, wenn sie mit all diesen bedeutungslosen HTML-Tags vollgestopft ist, deswegen wird diese Direktive auf FALSE gesetzt.
    implicit_flush | TRUE | Es ist erwünscht, dass alle Ausgaben, die von print(), echo() und Konsorten kommen, sofort auf die Ausgabe geschrieben werden und nicht in irgendeinem Puffer gecacht werden. Sie können immer noch output buffering benutzen, wenn Sie die Standardausgabe aufschieben oder manipulieren wollen.
    max_execution_time | 0 (unlimited) | Wegen der unendlichen Möglichkeiten, PHP in Kommandozeilenumgebungen zu benutzen wurde die maximale Ausführungszeit auf unbegrenzte Zeit eingestellt. Wohingegen Anwendungen, die für das Web geschrieben wurden, oft in sehr kurzer Zeit ausgeführt werden, neigen Anwendungen für die Kommandozeile dazu, eine viel längere Ausführungszeit zu beanspruchen.
    register_argc_argv TRUE

    Weil diese Einstellung auf TRUE gesetzt ist, werden Sie immer Zugriff auf argc (Anzahl der Argumente, die der Anwendung übergeben wurden) und argv (Array der eigentlichen Argumente) im CLI SAPI haben.

    Seit PHP 4.3.0 werden die PHP-Variablen $argc und $argv registriert und mit den entsprechenden Werten gefüllt, wenn das CLI SAPI benutzt wird. Vor dieser Version verhielt sich die Erzeugung dieser Variablen so wie in den CGI und MODULE-Versionen, die die PHP-Direktive register_globals auf on verlangen. Ungeachtet der Version oder der Einstellung von register_globals können Sie immer $_SERVER oder $HTTP_SERVER_VARS benutzen. Beispiel: $_SERVER['argv']

    Anmerkung: Diese Direktiven können nicht mit einem anderen Wert aus der Konfigurationsdatei php.ini oder einer eigenen (falls angegeben) initialisiert werden. Das ist eine Einschränkung, weil diese Standardwerte angewandt werden, nachdem alle Konfigurationsdateien durchlaufen wurden. Dennoch können die Werte zur Laufzeit verändert werden (was aber für alle diese Direktiven keinen Sinn ergibt, beispielsweise register_argc_argv).

  • Um die Arbeit in der Kommandozeilenumgebung zu vereinfachen, wurden folgende Konstanten definiert:

    Tabelle 23-2. CLI-spezifische Konstanten

    Konstante Beschreibung
    STDIN Ein schon geöffneter Stream auf stdin. Das erspart das öffnen mit
    <?php

    $stdin     = fopen('php://stdin', 'r');

    ?>
    STDOUT Ein schon geöffneter Stream auf stdout. Das erspart das öffnen mit
    <?php

    $stdout     = fopen('php://stdout', 'w');

    ?>
    STDERR Ein schon geöffneter Stream auf stderr. Das erspart das öffnen mit
    <?php

    $stderr     = fopen('php://stderr', 'w');

    ?>

    Angesichts des oben genannten brauchen Sie beispielsweise nicht selbst einen Stream für stderr öffnen, sondern einfach die Konstante statt der Ressource:
    php -r 'fwrite(STDERR, "stderr\n");'
    Sie brauchen diese Ressourcen nicht explizit schliessen, weil sie automatisch von PHP geschlossen werden, wenn ihr Skript endet.

  • Das CLI SAPI ändert das aktuelle Verzeichnis nicht auf das Verzeichnis des ausgeführten Skriptes!

    Ein Beispiel, das den Unterschied zum CGI SAPI zeigt:
    <?php
    // Our simple test application named test.php
    echo getcwd(), "\n";
    ?>

    Bei der CGI-Version ist die Ausgabe folgende:
    $ pwd
/tmp

$ php -q another_directory/test.php
/tmp/another_directory
    Dies zeigt deutlich, dass PHP das aktuelle Verzeichnis auf das des asugeführten Skriptes ändert.

    Benutzen der CLI SAPI-Version ergibt:
    $ pwd
/tmp

$ php -f another_directory/test.php
/tmp
    Dies erlaubt eine größere Anpassungsfähigkeit beim Schreiben von Kommandozeilenanwendungen in PHP.

    Anmerkung: Das CGI SAPI unterstützt das Verhalten des CLI SAPI anhand der Option -C, wenn es auf der Kommandozeile gestartet wird.

Die Liste der Kommandozeilenoptionen, die das PHP-Binary bereitstellt, können jederzeit abgerufen werden, wenn man PHP mit der Option -h startet:
Usage: php [options] [-f] <file> [args...]
       php [options] -r <code> [args...]
       php [options] [-- args...]
  -s               Display colour syntax highlighted source.
  -w               Display source with stripped comments and whitespace.
  -f <file>        Parse <file>.
  -v               Version number
  -c <path>|<file> Look for php.ini file in this directory
  -a               Run interactively
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -z <file>        Load Zend extension <file>.
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -i               PHP information
  -r <code>        Run PHP <code> without using script tags <?..?>
  -h               This help

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

Beim CLI SAPI gibt es drei verschiedene Möglichkeiten, den zur Ausführung bestimmten PHP-Code zu übergeben:

  1. PHP mitteilen, eine bestimmte Datei auszuführen.

    php my_script.php

php -f my_script.php
    Beide Arten (ob sie die Option -f benutzen oder nicht) führen die Datei my_script.php aus. Sie können eine beliebige Datei ausführen - Ihr PHP-Skript muss nicht die Dateiendung .php haben, sie kann einen beliebigen Namen und eine beliebige Endung haben.

  2. Den PHP-Code, der ausgeführt werden soll, direkt auf der Kommandozeile übergeben.

    php -r 'print_r(get_defined_constants());'
    Bezüglich Ersetzung von Kommandozeilenvariablen und Benutzung von Quotes muss besondere Vorsicht getroffen werden.

    Anmerkung: Betrachten Sie das Beispiel sorgfältig, es sind keine Start- oder Endtags gesetzt. Die Option -r benötigt sie nicht. Werden sie dennoch verwendet, kommt es zu einem Parser-Fehler.

  3. Stellen Sie den PHP-Code, der ausgeführt werden soll über den Standard-Input (stdin) bereit.

    Dies eröffnet die leistungsfähige Möglichkeit, PHP-Code dynamisch zu generieren und ihn dem PHP-Binary zu übergeben, wie in diesem möglichem Beispiel:
    $ some_application | some_filter | php | sort -u >final_output.txt

Sie können diese drei Möglichkeiten zur Ausführung nicht kombinieren.

Wie jede Kommandozeilenanwendung nimmt das PHP-Binary etliche Argumente entegegen, aber auch ein PHP-Skript kann Argumente entgegennehmen. Die Anzahl der Argumente, die an ein Skript übergeben werden können, ist nicht von PHP beschränkt (aber die Kommandozeilenumgebung hat ein bestimmtes Grössenlimit für die Anzahl der Argumente, die übergeben werden können; normalerweise werden Sie dieses Limit nicht erreichen). Die Argumente, die dem Skript übergeben werden, sind in dem globalen Array $argv gespeichert. Der Null-Index enthält immer den Skriptnamen (das bedeutet -, wenn der PHP-Code entweder von der Standardeingabe oder von der Kommandozeilenoption -r kommt). Die zweite registrierte globale Variable ist $argc, die die Anzahl der Elemente im Array $argv enthält (nicht die Anzahl Argumente, die dem Skript übergeben wurden).

Solange die Argumente, die Sie dem Skript übergeben möchten, nicht mit dem Zeichen - beginnen, gibt es nichts besonderes zu beachten. Ein Argument, das mit - beginnt zu übergeben, wird Probleme bereiten, weil PHP selbst denkt, dass sie verarbeitet werden muss. Benutzen Sie das Argument-Trennzeichen -- um das zu vermeiden. Nachdem dieses Trennzeichen von PHP geparst wurde, wird jedes folgende Argument unangetastet an das Skript weitergereicht.

# This will not execute the given code but will show the PHP usage
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# This will pass the '-h' argument to your script and prevent PHP from showing it's usage
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Dennoch gibt es einen anderen Weg, um PHP für Kommandozeilenskripte zu benutzen. Sie können ein Skript erstellen, in dem die erste Zeile mit #!/usr/bin/php beginnt. Nachfolgend können Sie normalen PHP-Code innerhalb der PHP-Start- und -End-Tags setzen. Sobald Sie die Datei ausführbar gemacht haben (beispielsweise chmod +x test), kann Ihr Skript wie ein normales Kommandozeilen- oder Perlskript gestartet werden.
#!/usr/bin/php
<?php
var_dump($argv);
?>
Angenommen, die Datei heisst test und befindet sich im aktuellen Verzeichnis, dann können wir nun folgendes tun:
$ chmod 755 test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
Wie Sie sehen können, müssen Sie sich in diesem Fall um nichts weiter kümmern, wenn Sie Ihrem Skript Paramater, die mit - beginnen, übergeben.

Die Langformen der Optionen sind seit PHP 4.3.3 verfügbar.

Tabelle 23-3. Kommandozeilenoption

Option | Langform | Beschreibung
-s --syntax-highlight

Den Quelltext mit farbiger Syntaxhervorhebung anzeigen.

Diese Option benutzt den internen Mechanismus zum Analysieren der Datei, generiert eine HTML-Version mit Syntax-Highlighting davon, und schreibt sie auf die Standardausgabe. Beachten Sie, dass sie nur einen Block von <code> [...] </code>-HTML-Tags erzeugt, keine HTML-Header.

Anmerkung: Diese Option funktioniert nicht zusammen mit -r.

-s --syntax-highlighting

Ein Alias für --syntax-highlight.

-w --strip

Den Quelltext mit entfernten Kommentaren und Leerzeichen anzeigen.

Anmerkung: Diese Option funktioniert nicht zusammen mit -r.

-f --file

Parst und führt die angegebene Datei aus. Diese Option ist nicht verbindlich und kann weggelassen werden. Alleinige Angabe des Dateinamens ist ausreichend.

-v --version

Schreibt die PHP, PHP SAPI und Zend-Version auf die Standardausgabe. Zum Beispiel:
$ php -v
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

-c --php-ini

Mit dieser Option kann man entweder ein Verzichnis angeben, wo nach php.ini gesucht werden soll, oder man kann eine eigene INI-Datei direkt angeben (diese muss nicht php.ini heissen). Zum Beispiel:
$ php -c /custom/directory/ my_script.php

$ php -c /custom/directory/custom-file.ini my_script.php

-n --no-php-ini

php.ini komplett ignorieren. Diese Option gibt es seit PHP 4.3.0.

-d --define

Diese Option erlaubt es Ihnen, einen eigenen Wert für eine beliebige in php.ini erlaubte Direktive zu setzen. Die Syntax ist:
-d configuration_directive[=value]

Beispiel (Die Zeilen sind aus layouttechnischen Gründen umgebrochen):
# Omitting the value part will set the given configuration directive to "1"
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Passing an empty value part will set the configuration directive to ""
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# The configuration directive will be set to anything passed after the '=' character
$  php -d max_execution_time=20
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php
        -d max_execution_time=doesntmakesense
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "doesntmakesense"

-a --interactive

PHP interaktiv starten.

-e --profile-info

Erweiterte Informationen für Debugger/Profiler erstellen.

-z --zend-extension

Eine Zend-Erweiterung laden. Wenn nur ein Dateiname angegeben wird, versucht PHP, die Erweiterung aus dem momentanen Standard-Bibliotheken-Pfad auf Ihrem System zu laden (auf Linux-Systemen normalerweise in /etc/ld.so.conf angegeben). Wenn ein Dateiname mit absoluter Pfadinformation übergeben wird, wird der Bibliotheken-Pfad des Systems nicht benutzt. Ein relativer Dateiname mit Pfadinformationen wird PHP nur veranlassen, zu versuchen, die Erweiterung in einem Pfad relativ zum aktuellen Verzeichnis zu laden.

-l --syntax-check

Diese Option stellt eine angenehme Methode bereit, nur eine Syntaxüberprüfung auf den angegebenen PHP-Code durchzuführen. Bei Erfolg wird der Text No syntax errors detected in <filename> auf die Standardausgabe geschrieben und der Rückgabewert ist 0. Bei Misserfolg wird der Text Errors parsing <filename> zusätzlich zur internen Parser-Fehlermeldung auf der Standardausgabe ausgegeben und der Rückgabewert auf 255 gesetzt.

Diese Option wird keine Fatalen Fehler (wie undefinierte Funktionen) finden. Benutzen Sie die Option -f, wenn sie auch diese überprüfen wollen.

Anmerkung: Diese Option funktioniert nicht zusammen mit -r.

-m --modules

Wird diese Option benutzt, gibt PHP die eingebauten (und geladenen) PHP- und Zend-Module aus:
$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-i | --info | Diese Kommandozeilenoption ruft phpinfo() auf und gibt das Ergebnis aus. Wenn PHP nicht korrekt funktioniert, ist es ratsam, php -i zu benutzen und nachzusehen, ob etwa Fehlermeldungen vor oder statt der Informationstabellen ausgegeben werden. Beachten Sie, dass die Ausgabe in HTML erfolgt und deswegen ziemlich umfangreich ist.
-r --run

Diese Option erlaubt die Ausführung von PHP direkt aus der Kommandozeile. Die PHP-Start- und -End-Tags (<?php and ?>) werden nicht benötigt und verursachen Parserfehler, wenn sie dennoch vorhanden sind.

Anmerkung: Man muss bei Benutzung dieser Form von PHP aufpassen, dass es zu keinen Kollisionen mit Kommandozeilenvariablen kommt.

Dieses Beispiel zeigt einen Parserfehler:
$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='
Das Problem hier ist, dass die sh/bash Variablen auch ersetzt, wenn doppelte Anführungszeichen benutzt werden ("). Weil die Variable $foo wahrscheinlich nicht definiert ist, passiert nichts. Der tatsächliche Code, der an PHP übergeben wird, sieht so aus:
$ php -r " = get_defined_constants();"
Der korrekte Weg wäre, einfache Anführungszeichen zu benutzen ('). Variablen in einfachen Anführungszeichen werden von sh/bash nicht ersetzt.
$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]
Wenn Sie eine andere Kommandozeilenumgebung als sh/bash benutzen, könnten Sie auf weitere Probleme stossen. Sie können gerne einen Bugreport anmelden oder eine Email an phpdoc@lists.php.net schreiben. Man kann dennoch leicht in Schwierigkeiten kommen, wenn man versucht, Kommandozeilenvariablen zu verwenden oder mit Backslashes zu escapen. Sie wurden gewarnt.

Anmerkung: -r ist nur im CLI-SAPI verfügbar und nicht im CGI-SAPI

-h | --help | Mit dieser Option bekommen Sie Informationen über die tatsächlichen Kommandozeilenoptionen und kurze Beschreibungen dazu.
-? --usage Ein Alias für --help.

Die ausführbare PHP-Version kann benutzt werden, um PHP-Skripte vollkommen unabhängig von einem Webserver auszuführen. Wenn Sie auf einem UNIX-System arbeiten, sollten Sie Ihrem Skript eine spezielle erste Zeile hinzufügen und es ausführbar machen, so dass das System erkennt, welches Programm das Skript ausführen soll. Auf einem Windows-System können Sie php.exe mit der Doppelklick-Option von .php-Dateien verknüpfen. Sie können auch eine Batchdatei erzeugen, um das Skript von PHP ausführen zu lassen. Die erste Zeile, die dem Skript hinzugefügt wird, damit es unter UNIX läuft, stört unter Windows nicht, so dass Sie auf diese Weise problemlos plattformübergreifende Programme schreiben können. Sie finden anschließend ein einfaches Beispiel, wie man ein Kommandozeilenprogramm in PHP schreibt.

Beispiel 23-1. Ein Skript, das von der Kommandozeile aus ausgeführt werden soll (script.php)

#!/usr/bin/php
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

This is a command line PHP script with one option.

  Usage:
  <?php echo $argv[0]; ?> <option>

  <option> can be some word you would like
  to print out. With the --help, -help, -h,
  or -? options, you can get this help.

<?php
} else {
    echo $argv[1];
}
?>

In dem oben beschriebenen Skript haben wir die erste Zeile dazu benutzt, anzugeben, dass die Datei von PHP ausgeführt werden soll. Wir arbeiten hier mit einer CLI-version, deswegen werden keine HTTP-Header ausgegeben. Es gibt zwei Variablen, die Sie in Kommandozeilen-Applikationen mit PHP benutzen können: $argc und $argv. Die erste ist die Anzahl der Argumente plus Eins (dem Namen des laufenden Skripts). Die zweite ist ein Array, das die Argumente enthält, beginnend mit dem Skriptnamen als Nummer Null ($argv[0]).

In dem oben genannten Programm haben wir überprüft, ob es weniger oder mehr als zwei Argumente gibt. Falls das Argument --help, -help, -h oder -? war, haben wir die Hilfe-Nachricht mit dem dynamisch übergebenen Skriptnamen ausgegeben. Wenn wir ein anderes Argument erhalten haben, haben wir es ausgegeben.

Wenn Sie das oben genannte Skript unter UNIX laufen lassen wollen, müssen Sie es zuerst ausführbar machen, und es danach einfach als script.php echothis oder script.php -h aufrufen. Unter Windows können Sie zu diesem Zweck eine Batchdatei erstellen:

Beispiel 23-2. Batchdatei zur Ausführung eines Kommandozeilen-Skripts in PHP (script.bat)

@c:\php\cli\php.exe script.php %1 %2 %3 %4

Angenommen, Sie haben das Programm script.php genannt und die CLI-php.exe hat den Pfad c:\php\cli\php.exe, wird diese Batchdatei es mit den von Ihnen übergebnen Optionen script.bat echothis oder script.bat -h ausführen.

Sehen Sie sich auch die zusätzlichen Funktionen in der Dokumentation der Readline-Extension an, um Ihre in PHP geschriebenen Kommandozeilenanwendungen weiterzuentwickeln.

Zurück | Zum Anfang | Nach vorne
Safe Mode | Nach oben | Funktionsreferenz


Funktionsreferenz

PHP Handbuch
Zurück Nach vorne

V. Funktionsreferenz

Inhaltsverzeichnis
I. Apache-spezifische Funktionen
II. Array Funktionen
III. Aspell Funktionen [veraltet]
IV. Mathematische Funktionen mit beliebiger Genauigkeit
V. Bzip2 Komprimierungsfunktionen
VI. Kalender-Funktionen
VII. CCVS API Funktionen
VIII. COM Support Funktionen für Windows
IX. Klassen- und Objekt-Funktionen
X. ClibPDF Funktionen
XI. Crack Funktionen
XII. cURL, Client URL Bibiothek-Funktionen
XIII. Cybercash Bezahl Funktionen
XIV. Cyrus IMAP administration Functions
XV. Character type functions
XVI. dba Datenbank (dbm-style) Abstraktions-Funktionen
XVII. Datums- und Zeit-Funktionen
XVIII. dBase Funktionen
XIX. DBM Datenbankfunktionen
XX. dbx Funktionen
XXI. DB++ Functions
XXII. Direkte Ein-/Ausgabe Funktionen
XXIII. Verzeichnis-Funktionen
XXIV. DOM XML Funktionen
XXV. .NET Funktionen
XXVI. Error Handling and Logging Functions
XXVII. File Alteration Monitor Functions
XXVIII. FrontBase Funktionen
XXIX. filePro Funktionen
XXX. Funktionen des Dateisystems
XXXI. Forms Data Format Funktionen
XXXII. FriBiDi Funktionen
XXXIII. FTP-Funktionen
XXXIV. Function Handling functions
XXXV. GNU Gettext
XXXVI. GMP Functions
XXXVII. HTTP functions
XXXVIII. Hyperwave Functions
XXXIX. Hyperwave API Functions
XL. iconv Funktionen
XLI. Grafik-Funktionen
XLII. IMAP, POP3 und NNTP Funktionen
XLIII. Informix Funktionen
XLIV. InterBase-Funktionen
XLV. Ingres II Funktionen
XLVI. IRC Gateway Funktionen
XLVII. Java
XLVIII. LDAP Funktionen
XLIX. LZF Functions
L. Mail-Funktionen
LI. mailparse Functions
LII. Mathematische Funktionen
LIII. Multibyte String Functions
LIV. MCAL Funktionen
LV. Mcrypt Encryption Functions
LVI. MCVE Payment Functions
LVII. Hash Funktionen
LVIII. Mimetype Functions
LIX. Microsoft SQL Server Funktionen
LX. Ming functions for Flash
LXI. Sonstige Funktionen
LXII. mnoGoSearch Funktionen
LXIII. mSQL Funktionen
LXIV. MySQL Funktionen
LXV. Verbesserte MySQL Erweiterung
LXVI. Mohawk Software Session Handler Funktionen
LXVII. muscat Functions
LXVIII. Netzwerk Funktionen
LXIX. Ncurses Terminal Screen Control Functions
LXX. Lotus Notes Functions
LXXI. NSAPI-specific Functions
LXXII. ODBC Funktionen
LXXIII. Object Aggregation/Composition Functions
LXXIV. Oracle 8 Funktionen
LXXV. OpenSSL Funktionen
LXXVI. Oracle Funktionen
LXXVII. Ovrimos SQL Functions
LXXVIII. Funktionen zur Ausgabesteuerung
LXXIX. Object property and method call overloading
LXXX. PDF Funktionen
LXXXI. Verisign Payflow Pro Funktionen
LXXXII. PHP Optionen und Informationen
LXXXIII. POSIX Funktionen
LXXXIV. PostgreSQL Funktionen
LXXXV. Process Control Functions
LXXXVI. Funktionen zur Programmausführung
LXXXVII. Printer Functions
LXXXVIII. Pspell Funktionen
LXXXIX. GNU Readline
XC. GNU Recode Funktionen
XCI. Reguläre Ausdrücke Funktionen (Perl-kompatibel)
XCII. qtdom Functions
XCIII. Reguläre Ausdrücke Funktionen (POSIX erweitert)
XCIV. Semaphor und Shared Memory Funktionen
XCV. SESAM Datenbankfunktionen
XCVI. Session Funktionen
XCVII. Shared Memory Funktionen (Gemeinsamer Speicher)
XCVIII. SimpleXML functions
XCIX. SOAP Functions
C. SQLite
CI. Shockwave Flash Funktionen
CII. SNMP Funktionen
CIII. Socket Funktionen
CIV. Standard PHP Library (SPL) Functions
CV. Stream Functions
CVI. String-Funktionen
CVII. Sybase Funktionen
CVIII. TCP Wrappers Functions
CIX. Tidy Functions
CX. Tokenizer Functions
CXI. URL Funktionen
CXII. Variablen-Funktionen
CXIII. vpopmail Functions
CXIV. W32api Functions
CXV. WDDX Funktionen
CXVI. XML Parser Functions
CXVII. XML-RPC Functions
CXVIII. xdiff Functions
CXIX. XSL functions
CXX. XSLT Funktionen
CXXI. YAZ Functions
CXXII. YP/NIS Funktionen
CXXIII. ZIP Funktionen (Lesezugriff)
CXXIV. Zlib Komprimierungsfunktionen

Zurück | Zum Anfang | Nach vorne
PHP auf der Kommandozeile |  | Apache-spezifische Funktionen


Apache-spezifische Funktionen

PHP Handbuch
Zurück Nach vorne

I. Apache-spezifische Funktionen

Einführung

Diese Funktionen stehen nur zur Verfügung, wenn PHP als Apache Modul läuft.

Installation

Informationen zur Installation von PHP unter Apache finden Sie im Kapitel Installation unter dem Abschnitt zu Apache

Laufzeit Konfiguration

Das Verhalten des Apache PHP-Moduls wird durch Einstellungen in der php.ini beeinflusst. Konfigurationseinstellungen aus der php.ini können Sie durch php_flag Einstellungen in der Server Konfigurationsdatei oder lokal in .htaccess Dateien überschreiben.

Beispiel 1. Parsen von PHP für ein Verzeichnis ausschalten mittels .htaccess

php_flag engine off

Tabelle 1. Apache Konfigurations Optionen

Bezeichnung | Grundeinstellung | Änderbar | Bedeutung
engine | On | PHP_INI_ALL | Parsen von PHP ein/-auschalten
child_terminate | Off | PHP_INI_ALL | Gibt an, ob PHP Skripte veranlassen, dass Kindprozesse nach dem Request beendet werden, siehe auch apache_child_terminate().
last_modified | Off | PHP_INI_ALL | Das letzte Datum der Änderung des PHP Skripts wird als Last-Modified: header für diesen Request gesendet.
xbithack | Off | PHP_INI_ALL | Dateien mit gesetztem ausführbaren Bit werden unabhängig von ihrer Dateiendung durch PHP geparst.

Hier eine kurze Erklärung der Konfigurationsoptionen:

engine boolean

Diese Option ist in erster Linie nur sinnvoll, wenn PHP als Modul in den Apache einkompiliert wurde. Sie wird von Seiten benutzt, die den PHP-Parser für bestimmte Verzeichnisse oder virtuelle Server aus- bzw. einschalten wollen. Wenn Sie engine off in den dafür vorgesehenen Blöcken in der httpd.conf Datei benutzen, kann PHP aktiviert bzw. deaktiviert werden.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
apache_child_terminate -- Beendet einen Apache Prozess nach der Anfrage
apache_get_modules -- Liste der geladenen Apachemodule
apache_get_version -- Liefert die Version von Apache
apache_getenv -- Get an Apache subprocess_env variable
apache_lookup_uri -- Führt eine Teilanfrage für eine URI durch und liefert alle Informationen darüber zurück.
apache_note -- Setzt und liest Apache Notes
apache_request_headers -- Liefert alle HTTP-Header der aktuellen Anfrage
apache_response_headers -- Liefert alle HTTP-Antwort Header
apache_setenv -- Setzt eine Apache subprocess_env Variable
ascii2ebcdic -- Zeichenkette von ASCII in EBCDIC übersetzen
ebcdic2ascii -- Zeichenkette von EBCDIC in ASCII übersetzen
getallheaders -- Liefert alle HTTP-Header der aktuellen Anfrage aus
virtual -- Führt eine Apache-Unteranfrage durch

Zurück | Zum Anfang | Nach vorne
Funktionsreferenz | Nach oben | apache_child_terminate


apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5)

apache_child_terminate -- Beendet einen Apache Prozess nach der Anfrage

Beschreibung

bool apache_child_terminate ( void )

apache_child_terminate() beendet den Apache Prozess, der die aktuelle PHP-Anfrage ausführt, nachdem diese vollständig ausgeführt wurde. Sie können diese Funktion benutzen, nachdem Sie ein Skript mit hohem Speicherverbrauch ausgeführt haben. Der verbrauchte Speicher wird gewöhnlich nur intern, aber nicht für das Betriebsystem, freigegeben.

Anmerkung: Die Verfügbarkeit dieses Features wird durch die Anweisung child_terminate in der php.ini beeinflusst. Die Standardeinstellung ist off.

Dieses Feature steht bei multithreaded Versionen von Apache, wie der win32 Version, nicht zur Verfügung.

Siehe auch exit().

Zurück | Zum Anfang | Nach vorne
Apache-spezifische Funktionen | Nach oben | apache_get_modules


apache_get_modules

(PHP 4 >= 4.3.2, PHP 5)

apache_get_modules -- Liste der geladenen Apachemodule

Beschreibung

array apache_get_modules ( void )

Diese Funktion liefert Ihnen ein Array mit allen geladenen Apachemodulen.

Beispiel 1. apache_get_modules() Beispiel

<?php
print_r(apache_get_modules());
?>

Die Ausgabe des obigen Programms sieht Ã¤hnlich wie folgt aus:

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)

Zurück | Zum Anfang | Nach vorne
apache_child_terminate | Nach oben | apache_get_version


apache_get_version

(PHP 4 >= 4.3.2, PHP 5)

apache_get_version -- Liefert die Version von Apache

Beschreibung

string apache_get_version ( void )

apache_get_version() gibt die Apache-Version als Zeichenkette zurück, oder FALSE bei einem Fehler.

Beispiel 1. apache_get_version() Beispiel

<?php
$version = apache_get_version();
echo "$version \n <br />";
?>

Die Ausgabe des obigen Programms sieht ähnlich wie folgt aus:

Apache/1.3.29 (Unix) PHP/4.3.4

Siehe auch phpinfo().

Zurück | Zum Anfang | Nach vorne
apache_get_modules | Nach oben | apache_getenv


apache_getenv

(PHP 4 >= 4.3.0, PHP 5)

apache_getenv -- Get an Apache subprocess_env variable

Description

string apache_getenv ( string variable [, bool walk_to_top])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
apache_get_version | Nach oben | apache_lookup_uri


apache_lookup_uri

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

apache_lookup_uri -- Führt eine Teilanfrage für eine URI durch und liefert alle Informationen darüber zurück.

Beschreibung

object apache_lookup_uri ( string Dateiname)

apache_lookup_uri() führt eine Teilanfrage über eine bestimmte URI durch. Die Abfrage geht gerade soweit, dass alle wichtigen Informationen über die gegebene Quelle gesammelt werden können. Als Resultat wird eine Klasse zurückgeliefert, die folgende Elemente enthält:

status
the_request
status_line
method
content_type
handler
uri
filename
path_info
args
boundary
no_cache
no_local_copy
allowed
send_bodyct
bytes_sent
byterange
clength
unparsed_uri
mtime
request_time

Beispiel 1. apache_lookup_uri() Beispiel

<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);

if (file_exists($info->filename)) {
    echo 'file exists!';
}
?>

Die Ausgabe des obigen Beispiel sieht so ähnlich aus wie folgt:

stdClass Object
(
    [status] => 200
    [the_request] => GET /dir/file.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /dir/index.php?var=value
    [uri] => /dir/index.php
    [filename] => /home/htdocs/dir/index.php
    [args] => var=value
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1074282764
)
file exists!

Anmerkung: apache_lookup_uri() funktioniert nur, wenn PHP als Apache-Modul eingerichtet wurde.

Zurück | Zum Anfang | Nach vorne
apache_getenv | Nach oben | apache_note


apache_note

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

apache_note -- Setzt und liest Apache Notes

Beschreibung

string apache_note ( string note_name [, string note_value])

apache_note() ist eine Apache-spezifische Funktion, die Einträge in Apaches notes-Tabelle setzt und ausliest. Wenn sie mit einem einzelnen Parameter aufgerufen wird, gibt sie den aktuellen Wert der Note note_name zurück. Bei zwei Parametern wird der Eintrag note_name auf den zweiten Parameter note_value gesetzt und liefert den bisherigen Wert zurück.

Zurück | Zum Anfang | Nach vorne
apache_lookup_uri | Nach oben | apache_request_headers


apache_request_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_request_headers -- Liefert alle HTTP-Header der aktuellen Anfrage

Beschreibung

array apache_request_headers ( void )

Die Funktion apache_request_headers() liefert ein assoziatives Array zurück, das alle HTTP-Header-Informationen der aktuellen HTTP-Anfrage enthält. Diese Funktion wird nur untersstützt, wenn PHP als Modul für Apache läuft.

Beispiel 1. apache_request_headers() Beispiel

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Anmerkung:
      In früheren Versionen als PHP 4.3.0 hieß die Funktion
      apache_request_headers()
      getallheaders(). Mit PHP 4.3.0 ist
      getallheaders() ein Alias für
      apache_request_headers().

Anmerkung: Die Werte der gebräuchlichsten CGI-Variablen können Sie auch durch das Auslesen der Umgebungsvariablen erhalten. Dieser Weg funktioniert unabhängig davon, ob Sie PHP als Modul für Apache benutzen. Benutzen Sie phpinfo(), um eine Liste aller zur Verfügung stehenden Umgebungsvariablen zu erhalten.

Anmerkung: Ab PHP 4.3.3 können Sie diese Funktion auch mit dem NSAPI Server Modul in Netscape/iPlanet/SunONE Webservern nutzen.

Siehe auch apache_response_headers().

Zurück | Zum Anfang | Nach vorne
apache_note | Nach oben | apache_response_headers


apache_response_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_response_headers -- Liefert alle HTTP-Antwort Header

Beschreibung

array apache_response_headers ( void )

Rückgabewert: ein assoziatives Array mit allen Apache-Antwort Headern. Diese Funktion steht erst ab PHP Version 4.3.0 und folgende zur Verfügung.

Siehe auch apache_request_headers() und headers_sent().

Anmerkung: Ab PHP 4.3.3 können Sie diese Funktion auch mit dem NSAPI Server Modul in Netscape/iPlanet/SunONE Webservern nutzen.

Zurück | Zum Anfang | Nach vorne
apache_request_headers | Nach oben | apache_setenv


apache_setenv

(PHP 4 >= 4.2.0, PHP 5)

apache_setenv -- Setzt eine Apache subprocess_env Variable

Beschreibung

int apache_setenv ( string Variable, string Wert [, bool walk_to_top])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
apache_response_headers | Nach oben | ascii2ebcdic


ascii2ebcdic

(PHP 3>= 3.0.17)

ascii2ebcdic -- Zeichenkette von ASCII in EBCDIC übersetzen

Beschreibung

int ascii2ebcdic ( string ascii_str)

ascii2ebcdic() ist eine Apache-spezifische Funktion, die nur auf Systemen mit EBCDIC-Zeichensatz existiert (Betriebssysteme: OS/390, BS2000). Die Funktion setzt die ASCII-kodierte Zeichenkette ascii_str in ihre äquivalente EBCDIC-Darstellung um (binärfest), und liefert das konvertierte Ergebnis zurück.

Siehe auch die Umkehrfunktion ebcdic2ascii().

Zurück | Zum Anfang | Nach vorne
apache_setenv | Nach oben | ebcdic2ascii


ebcdic2ascii

(PHP 3>= 3.0.17)

ebcdic2ascii -- Zeichenkette von EBCDIC in ASCII übersetzen

Beschreibung

int ebcdic2ascii ( string ebcdic_str)

ebcdic2ascii() ist eine Apache-spezifische Funktion, die nur auf Systemen mit EBCDIC-Zeichensatz existiert (Betriebssysteme: OS/390, BS2000). Die Funktion setzt die EBCDIC-kodierte Zeichenkette ebcdic_str in ihre äquivalente ASCII-Darstellung um (binärfest), und liefert das konvertierte Ergebnis zurück.

Siehe auch die Umkehrfunktion ascii2ebcdic().

Zurück | Zum Anfang | Nach vorne
ascii2ebcdic | Nach oben | getallheaders


getallheaders

(PHP 3, PHP 4 , PHP 5)

getallheaders -- Liefert alle HTTP-Header der aktuellen Anfrage aus

Beschreibung

array getallheaders ( void )

getallheaders() ist ein Alias für die Funktion apache_request_headers(). Die Funktion liefert ein assoziatives Array zurück, das alle HTTP-Header der aktuellen HTTP-Anfrage enthält. Lesen Sie bitte die Dokumentation zu apache_request_headers() um mehr Informationen über die Funktionsweise zu erhalten.

Anmerkung: In PHP 4.3.0 wurde aus getallheaders() ein Alias für apache_request_headers(). Tatsächlich wurde die Funktion umbenannt. Der Grund: diese Funktion funktioniert nur, wenn PHP als Modul für Apache kompiliert wurde.

Anmerkung: Ab PHP 4.3.3 können Sie diese Funktion auch mit dem NSAPI Server Modul in Netscape/iPlanet/SunONE Webservern nutzen.

Siehe auch apache_request_headers().

Zurück | Zum Anfang | Nach vorne
ebcdic2ascii | Nach oben | virtual


virtual

(PHP 3, PHP 4 , PHP 5)

virtual -- Führt eine Apache-Unteranfrage durch

Beschreibung

int virtual ( string filename)

virtual() ist eine Apache-spezifische Funktion, die <!--#include virtual... --> aus mod_include entspricht. Diese Funktion führt eine Unteranfrage durch. Das ist nützlich für das Einbinden von CGI-Skripten, .shtml-Dateien oder allen anderen Inhalten, die von Apache verarbeitet werden sollen. Beachten Sie bitte, dass ein CGI-Skript gültige CGI-Header generieren muss, mindestens einen Content-type-Header.

Um die Unteranfrage auszuführen, werden alle Buffer beendet und der Inhalt im Browser ausgegeben. Anstehende Header werden ebenfalls abgeschickt.

Seit PHP 4.0.6 können Sie virtual() für PHP Dateien benutzen. Trotzdem ist es typischerweise besser, include() oder require() zu benutzen um PHP Dateien einzubinden.

Anmerkung: Ab PHP 4.3.3 können Sie diese Funktion auch mit dem NSAPI Server Modul in Netscape/iPlanet/SunONE Webservern nutzen.

Zurück | Zum Anfang | Nach vorne
getallheaders | Nach oben | Array Funktionen


Array Funktionen

PHP Handbuch
Zurück Nach vorne

II. Array Funktionen

Einführung

Diese Funktionen erlauben es, Arrays auf verschiedene Arten zu manipulieren bzw. mit ihnen zu interagieren. Arrays sind wichtig, um Gruppen von Variablen zu verwalten, zu bearbeiten, oder zu speichern.

Es werden einfache und mehrdimensionale Arrays unterstützt, welche entweder vom Benutzer oder von einer anderen Funktion erstellt werden können. Es gibt bestimmte Datenbankfunktionen, welche die Ergebnisse aus Datenbankabfragen in Arrays speichern, und verschiedene andere Funktionen, die Arrays als Rückgabewerte haben.

Im Abschnitt Arrays finden Sie eine detaillierte Erklärung, wie Arrays in PHP implementiert sind und wie sie benutzt werden.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.

CASE_LOWER (integer)

CASE_LOWER wird benützt mit array_change_key_case() um die Schlüssel von Arrays in Kleinbuchstaben umzuwandeln. Das ist auch der Standard für array_change_key_case().

CASE_UPPER (integer)

CASE_UPPER wird benützt mit array_change_key_case() um die Schlüssel von Arrays in Großbuchstaben umzuwandeln.

Siehe auch

Siehe auch is_array(), explode(),
implode(), split(),
preg_split() und unset().

Inhaltsverzeichnis
array_change_key_case -- Liefert ein Array mit allen String-Schlüsseln in Klein- oder Großbuchstaben
array_chunk -- Splittet ein Array in Teile auf
array_combine -- Creates an array by using one array for keys and another for its values
array_count_values -- Zählt die Werte eines Arrays
array_diff_assoc -- Computes the difference of arrays with additional index check
array_diff_uassoc -- Computes the difference of arrays with additional index check which is performed by a user supplied callback function.
array_diff -- Ermittelt die Unterschiede von Arrays
array_fill -- Füllt ein Array mit Werten
array_filter -- Filtert Elemente eines Arrays mittels einer Callback-Funktion
array_flip -- Vertauscht Werte und Schlüssel in einem Array
array_intersect_assoc -- Computes the intersection of arrays with additional index check
array_intersect -- Ermittelt die Schnittmenge von Arrays
array_key_exists -- Prüft, ob ein Schlüssel in einem Array existiert
array_keys -- Liefert alle Schlüssel eines Arrays
array_map -- Wendet eine Callback-Funktion auf die Elemente von Arrays an
array_merge_recursive -- Führt zwei oder mehr Arrays rekursiv zusammen
array_merge -- Führt zwei oder mehr Arrays zusammen
array_multisort -- Sortiert mehrere oder multidimensionale Arrays
array_pad -- Vergrößert ein Array auf die spezifizierte Länge mit einem Wert
array_pop -- Liefert das letzte Element eines Arrays
array_push -- Fügt ein oder mehr Elemente an das Ende eines Arrays
array_rand -- Liefert einen oder mehrere zufällige Einträge eines Arrays
array_reduce -- Iterative Reduktion eines Arrays zu einem Wert mittels einer Callback Funktion
array_reverse -- Liefert ein Array mit umgekehrter Reihenfolge der Elemente
array_search -- Durchsucht ein Array nach einem Wert liefert bei Erfolg den Schlüssel
array_shift -- Liefert ein Element vom Beginn eines Arrays
array_slice -- Extrahiert einen Ausschnitt eines Arrays
array_splice -- Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes
array_sum -- Liefert die Summe der Werte in einem Array
array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.
array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also
array_udiff -- Computes the difference of arrays by using a callback function for data comparison.
array_unique -- Entfernt doppelte Werte aus einem Array
array_unshift -- Fügt ein oder mehr Elemente am Anfang eines Arrays ein
array_values -- Liefert alle Werte eines Arrays
array_walk -- Wendet eine Benutzerfunktion an jedem Element eines Arrays an
array -- Erstellt ein Array
arsort -- Sortiert ein Array in umgekehrter Reihenfolge und behält die Verbindung zum Index
asort -- Sortiert ein Array und behält die Indexverbindungen
compact -- Erstellt ein Array mit Variablen und deren Werten
count -- Zählt die Elemente einer Variable
current -- Liefert das aktuelle Element eines Arrays
each -- Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Array Cursor vor.
end -- Positioniert den internen Zeiger eines Arrays auf dessen letztes Element
extract -- Importiert Variablen eines Arrays in die aktuelle Symboltabelle
in_array -- Prüft, ob ein Wert in einem Array existiert
key -- Liefert einen Schlüssel eines assoziativen Arrays
krsort -- Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge
ksort -- Sortiert ein Array nach Schlüsseln
list -- Weist Variablen zu, als wären sie ein Array
natcasesort -- Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert
natsort -- Sortiert ein Array in "natürlicher Reihenfolge"
next -- Rückt den internen Zeiger eines Arrays vor
pos -- Liefert das aktuelle Element eines Arrays
prev -- Verkleinert den internen Zeiger eines Arrays
range -- Erstellt ein Array mit einem Bereich von Elementen
reset -- Setzt den internen Zeiger eines Arrays auf sein erstes Element
rsort -- Sortiert ein Array in umgekehrter Reihenfolge
shuffle -- Mischt die Elemente eines Arrays
sizeof -- Alias für count()
sort -- Sortiert ein Array
uasort -- Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei.
uksort -- Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion.
usort -- Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion.

Zurück | Zum Anfang | Nach vorne
virtual | Nach oben | array_change_key_case


array_change_key_case

(PHP 4 >= 4.2.0, PHP 5)

array_change_key_case -- Liefert ein Array mit allen String-Schlüsseln in Klein- oder Großbuchstaben

Beschreibung

array array_change_key_case ( array input [, int case])

array_change_key_case() wandelt die Schlüssel des Arrays input in Klein- bzw. Großbuchstaben um. Die Richtung der Umwandlung wird mit dem optionalen Parameter case festgelegt, mit dem die zwei Konstanten CASE_UPPER und CASE_LOWER übergeben werden können. Default ist CASE_LOWER. Diese Funktion lässt die numerischen Indizes unverändert.

Beispiel 1. array_change_key_case()

<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>

wird folgendes ausgeben:

Array
(
    [FIRST] => 1
    [SECOND] => 4
)

Hat ein Array Indices, die bei einem Durchlauf durch diese Funktion gleich sind (z.B. "keY" and "kEY"), hebt der letztere Wert im Array andere Indices auf.

Zurück | Zum Anfang | Nach vorne
Array Funktionen | Nach oben | array_chunk


array_chunk

(PHP 4 >= 4.2.0, PHP 5)

array_chunk -- Splittet ein Array in Teile auf

Beschreibung

array array_chunk ( array input, int size [, bool preserve_keys])

array_chunk() teilt das Array in verschiedene Arrays mit size Werten auf. Am Ende kann auch ein Array mit weniger Werten erzeugt werden. Die Arrays werden als Teile eines mehrdimensionalen Arrays erzeugt, welches bei Null und beginnend numerisch indiziert ist.

Sie können PHP dazu zwingen, die originalen Schlüssel des Arrays input beizubehalten, indem Sie den optionalen Parameter preserve_keys auf TRUE setzen. Geben Sie FALSE an, werden in jedem erzeugten Array neue numerische Indizes erzeugt, welche bei Null beginnen. Default ist FALSE.

Beispiel 1. array_chunk()

<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, TRUE));
?>

wird folgendes ausgeben:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)

Zurück | Zum Anfang | Nach vorne
array_change_key_case | Nach oben | array_combine


array_combine

(PHP 5)

array_combine -- Creates an array by using one array for keys and another for its values

Description

array array_combine ( array keys, array values)

Returns an array by using the values from the keys array as keys and the values from the values array as the corresponding values.

Returns FALSE if the number of elements for each array isn't equal or if the arrays are empty.

Beispiel 1. A simple array_combine() example

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

Outputs:

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

See also array_merge(),
array_walk(), and
array_values().

Zurück | Zum Anfang | Nach vorne
array_chunk | Nach oben | array_count_values


array_count_values

(PHP 4 , PHP 5)

array_count_values -- Zählt die Werte eines Arrays

Beschreibung

array array_count_values ( array input)

array_count_values() gibt ein Array zurück, in dem die Werte des Arrays input als Schlüssel, und deren Anzahl als Werte angegeben sind.

Beispiel 1. array_count_values()

<?php
$array = array (1, "hello", 1, "world", "hello");
print_r(array_count_values ($array));
?>

Wird folgendes ausgeben:

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

Zurück | Zum Anfang | Nach vorne
array_combine | Nach oben | array_diff_assoc


array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_diff_assoc -- Computes the difference of arrays with additional index check

Description

array array_diff_assoc ( array array1, array array2 [, array ...])

array_diff_assoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff().

Beispiel 1. array_diff_assoc() example

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

The result is:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

In our example above you see the "a" => "green" pair is present in both arrays and thus it is not in the ouput from the function. Unlike this, the pair 0 => "red" is in the ouput because in the second argument "red" has key which is 1.

Two values from key => value pairs are considered equal only if (string) $elem1 === (string) $elem2 . In other words a strict check takes place so the string representations must be the same.

Anmerkung: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_diff_assoc($array1[0], $array2[0]);.

See also array_diff(),
array_intersect(),
and array_intersect_assoc().

Zurück | Zum Anfang | Nach vorne
array_count_values | Nach oben | array_diff_uassoc


array_diff_uassoc

(PHP 5)

array_diff_uassoc -- Computes the difference of arrays with additional index check which is performed by a user supplied callback function.

Description

array array_diff_assoc ( array array1, array array2 [, array ..., callback key_compare_func])

array_diff_uassoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff(). This comparison is done by a user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. This is unlike array_diff_assoc() where an internal function for comparing the indices is used.

Beispiel 1. array_diff_uassoc() example

<?php
function key_compare_func($a, $b)
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
?>

The result is:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

In our example above you see the "a" => "green" pair is present in both arrays and thus it is not in the ouput from the function. Unlike this, the pair 0 => "red" is in the ouput because in the second argument "red" has key which is 1.

The equality of 2 indices is checked by the user supplied callback function.

Anmerkung: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

See also
array_diff(),
array_diff_assoc(),
array_udiff(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Zurück | Zum Anfang | Nach vorne
array_diff_assoc | Nach oben | array_diff


array_diff

(PHP 4 >= 4.0.1, PHP 5)

array_diff -- Ermittelt die Unterschiede von Arrays

Beschreibung

array array_diff ( array array1, array array2 [, array ...])

array_diff() gibt ein Array mit allen Werten von array1, welche in keinem der anderen Argumente enthalten sind, zurück. Beachten Sie, dass Schlüssel erhalten bleiben.

Beispiel 1. array_diff()

$array1 = array ("a" => "grün", "rot", "blau", "rot");
$array2 = array ("b" => "grün", "gelb", "rot");
$result = array_diff ($array1, $array2);

Dies speichert array("blau"); in $result. Mehrfache Vorkommen in $array1 werden auf die gleiche Weise behandelt.

Anmerkung: Zwei Elemente werden nur dann als gleich angesehen, wenn (string) $elem1 === (string) $elem2. In Worten: Wenn die String-Repräsentation die gleiche ist.

Anmerkung: Beachten Sie, dass diese Funktion nur eine Dimension eines n-dimensionalen Arrays prüft. Natürlich können Sie tiefere Dimensionen prüfen, indem Sie z.B. array_diff($array1[0], $array2[0]); benutzen.

Warnung

Dies war in PHP 4.0.4 fehlerhaft!

Siehe auch array_diff_assoc(),
array_intersect() und
array_intersect_assoc().

Zurück | Zum Anfang | Nach vorne
array_diff_uassoc | Nach oben | array_fill


array_fill

(PHP 4 >= 4.2.0, PHP 5)

array_fill -- Füllt ein Array mit Werten

Beschreibung

array array_fill ( int start_index, int num, mixed value)

array_fill() füllt ein Array mit num Einträgen des Wertes des value Parameters. Die Indizes des Arrays beginnen mit dem start_index Parameter. Beachten Sie, dass num eine Zahl größer als Null sein muss, ansonsten gibt PHP eine Warnung aus.

Beispiel 1. array_fill()

<?php
$a = array_fill(5, 6, 'Banane');
print_r($a);
?>

Nun ist $a:

Array
(
    [5]  => Banane
    [6]  => Banane
    [7]  => Banane
    [8]  => Banane
    [9]  => Banane
    [10] => Banane
)

Zurück | Zum Anfang | Nach vorne
array_diff | Nach oben | array_filter


array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter -- Filtert Elemente eines Arrays mittels einer Callback-Funktion

Beschreibung

array array_filter ( array input [, callback function])

array_filter() übergibt nacheinander alle Werte in dem Array input and die callback Funktion. Gibt die callback Funktion true zurück, wird der aktuelle Wert von input in das Ergebnis-Array geschrieben. Die Schlüssel des Arrays bleiben erhalten.

Beispiel 1. array_filter()

<?php
function ungerade($var) {
    return ($var % 2 == 1);
}

function gerade($var) {
    return ($var % 2 == 0);
}

$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array (6, 7, 8, 9, 10, 11, 12);

echo "Ungerade :\n";
print_r(array_filter($array1, "ungerade"));
echo "Gerade:\n";
print_r(array_filter($array2, "gerade"));
?>

Wird folgendes ausgeben:

Ungerade :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Gerade:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Von der Benutzerfunktion aus darf das Array selbst nicht geändert werden, wie zum Beispiel durch Hinzufügen oder Löschen eines Elementes, oder auch Löschen des Arrays, auf das array_filter() angewendet wird. Ist das Array geändert, so ist das Verhalten dieser Funktion undefiniert.

Siehe auch array_map(), array_reduce() und array_walk().

Zurück | Zum Anfang | Nach vorne
array_fill | Nach oben | array_flip


array_flip

(PHP 4 , PHP 5)

array_flip -- Vertauscht Werte und Schlüssel in einem Array

Beschreibung

array array_flip ( array trans)

array_flip() gibt ein Array in umgekehrter Reihenfolge zurück, d.h. Schlüssel von trans werden Werte, und die Werte von trans werden zu Schlüsseln.

Beachten Sie, dass die Werte von trans gültige Schlüssel sein müssen, z.B. haben sie entweder integer oder string zu sein. Ist ein Wert vom falschen Typ wird eine Warnung ausgegeben, und das Schlüssel/Werte-Paar wird nicht vertauscht.

Kommt ein Wert mehrmals vor, wird der letzte Schlüssel mit seinem Wert vertauscht, und alle anderen Schlüssel- Wertepaare gehen verloren.

array_flip() gibt im Fehlerfall FALSE zurück.

Beispiel 1. array_flip()

<?php
$trans = array_flip ($trans);
$original = strtr ($str, $trans);
?>

Beispiel 2. array_flip(): Kollision

<?php
$trans = array ("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip ($trans);
print_r($trans);
?>

Nun ist $trans:

Array
(
    [1] => b
    [2] => c
)

Zurück | Zum Anfang | Nach vorne
array_filter | Nach oben | array_intersect_assoc


array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_intersect_assoc -- Computes the intersection of arrays with additional index check

Description

array array_intersect_assoc ( array array1, array array2 [, array ...])

array_intersect_assoc() returns an array containing all the values of array1 that are present in all the arguments. Note that the keys are used in the comparison unlike in array_intersect().

Beispiel 1. array_intersect_assoc() example

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result_array = array_intersect_assoc($array1, $array2);
?>

$result_array will look like:

Array
(
    [a] => green
)

In our example you see that only the pair "a" => "green" is present in both arrays and thus is returned. The value "red" is not returned because in $array1 its key is 0 while the key of "red" in $array2 is 1.

The two values from the key => value pairs are considered equal only if (string) $elem1 === (string) $elem2 . In otherwords a strict type check is executed so the string representation must be the same.

See also array_intersect(),
array_diff() and
array_diff_assoc().

Zurück | Zum Anfang | Nach vorne
array_flip | Nach oben | array_intersect


array_intersect

(PHP 4 >= 4.0.1, PHP 5)

array_intersect -- Ermittelt die Schnittmenge von Arrays

Beschreibung

array array_intersect ( array array1, array array2 [, array ...])

array_intersect() gibt ein Array mit allen Werten von array1, die auch in allen anderen Argumenten enthalten sind, zurück. Beachten Sie, dass die Schlüssel erhalten bleiben.

Beispiel 1. array_intersect() Beispiel

<?php
$array1 = array ("a" => "grün", "rot", "blau");
$array2 = array ("b" => "grün", "gelb", "rot");
$result = array_intersect ($array1, $array2);
?>

Danach enthält $result

Array
(
    [a] => grün
    [0] => rot
)

Anmerkung: Zwei Elemente werden nur dann als gleich angesehen, wenn (string) $elem1 === (string) $elem2. In Worten: Wenn die String-Repräsentation die gleiche ist.

Warnung

Dies war in PHP 4.0.4 fehlerhaft!

Siehe auch array_intersect_assoc(),
array_diff() und
array_diff_assoc().

Zurück | Zum Anfang | Nach vorne
array_intersect_assoc | Nach oben | array_key_exists


array_key_exists

(PHP 4 >= 4.1.0, PHP 5)

array_key_exists -- Prüft, ob ein Schlüssel in einem Array existiert

Beschreibung

bool array_key_exists ( mixed key, array search)

array_key_exists() gibt TRUE zurück, wenn key in dem Array vorhanden ist. key kann jeder für einen Array-Index mögliche Wert sein.

Beispiel 1. array_key_exists()

<?php
$search_array = array("erstes" => 1, "zweites" => 4);
if (array_key_exists("erstes", $search_array)) {
    echo "Das Element 'erstes' ist in dem Array vorhanden";
}
?>

Anmerkung: Der Name dieser Funktion ist in PHP 4.0.6 key_exists().

Siehe auch isset().

Zurück | Zum Anfang | Nach vorne
array_intersect | Nach oben | array_keys


array_keys

(PHP 4 , PHP 5)

array_keys -- Liefert alle Schlüssel eines Arrays

Beschreibung

array array_keys ( array input [, mixed search_value])

array_keys() gibt die Schlüssel (numerisch und String) des Arrays input zurück.

Ist der optionale Parameter search_value angegeben, werden nur die Schlüssel für diesen Wert zurückgegeben. Andernfalls werden all Schlüssel von input zurückgegeben.

Beispiel 1. array_keys()

<?php
$array = array (0 => 100, "Farbe" => "rot");
print_r(array_keys ($array));

$array = array ("blau", "rot", "grün", "blau", "blau");
print_r(array_keys ($array, "blau"));

$array = array ("Farbe" => array("blau", "rot", "grün"),
                "Größe" => array("klein", "mittel", "groß"));
print_r(array_keys ($array));
?>

würde folgendes ausgeben:

Array
(
    [0] => 0
    [1] => Farbe
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => Farbe
    [1] => Größe
)

Siehe auch array_values() und. array_key_exists().

Zurück | Zum Anfang | Nach vorne
array_key_exists | Nach oben | array_map


array_map

(PHP 4 >= 4.0.6, PHP 5)

array_map -- Wendet eine Callback-Funktion auf die Elemente von Arrays an

Beschreibung

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

array_map() gibt ein Array mit allen Elementen von arr1 zurück, nachdem die Callback-Funktion callback auf jedes einzelne Element angewandt wurde. Die Anzahl Parameter, welche die Callback-Funktion callback akzeptiert, sollte der Anzahl der an array_map() übergebenen Arrays entsprechen.

Beispiel 1. array_map()

<?php
function cube($n) {
    return $n*$n*$n;
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>

Dies speichert in $b:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Beispiel 2. array_map() - Verwendung mehrerer Arrays

<?php
function show_Spanish($n, $m) {
    return "Die Zahl $n heißt auf Spanisch  $m";
}

function map_Spanish($n, $m) {
    return array ($n => $m);
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>

Dies resultiert in:

// Ausgabe von $c
Array
(
    [0] => Die Zahl 1 heißt auf Spanisch  uno
    [1] => Die Zahl 2 heißt auf Spanisch  dos
    [2] => Die Zahl 3 heißt auf Spanisch  tres
    [3] => Die Zahl 4 heißt auf Spanisch  cuatro
    [4] => Die Zahl 5 heißt auf Spanisch  cinco
)

// Ausgabe von $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Bei Verwendung von zwei oder mehr Arrays sollten diese gewöhnlich die gleiche Länge besitzen, da die Callback-Funktion parallel auf die entsprechenden Elemente angewandt wird. Haben die Arrays unterschiedliche Längen, wird das kürzeste um leere Elemente erweitert.

Eine interessante Anwendung dieser Funktion ist die Konstruktion eines Arrays bestehend aus Arrays, was mit NULL als Name der Callback-Funktion leicht realisiert werden kann.

Beispiel 3. Erstellen eines Arrays mit Arrays

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("eins", "zwei", "drei", "vier", "fünf");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

Würde folgendes ausgeben:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => eins
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => zwei
            [2] => dos
        )

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

    [3] => Array
        (
            [0] => 4
            [1] => vier
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => fünf
            [2] => cinco
        )

)

Siehe auch array_filter(),
array_reduce() und
array_walk().

Zurück | Zum Anfang | Nach vorne
array_keys | Nach oben | array_merge_recursive


array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5)

array_merge_recursive -- Führt zwei oder mehr Arrays rekursiv zusammen

Beschreibung

array array_merge_recursive ( array array1, array array2 [, array ...])

array_merge_recursive() fügt die Elemente von zwei oder mehr Arrays zusammen, so dass die Werte des einen Arrays an die des vorigen angehängt werden. Das daraus resultierende Array wird zurückgegeben.

Haben die angegebenen Arrays die selben String-Schlüssel, dann wird der hintere Wert dieses Schlüssels den vorhergehenden überschreiben. Haben die Arrays den gleichen numerischen Schlüssel, dann wird der hintere Wert den vorhergehenden nicht überschreiben, sondern an den vorderen angehängt.

Beispiel 1. array_merge_recursive()

<?php
$ar1 = array ("farbe" => array ("favorit" => "rot"), 5);
$ar2 = array (10, "farbe" => array ("favorit" => "grün", "blau"));
$result = array_merge_recursive ($ar1, $ar2);
?>

The $result will be:

Array
(
    [farbe] => Array
        (
            [favorit] => Array
                (
                    [0] => rot
                    [1] => grün
                )

            [0] => blau
        )

    [0] => 5
    [1] => 10
)

See also array_merge().

Zurück | Zum Anfang | Nach vorne
array_map | Nach oben | array_merge


array_merge

(PHP 4 , PHP 5)

array_merge -- Führt zwei oder mehr Arrays zusammen

Beschreibung

array array_merge ( array array1, array array2 [, array ...])

array_merge() fügt die Elemente von zwei oder mehr Arrays zusammen, indem die Werte des einen an das Ende des anderen angehängt werden. Das daraus resultierende Array wird zurückgegeben.

Haben die angegebenen Arrays die selben String-Schlüssel, dann wird der hintere Wert dieses Schlüssels den vorhergehenden überschreiben. Haben die Arrays den gleichen numerischen Schlüssel, dann wird der hintere Wert den vorhergehenden nicht überschreiben, sondern angehängt.

Beispiel 1. array_merge()

<?php
$array1 = array ("farbe" => "rot", 2, 4);
$array2 = array ("a", "b", "farbe" => "grün", "form" => "trapezoid", 4);
$result = array_merge ($array1, $array2);
print_r($result);
?>

Nun ist $result:

Array
(
    [farbe] => grün
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [form] => trapezoid
    [4] => 4
)

Beispiel 2. Einfaches array_merge() Beispiel

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>

Vergessen Sie nicht, dass numerische Schlüssel neu numeriert werden!

Array
(
    [0] => data
)

Wenn Sie die Arrays komplett erhalten und nur eines an das andere anhängen wollen, verwenden Sie den Operator +:

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
?>

Der numerische Schlüssel sowie die Assoziation bleiben erhalten.

Array
(
    [1] => data
)

Anmerkung: Gemeinsame Schlüssel werden nach dem Prinzip "Wer zuerst kommt mahlt zuerst" behandelt.

Siehe auch array_merge_recursive().

Zurück | Zum Anfang | Nach vorne
array_merge_recursive | Nach oben | array_multisort


array_multisort

(PHP 4 , PHP 5)

array_multisort -- Sortiert mehrere oder multidimensionale Arrays

Beschreibung

bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]])

array_multisort() wird zum Sortieren von entweder mehreren Arrays auf einmal, oder eines multidimensionalen Arrays (entsprechend einer von mehreren Dimensionen) benutzt. Bei der Sortierung werden die Schlüsselassoziationen beibehalten.

Die angegebenen Arrays werden als Spalten einer Tabelle behandelt, welche nach Reihen sortiert werden - ähnlich der SQL Klausel ORDER BY. Das erste Array ist auch das erste in der Sortierreihenfolge. Die in diesem Array gleichen Zeilen (Werte) werden anhand des nächsten angegebenen Arrays sortiert, usw.

Die Struktur der Argumente ist etwas ungewöhnlich, aber flexibel. Das aller erste Argument muss ein Array sein. Die nachfolgenden Argumente können entweder ein Array oder eines der folgenden Sortierflags sein.

Flags für Sortierreihenfolge:

  • SORT_ASC - sortiere in aufsteigender Reihenfolge

  • SORT_DESC - sortiere in absteigender Reihenfolge

Flags für Sortiertypen:

  • SORT_REGULAR - vergleiche Felder normal

  • SORT_NUMERIC - vergleiche Felder numerisch

  • SORT_STRING - vergleiche Felder als Strings

Es kann nur ein Sortierflag des selben Typs nach jedem Array spezifiziert werden. Sortierflags nach einem Array Argument gelten nur für dieses Array, und werden vor jedem neuen Array Argument zu den Defaultflags SORT_ASC und SORT_REGULAR zurückgesetzt.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. Sortieren mehrerer Arrays

<?php
$ar1 = array ("10", 100, 100, "a");
$ar2 = array (1, 3, "2", 1);
array_multisort ($ar1, $ar2);
?>

In diesem Beispiel enthält das erste Array nach dem Sortieren 10, "a", 100, 100. Das zweite Array wird 1, 1, "2", 3 enthalten. Die Einträge des zweiten Arrays, welche den identischen Einträgen des ersten Arrays entsprechen (100 und 100) wurden ebenfalls sortiert.

Beispiel 2. Sortieren eines mehrdimensionalen Arrays

<?php
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
                 $ar[1], SORT_NUMERIC, SORT_DESC);
?>

In diesem Beispiel enthält das erste Array nach dem Sortieren 10, 100, 100, "a" (wurde als Strings in aufsteigender Reihenfolge sortiert), und das zweite enthält 1, 3, "2", 1 (numerisch und absteigender Reihenfolge sortiert).

Zurück | Zum Anfang | Nach vorne
array_merge | Nach oben | array_pad


array_pad

(PHP 4 , PHP 5)

array_pad -- Vergrößert ein Array auf die spezifizierte Länge mit einem Wert

Beschreibung

array array_pad ( array input, int pad_size, mixed pad_value)

array_pad() liefert eine Kopie von input, welche auf die von pad_size spezifizierte Größe mit dem Wert pad_value erweitert wurde. Ist der Parameter pad_size positiv, wird das Array rechts erweitert, ist er negativ, dann erfolgt die Erweiterung links. Ist der absolute Wert von pad_size kleiner oder gleich der Länge von input, erfolgt keine Erweiterung.

Beispiel 1. array_pad()

<?php
$input = array (12, 10, 9);

$result = array_pad ($input, 5, 0);
// Ergebnis ist array (12, 10, 9, 0, 0)

$result = array_pad ($input, -7, -1);
// Ergebnis ist array (-1, -1, -1, -1, 12, 10, 9)

$result = array_pad ($input, 2, "noop");
// nicht erweitert
?>

Zurück | Zum Anfang | Nach vorne
array_multisort | Nach oben | array_pop


array_pop

(PHP 4 , PHP 5)

array_pop -- Liefert das letzte Element eines Arrays

Beschreibung

mixed array_pop ( array array)

array_pop() liefert den letzten Wert von array, und verkürzt array um ein Element. Ist array leer (oder kein Array), wird NULL zurückgegeben.

Anmerkung: This function will reset() the array pointer after use.

Beispiel 1. array_pop()

<?php
$stack = array ("Orange", "Banane", "Apfel", "Himbeere");
$fruit = array_pop ($stack);
print_r($stack);
?>

Danach hat $stack nur 3 Elemente:

Array
(
    [0] => Orange
    [1] => Banane
    [2] => Apfel
)

und Himbeere wird $fruit zugewiesen.

Warnung

Diese Funktion kann das Boolsche FALSE zurückliefern, kann aber auch einen nicht-Boolschen Wert zurückgeben, der von einem einfachen if-Statement als FALSE ausgewertet wird, wie zum Beispiel 0 oder "". Weitere Informationen entnehmen Sie bitte dem Abschnitt über Boolsche Typen. Benutzen Sie deshalb bitte den === Operator um den Rückgabewert dieser Funktion zu überprüfen.

Siehe auch array_push(),
array_shift() und
array_unshift().

Zurück | Zum Anfang | Nach vorne
array_pad | Nach oben | array_push


array_push

(PHP 4 , PHP 5)

array_push -- Fügt ein oder mehr Elemente an das Ende eines Arrays

Beschreibung

int array_push ( array array, mixed var [, mixed ...])

array_push() behandelt array als Stapel (Stack), und fügt die übergebenen Variablen an das Ende von array. Die Länge von array wird dabei um die Anzahl der angefügten Variablen erhöht. Dies hat den selben Effekt wie:
<?php
$array[] = $var;
?>
für jede Variable var wiederholt.

Liefert die neue Anzahl Elemente des Arrays.

Beispiel 1. array_push()

<?php
$stack = array ("Orange", "Banane");
array_push ($stack, "Apfel", "Himbeere");
print_r($stack);
?>

Danach enthält $stack die folgenden Elemente:

Array
(
    [0] => Orange
    [1] => Banane
    [2] => Apfel
    [3] => Himbeere
)

Siehe auch array_pop(),
array_shift() und
array_unshift().

Zurück | Zum Anfang | Nach vorne
array_pop | Nach oben | array_rand


array_rand

(PHP 4 , PHP 5)

array_rand -- Liefert einen oder mehrere zufällige Einträge eines Arrays

Beschreibung

mixed array_rand ( array input [, int num_req])

array_rand() ist ziemlich nützlich, wenn Sie einen oder mehrere zufällige Einträge eines Arrays auswählen möchten. Die Funktion übernimmt das Array input, und ein optionales Argument num_req, welches die gewünschte Anzahl Einträge spezifiziert. Ist num_req nicht angegeben, wird ein Defaultwert von 1 angenommen.

Wenn Sie nur einen Eintrag auswählen, liefert array_rand() den Schlüssel eines zufälligen Eintrages. Andernfalls wird ein Array mit den Schlüsseln der zufälligen Einträge zurückgegeben. Dies hat den Zweck, dass Sie zufällige Schlüssel und auch Werte aus dem Array auswählen können.

Anmerkung: As of PHP 4.2.0, there is no need to seed the random number generator with srand() or mt_srand() as this is now done automatically.

Beispiel 1. array_rand()

<?php
srand ((float) microtime() * 10000000);
$input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand ($input, 2);
print $input[$rand_keys[0]]."\n";
print $input[$rand_keys[1]]."\n";
?>

Zurück | Zum Anfang | Nach vorne
array_push | Nach oben | array_reduce


array_reduce

(PHP 4 >= 4.0.5, PHP 5)

array_reduce -- Iterative Reduktion eines Arrays zu einem Wert mittels einer Callback Funktion

Beschreibung

mixed array_reduce ( array input, callback function [, int initial])

array_reduce() wendet die Funktion function iterativ bei den Elementen des Arrays input so an, dass das Array auf einen einzigen Wert reduziert wird. Ist der optionale Parameter intial angegeben, wird er am Beginn des Prozesses benutzt oder als Resultat verwendet, sollte das Array leer sein.

Beispiel 1. array_reduce()

<?php
function rsum($v, $w) {
    $v += $w;
    return $v;
}

function rmul($v, $w) {
    $v *= $w;
    return $v;
}

$a = array(1, 2, 3, 4, 5);
$x = array();
$b = array_reduce($a, "rsum");
$c = array_reduce($a, "rmul", 10);
$d = array_reduce($x, "rsum", 1);
?>

Hier enthält $b 15, $c 1200 (= 1*2*3*4*5*10), und $d enthält 1.

Siehe auch array_filter() und array_map().

Zurück | Zum Anfang | Nach vorne
array_rand | Nach oben | array_reverse


array_reverse

(PHP 4 , PHP 5)

array_reverse -- Liefert ein Array mit umgekehrter Reihenfolge der Elemente

Beschreibung

array array_reverse ( array array [, bool preserve_keys])

array_reverse() liefert ein Array mit der umgekehrten Reihenfolge der Elemente von array. Ist der optionale Parameter preserve_keys TRUE, bleibt die Reihenfolge der Schlüssel aufrecht.

Beispiel 1. array_reverse()

<?php
$input  = array ("php", 4.0, array ("grün", "rot"));
$result = array_reverse ($input);
$result_keyed = array_reverse ($input, TRUE);
?>

Danach haben $result und $result_keyed die gleichen Elemente, aber Beachten Sie den Unterschied zwischen den Schlüsseln. Die Ausgabe von $result und $result_keyed wird wie folgt aussehen:

Array
(
    [0] => Array
        (
            [0] => grün
            [1] => rot
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => grün
            [1] => rot
        )

    [1] => 4
    [0] => php
)

Anmerkung: Der zweite Parameter wurde in PHP 4.0.3 hinzugefügt.

Zurück | Zum Anfang | Nach vorne
array_reduce | Nach oben | array_search


array_search

(PHP 4 >= 4.0.5, PHP 5)

array_search -- Durchsucht ein Array nach einem Wert liefert bei Erfolg den Schlüssel

Beschreibung

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

Diese Funktion durchsucht haystack nach needle und gibt bei Erfolg den Schlüssel zurück, andernfalls FALSE.

Anmerkung: Vor PHP 4.2.0 gibt array_search() im Fehlerfall NULL statt FALSE zurück.

Ist der optionale dritte Parameter strict auf TRUE gesetzt, prüft array_search() auch die Typen von needle in haystack.

Warnung

Diese Funktion kann das Boolsche FALSE zurückliefern, kann aber auch einen nicht-Boolschen Wert zurückgeben, der von einem einfachen if-Statement als FALSE ausgewertet wird, wie zum Beispiel 0 oder "". Weitere Informationen entnehmen Sie bitte dem Abschnitt über Boolsche Typen. Benutzen Sie deshalb bitte den === Operator um den Rückgabewert dieser Funktion zu überprüfen.

Siehe auch array_keys() und in_array().

Zurück | Zum Anfang | Nach vorne
array_reverse | Nach oben | array_shift


array_shift

(PHP 4 , PHP 5)

array_shift -- Liefert ein Element vom Beginn eines Arrays

Beschreibung

mixed array_shift ( array array)

array_shift() liefert den ersten Wert von array, verschiebt die anderen Werte hinunter, und verkürzt array um ein Element. Alle numerischen Schlüssel werden so modifiziert, dass bei null zu zählen begonnen wird. Strings als Schlüssel bleiben unverändert. Ist array leer (oder kein Array), wird NULL zurückgegeben.

Anmerkung: This function will reset() the array pointer after use.

Beispiel 1. array_shift()

<?php
$stack = array ("Orange", "Banane", "Apfel", "Himbeere");
$fruit = array_shift ($stack);
print_r($stack);
?>

Danach blieben in $stack 3 Elemente übrig:

Array
(
    [0] => Banane
    [1] => Apfel
    [2] => Himbeere
)

und orange wird $fruit zugeordnet.

Siehe auch array_unshift(),
array_push() und
array_pop().

Zurück | Zum Anfang | Nach vorne
array_search | Nach oben | array_slice


array_slice

(PHP 4 , PHP 5)

array_slice -- Extrahiert einen Ausschnitt eines Arrays

Beschreibung

array array_slice ( array array, int offset [, int length])

array_slice() liefert die mittels offset und length spezifizierte Sequenz von Elementen des Arrays array

Ist offset positiv, beginnt die Sequenz bei diesem Offset in dem array. Ist offset negativ, beginnt die Sequenz offset Elemente vor dem Ende von array.

Ist length positiv, enthält die Sequenz genauso viele Elemente. Ist length negativ, enthält die Sequenz alle Elemente des Arrays von offset bis length Elemente vor dem Ende des Arrays. Ist length nicht angegeben, enthält die Sequenz alle Elemente von offset bis zum Ende von array.

Beachten Sie, dass array_slice() Schlüssel ignoriert, und Offsets sowie Längen anhand der aktuellen Positionen berechnet.

Beispiel 1. array_slice()

<?php
$input = array ("a", "b", "c", "d", "e");

$output = array_slice ($input, 2);      // liefert "c", "d", und "e"
$output = array_slice ($input, 2, -1);  // liefert "c", "d"
$output = array_slice ($input, -2, 1);  // liefert "d"
$output = array_slice ($input, 0, 3);   // liefert "a", "b", und "c"
?>

Siehe auch array_splice().

Zurück | Zum Anfang | Nach vorne
array_shift | Nach oben | array_splice


array_splice

(PHP 4 , PHP 5)

array_splice -- Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes

Beschreibung

array array_splice ( array input, int offset [, int length [, array replacement]])

array_splice() entfernt die durch offset und length angegebenen Elemente des Arrays input, und ersetzt diese durch die Elemente des Arrays replacement, wenn angegeben und gibt ein Array mit den entfernten Elemente zurück.

Ist offset positiv, beginnt der zu entfernende Bereich bei diesem Offset vom Anfang des Arrays input. Ist offset negativ, beginnt der zu entfernende Bereich offset Elemente vor dem Ende des Arrays input.

Ist length nicht angegeben, wird alles von offset bis zum Ende des Arrays entfernt. Ist length positiv, wird die angegebene Anzahl Elemente entfernt. Ist length negativ, dann wird der Bereich von length Elementen vor dem Ende, bis zum Ende des Arrays entfernt. Tipp: Um alles von offset bis zum Ende des Arrays zu entfernen wenn replacement ebenfalls angegeben ist, verwenden Sie count($input) als length.

Ist das Array replacement angegeben, werden die entfernten Elemente durch die Elemente dieses Arrays ersetzt. Sind offset und length so angegeben dass nichts entfernt wird, werden die Elemente von replacement an der von offset spezifizierten Stelle eingefügt. Tipp: Soll die Ersetzung durch nur ein Element erfolgen ist es nicht nötig ein Array zu anzugeben es sei denn, dieses Element ist selbst ein Array.

Hier einige Entsprechungen:

Tabelle 1. array_splice() equivalents

array_push($input, $x, $y) | array_splice($input, count($input), 0, array($x, $y))
array_pop($input) | array_splice($input, -1)
array_shift($input) | array_splice($input, -1)
array_unshift($input, $x, $y) | array_splice($input, 0, 0, array($x, $y))
$a[$x] = $y | array_splice($input, $x, 1, $y)

Gibt das Array mit den entfernten Elementen zurück.

Beispiel 1. array_splice()

<?php
$input = array ("rot", "grün", "blau", "gelb");
array_splice ($input, 2);
// $input ist nun array ("rot", "grün")

$input = array ("rot", "grün", "blau", "gelb");
array_splice ($input, 1, -1);
// $input ist nun array ("rot", "gelb")

$input = array ("rot", "grün", "blau", "gelb");
array_splice ($input, 1, count($input), "orange");
// $input ist nun array ("rot", "orange")

$input = array ("rot", "grün", "blau", "gelb");
array_splice ($input, -1, 1, array("schwarz", "braun"));
// $input ist nun array ("rot", "grün", "blau", "schwarz", "braun")
?>

Siehe auch array_slice().

Zurück | Zum Anfang | Nach vorne
array_slice | Nach oben | array_sum


array_sum

(PHP 4 >= 4.0.4, PHP 5)

array_sum -- Liefert die Summe der Werte in einem Array

Beschreibung

mixed array_sum ( array array)

array_sum() liefert die Summe der Werte eines Arrays als Integer oder Float.

Beispiel 1. array_sum()

<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = ".array_sum($a)."\n";

$b = array("a"=>1.2,"b"=>2.3,"c"=>3.4);
echo "sum(b) = ".array_sum($b)."\n";
?>

Obiges Programm wird folgendes ausgeben:

sum(a) = 20
sum(b) = 6.9

Anmerkung: PHP Versionen vor 4.2.1 haben das übergebene Array selbst modifiziert, und Strings in Zahlen konvertiert (welche abhängig von deren Wert meist zu null konvertiert wurden).

Zurück | Zum Anfang | Nach vorne
array_splice | Nach oben | array_udiff_assoc


array_udiff_assoc

(PHP 5)

array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.

Description

array array_udiff_assoc ( array array1, array array2 [, array ..., callback data_compare_func])

array_udiff_assoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff() and array_udiff(). The comparison of arrays' data is performed by using an user-supplied callback. In this aspect the behaviour is opposite to the behaviour of array_diff_assoc() which uses internal function for comparison.

Beispiel 1. array_udiff_assoc() example

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

The result is:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

In our example above you see the "1" => new cr(4) pair is present in both arrays and thus it is not in the ouput from the function.

For comparison is used the user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

Anmerkung: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_udiff_assoc($array1[0], $array2[0], "some_comparison_func");.

See also
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Zurück | Zum Anfang | Nach vorne
array_sum | Nach oben | array_udiff_uassoc


array_udiff_uassoc

(PHP 5)

array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

Description

array array_udiff_uassoc ( array array1, array array2 [, array ..., callback data_compare_func, callback key_compare_func])

array_udiff_uassoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff() and array_udiff(). The comparison of arrays' data is performed by using an user-supplied callback : data_compare_func. In this aspect the behaviour is opposite to the behaviour of array_diff_assoc() which uses internal function for comparison. The comparison of keys (indices) is done also by the callback function key_compare_func. This behaviour is unlike what array_udiff_assoc() does, since the latter compares the indices by using an internal function.

Beispiel 1. array_udiff_uassoc() example

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }

    function comp_func_key($a, $b)
    {
        if ($a === $b) return 0;
        return ($a > $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>

The result is:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

In our example above you see the "1" => new cr(4) pair is present in both arrays and thus it is not in the ouput from the function. Keep in mind that you have to supply 2 callback functions.

For comparison is used the user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

Anmerkung: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

See also
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_assoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Zurück | Zum Anfang | Nach vorne
array_udiff_assoc | Nach oben | array_udiff


array_udiff

(PHP 5)

array_udiff -- Computes the difference of arrays by using a callback function for data comparison.

Description

array array_udiff ( array array1, array array2 [, array ..., callback data_compare_func])

array_udiff() returns an array containing all the values of array1 that are not present in any of the other arguments. Note that keys are preserved. For the comparison of the data data_compare_func is used. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. This is unlike array_diff() which uses an internal function for comparing the data.

Beispiel 1. array_udiff() example

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

The result is:

Array
(
    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )

)

Anmerkung: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same.

Anmerkung: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using array_udiff($array1[0], $array2[0], "data_compare_func");.

See also
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Zurück | Zum Anfang | Nach vorne
array_udiff_uassoc | Nach oben | array_unique


array_unique

(PHP 4 >= 4.0.1, PHP 5)

array_unique -- Entfernt doppelte Werte aus einem Array

Beschreibung

array array_unique ( array array)

array_unique() nimmt array und gibt ein neues Array zurück, aus dem alle doppelten Einträge entfernt wurden.

Beachten Sie, dass Schlüssel bewahrt bleiben. Erst behandelt array_unique() die Werte als Strings und sortiert sie, danach wird der erste gefundene Schlüssel behalten, und alle folgenden Schlüssel ignoriert. Das heißt nicht, dass der Schlüssel des ersten zugehörigen Wertes aus dem unsortierten array behalten wird.

Anmerkung: Zwei Elemente werden nur dann als gleich angesehen, wenn (string) $elem1 === (string) $elem2. In Worten: Wenn die String-Repräsentation die gleiche ist.

Das erste Element wird verwendet.

Beispiel 1. array_unique() example

<?php
$input = array ("a" => "grün", "rot", "b" => "grün", "blau", "rot");
$result = array_unique ($input);
print_r($result);
?>

Dies wird folgendes ausgeben:

Array
(
    [a] => grün
    [0] => rot
    [1] => blau
)

Beispiel 2. array_unique() und Typen

<?php
$input = array (4,"4","3",4,3,"3");
$result = array_unique ($input);
var_dump($result);
?>

Dies wird folgendes ausgeben:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Zurück | Zum Anfang | Nach vorne
array_udiff | Nach oben | array_unshift


array_unshift

(PHP 4 , PHP 5)

array_unshift -- Fügt ein oder mehr Elemente am Anfang eines Arrays ein

Beschreibung

int array_unshift ( array array, mixed var [, mixed ...])

array_unshift() fügt die übergebenen Elemente am Anfang von array ein. Beachten Sie, dass die Liste von Elementen als Ganzes eingefügt wird, sodass die eingefügten Elemente die selbe Reihenfolge haben. Die numerischen Schlüssel werden so modifiziert, dass bei null zu zählen begonnen wird, Strings als Schlüssel bleiben unverändert.

Diese Funktion gibt die neue Anzahl der in array enthaltenen Elemente zurück.

Beispiel 1. array_unshift()

<?php
$queue = array ("Orange", "Banane");
array_unshift ($queue, "Apfel", "Himbeere");
?>

Als Ergebnis enthält $queue die folgenden Elemente:

Array
(
    [0] => Apfel
    [1] => Himbeere
    [2] => Orange
    [3] => Banane
)

Siehe auch array_shift(),
array_push() und
array_pop().

Zurück | Zum Anfang | Nach vorne
array_unique | Nach oben | array_values


array_values

(PHP 4 , PHP 5)

array_values -- Liefert alle Werte eines Arrays

Beschreibung

array array_values ( array input)

array_values() liefert alle Werte des Arrays input mit einem numerischen Index.

Beispiel 1. array_values()

<?php
$array = array ("größe" => "XL", "farbe" => "gold");
print_r(array_values ($array));
?>

Dies wird folgendes ausgeben:

Array
(
    [0] => XL
    [1] => gold
)

Siehe auch array_keys().

Zurück | Zum Anfang | Nach vorne
array_unshift | Nach oben | array_walk


array_walk

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

array_walk -- Wendet eine Benutzerfunktion an jedem Element eines Arrays an

Beschreibung

int array_walk ( array array, callback function [, mixed userdata])

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Wendet die mittels function angegebene Benutzerfunktion für jedes Element von array an. function benötigt zwei Parameter. Der Wert von array wird als erster übergeben, und der Schlüssel/Index als zweites. Ist der optionale Parameter userdata angegeben, so wird er als dritter Parameter an die Funktion function übergeben.

Sollte function mehr als die ihr übergebenen Parameter benötigen, wird bei jedem Aufruf von function seitens array_walk() eine Fehlermeldung der Stufe E_WARNING generiert. Diese Warnmeldungen können unterdrückt werden, indem man dem Funktionsaufruf von array_walk() den Operator @ voranstellt, oder error_reporting() verwendet.

Anmerkung: Wenn function direkt mit den Werten des Arrays arbeiten soll, spezifizieren Sie den ersten Parameter von function als Referenz. Dann werden alle Änderungen an diesen Elementen direkt in dem originalen Array durchgeführt.

Die Modifizierung des Arrays aus function heraus könnte ein unvorhersehbares Verhalten hervorrufen.

Anmerkung: Die Übergabe des Schlüssels und von userdata an function wurde mit PHP 4.0.0 eingeführt.

array_walk() ist nicht von dem internen Arrayzeiger von array betroffen. array_walk() geht ungeachtet der Zeigerposition das gesamte Array durch. Um den Zeiger zurückzusetzen, verwenden Sie reset(). In PHP 3 setzt array_walk() den Zeiger zurück.

Von der Benutzerfunktion aus darf das Array selbst nicht geändert werden, wie zum Beispiel durch Hinzufügen oder Löschen eines Elementes, etc. Wird das auf array_walk() angewendete Array geändert, so ist das Verhalten dieser Funktion undefiniert und unvorhersagbar.

Beispiel 1. array_walk()

<?php
$fruits = array ("d"=>"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel");

function test_alter (&$item1, $key, $prefix) {
    $item1 = "$prefix: $item1";
}

function test_print ($item2, $key) {
    echo "$key. $item2<br>\n";
}

echo "Vorher ...:\n";
array_walk ($fruits, 'test_print');

array_walk ($fruits, 'test_alter', 'Frucht');
echo "... und nachher:\n";

array_walk ($fruits, 'test_print');
?>

Das obige Programm wird folgendes ausgeben:

Vorher ...:
d. Zitrone
a. Orange
b. Banane
c. Apfel
... und nachher:
d. Frucht: Zitrone
a. Frucht: Orange
b. Frucht: Banane
c. Frucht: Apfel

Siehe auch list(), foreach, each() und call_user_func_array().

Zurück | Zum Anfang | Nach vorne
array_values | Nach oben | array


array

(PHP 3, PHP 4, PHP 5 )

array -- Erstellt ein Array

Beschreibung

array array ( [mixed ...])

Gibt ein den Parametern entsprechendes Array zurück. Mit dem => Operator können die Parameter indiziert werden. Weitere Informationen zu Arrays finden Sie im Abschnitt array type.

Anmerkung: array() ist keine richtige Funktion sondern ein Sprachkonstrukt, das zur Erzeugung eines Wertefeldes genutzt wird.

Die Syntax "Index => Werte", durch Kommas getrennt, definiert Index und Werte. Index kann vom Typ String oder numerisch sein. Wird der Index weggelassen, erstellt die Funktion automatisch einen numerischen Index, der bei 0 beginnt. Ist der Index als Integer-Wert angegeben, wird der nächste generierte Index der größte Integer Index + 1. Beachten Sie, dass wenn zwei identische Indexe definiert sind, der letzte den ersten überschreibt.

Das folgende Beispiel zeigt wie man ein zweidimensionales Array erstellt, wie man Schlüssel für assoziative Arrays festlegt, und wie man numerische Indizes in normalen Arrays überspringt und fortsetzt.

Beispiel 1. array()

<?php
$fruits = array (
    "Früchte" => array ("a"=>"Orange", "b"=>"Banane", "c"=>"Apfel"),
    "Zahlen"  => array (1, 2, 3, 4, 5, 6),
    "Löcher"  => array ("erstes", 5 => "zweites", "drittes")
);
?>

Beispiel 2. Automatischer Index mit array()

<?php
$array = array( 1, 1, 1, 1, 1, 8=>1, 4=>1, 19, 3=>13);
print_r($array);
?>

wird folgendes anzeigen:

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Beachten Sie, dass Index '3' doppelt definiert ist, und den letzten definierten Wert 13 behält. Index 4 wurde nach dem Index 8 definiert, und der nächste generierte Index (Wert 19) ist 9, da der größte Index 8 war.

Dieses Beispiel erstellt ein auf dem Index 1 basierendes Array.

Beispiel 3. 1-basierter Index mit array()

<?php
$erstesquartal  = array(1 => 'Januar', 'Februar', 'März');
print_r($erstesquartal);
?>

wird folgendes ausgeben:

Array
(
    [1] => Januar
    [2] => Februar
    [3] => März
)

Siehe auch array_pad(), list(), foreach und range().

Zurück | Zum Anfang | Nach vorne
array_walk | Nach oben | arsort


arsort

(PHP 3, PHP 4 , PHP 5)

arsort -- Sortiert ein Array in umgekehrter Reihenfolge und behält die Verbindung zum Index

Beschreibung

void arsort ( array array [, int sort_flags])

Diese Funktion sortiert ein Array so, dass der Zusammenhang zwischen den Indizes und den entsprechenden Arrayelementen erhalten bleibt. Dies wird hauptsächlich bei assoziativen Arrays verwendet, bei denen die aktuelle Reihenfolge der Elemente bedeutend ist.

Beispiel 1. arsort()

<?php
$fruits = array ("d"=>"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel");
arsort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key = $val\n";
}
?>

Dieses Beispiel würde folgendes ausgeben:

d = Zitrone
a = Orange
b = Banane
c = Apfel

Die Früchte wurden in umgekehrter alphabetischer Reihenfolge sortiert, und die Zuordnung zwischen Index und Element blieb beibehalten.

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Siehe auch asort(),
rsort(), ksort() und
sort().

Zurück | Zum Anfang | Nach vorne
array | Nach oben | asort


asort

(PHP 3, PHP 4 , PHP 5)

asort -- Sortiert ein Array und behält die Indexverbindungen

Beschreibung

void asort ( array array [, int sort_flags])

Diese Funktion sortiert ein Array so, dass der Zusammenhang zwischen den Indizes und den entsprechenden Arrayelementen erhalten bleibt. Dies wird hauptsächlich bei assoziativen Arrays verwendet, bei denen die aktuelle Reihenfolge der Elemente bedeutend ist.

Beispiel 1. asort()

<?php
$fruits = array ("d"=>"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel");
asort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key = $val\n";
}
?>

Dieses Beispiel würde folgendes ausgeben:

c = Apfel
b = Banane
a = Orange
d = Zitrone

Die Früchte wurden alphabetisch sortiert, und die Zuordnung zwischen Index und Element blieb beibehalten

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Siehe auch arsort(),
rsort(), ksort() und
sort().

Zurück | Zum Anfang | Nach vorne
arsort | Nach oben | compact


compact

(PHP 4 , PHP 5)

compact -- Erstellt ein Array mit Variablen und deren Werten

Beschreibung

array compact ( mixed varname [, mixed ...])

compact() übernimmt eine variable Anzahl von Parametern. Jeder Parameter kann entweder ein String mit einem Variablennamen, oder ein Array mit Variablennamen sein. Dieses Array kann auch andere Arrays mit Variablennamen enthalten; compact() behandelt sie rekursiv.

Für alle diese sucht compact() nach einer Variablen in der aktuellen Symboltabelle, und fügt diese dem zurückzugebenden Array hinzu, wobei der Variablenname als Schlüssel, und der Inhalt der Variablen als Wert gespeichert wird. Kurz, diese Funktion tut das Gegenteil von extract(). Sie gibt ein Array mit allen Variablen zurück.

Strings, welche nicht gesetzt sind, werden einfach ignoriert.

Beispiel 1. compact()

<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array ("city", "state");

$result = compact ("event", "nothing_here", $location_vars);
?>

Danach wird $result:

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

Siehe auch extract().

Zurück | Zum Anfang | Nach vorne
asort | Nach oben | count


count

(PHP 3, PHP 4 , PHP 5)

count -- Zählt die Elemente einer Variable

Beschreibung

int count ( mixed var)

Liefert die Anzahl von Elementen in var, welche typischerweise ein Array ist (da alles andere ein Element enthält).

Ist var kein Array, wird 1 zurückgegeben (Ausnahme: count(NULL) ist gleich 0).

Warnung

count() kann 0 zurückgeben wenn die Variable nicht gesetzt ist, aber sie könnte ebenfalls 0 zurückgeben, wenn eine Variable als leeres Array initialisiert wurde. Verwenden Sie isset() um zu testen, ob eine Variable gesetzt ist.

In der Sektion Arrays finden Sie eine detaillierte Erklärung, wie Arrays in PHP implementiert sind und wie sie benutzt werden.

Beispiel 1. count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count ($a);
//$result == 3

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count ($b);
// $result == 3;
?>

Anmerkung: Die Funktion sizeof() ist ein Alias für count().

Siehe auch is_array(),
isset() und
strlen().

Zurück | Zum Anfang | Nach vorne
compact | Nach oben | current


current

(PHP 3, PHP 4 , PHP 5)

current -- Liefert das aktuelle Element eines Arrays

Beschreibung

mixed current ( array array)

Jedes Array hat einen internen Zeiger auf sein "aktuelles" Element, welcher auf das erste in das Array eingefügte Element initialisiert wird.

Die Funktion current() liefert das Array Element, auf das gerade vom internen Zeiger gezeigt wird. Sie bewegt den Zeiger in keinster Weise. Zeigt der interne Zeiger hinter das Ende der Elementenliste, gibt current() FALSE zurück.

Warnung

Enthält das Array leere Elemente (0 oder "", den leeren String), gibt diese Funktion auch für diese Elemente FALSE zurück. Das macht es unmöglich, unter Verwendung von current() herauszufinden, ob das wirklich am Ende der Liste sind. Um ein Array, das leere Elemente enthalten könnte richtig durchzugehen, verwenden Sie die Funktion each().

Siehe auch end(), key(),
next(), prev() und
reset().

Zurück | Zum Anfang | Nach vorne
count | Nach oben | each


each

(PHP 3, PHP 4 , PHP 5)

each -- Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Array Cursor vor.

Beschreibung

array each ( array array)

Liefert das aktuelle Schlüssel- Wertepaar des Arrays array, und erhöht den Array Cursor. Dieses Paar wird als Array mit 4 Elementen zurückgegeben, und zwar mit den Schlüsseln 0, 1, key, und value. Die Elemente 0 und key enthalten den Namen des Schlüssels, 1 und value den Wert.

Zeigt der interne Zeiger hinter das Ende der Array-Inhalte, gibt each() FALSE zurück.

Beispiel 1. each() Beispiele

<?php
$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each ($foo);
print_r($bar);
?>

$bar enthält nun die folgenden Schlüssel/Wert Paare:

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)

<?php
$foo = array ("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each ($foo);
print_r($bar);
?>

$bar enthält nun die folgenden Schlüssel/Wert Paare:

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

each() wird typischerweise in Verbindung mit list() verwendet, um ein Array durchzugehen:

Beispiel 2. Durchgehen eines Arrays mit each()

<?php
$fruit = array('a' => 'Apfel', 'b' => 'Banane', 'c' => 'Preiselbeere');

reset ($fruit);
while (list ($key, $val) = each ($fruit)) {
    echo "$key => $val\n";
}

/* Ausgabe:

a => Apfel
b => Banane
c => Preiselbeere

*/
?>

Nachdem each() ausgeführt wurde, bleibt der Array Cursor beim nächsten Element des Arrays, oder wenn am Ende des Arrays angelangt, nach dem letzten Element. Sie müssen reset() verwenden, wenn Sie das Array erneut mittels each durchgehen wollen.

Achtung

Da die Zuweisung eines Arrays zu einer anderen Variable den originalen Arrayzeiger zurücksetzt, würde unser obiges Beispiel in eine Endlosschleife geraten, hätten wir $fruit innerhalb der Schleife einer anderen Variable zugeordnet.

Siehe auch key(), list(),
current(), reset(),
next(), prev() und
foreach.

Zurück | Zum Anfang | Nach vorne
current | Nach oben | end


end

(PHP 3, PHP 4 , PHP 5)

end -- Positioniert den internen Zeiger eines Arrays auf dessen letztes Element

Beschreibung

mixed end ( array array)

end() rückt den internen Zeiger von array bis zum letzten Element vor, und gibt dieses Element zurück.

Beispiel 1. Ein einfaches end() Beispiel

<?php

  $fruits = array('apple','banana','cranberry');

  print end($fruits); // cranberry

?>

Siehe auch current(),
each(),
next() und reset().

Zurück | Zum Anfang | Nach vorne
each | Nach oben | extract


extract

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

extract -- Importiert Variablen eines Arrays in die aktuelle Symboltabelle

Beschreibung

int extract ( array var_array [, int extract_type [, string prefix]])

Diese Funktion wird verwendet, um Variablen eines Arrays in die aktuelle Symboltabelle zu importieren. Es behandelt die Schlüssel des assoziativen Arrays var_array als Variablennamen, und die Werte als Variablenwerte. Für jedes Paar Schlüssel/Wert wird - abhängig von den Parametern extract_type und prefix - eine Variable in der aktuellen Symboltabelle eingetragen.

Anmerkung: Seit Version 4.0.5 gibt diese Funktion die Anzahl der extrahierten Variablen zurück.

Anmerkung: EXTR_IF_EXISTS und EXTR_PREFIX_IF_EXISTS wurden in Version 4.2.0. eingeführt.

Anmerkung: EXTR_REFS wurde in Version 4.3.0 eingeführt.

extract() prüft jeden Schlüssel, ob dieser einen gültigen Variablennamen ergibt, und auch auf eventuelle Kollisionen mit existierenden Variablen in der Symboltabelle. Die Art, wie ungültige/numerische Schlüssel und Kollisionen behandelt werden, wird mit extract_type spezifiziert. Es kann einen der folgenden Werte annehmen:

EXTR_OVERWRITE

Im Falle einer Kollision wird die existierende Variable überschrieben.

EXTR_SKIP

Im Falle einer Kollision wird die existierende Variable nicht überschrieben.

EXTR_PREFIX_SAME

Im Falle einer Kollision wird dem Variablennamen prefix vorangestellt.

EXTR_PREFIX_ALL

Allen Variablennamen wird prefix vorangestellt. Seit PHP 4.0.5 gilt dies auch für numerische Variablen.

EXTR_PREFIX_INVALID

Nur ungültigen/numerischen Variablennamen wird prefix vorangestellt. Dieser Flag wurde mit PHP 4.0.5 eingeführt.

EXTR_IF_EXISTS

Überschreibt die Variable nur, wenn sie bereits in der aktuellen Symboltabelle existiert, sonst geschieht nichts. Dies ist dann hilfreich, wenn Sie eine Liste mit gültigen Variablen definieren, und dann z.B. nur jene Variablen extrahieren, welche Sie aus $_REQUEST definiert haben. Dieser Flag wurde in PHP 4.2.0 eingeführt.

EXTR_PREFIX_IF_EXISTS

Erstellt nur Variablennamen mit Präfix, wenn die Version ohne Präfix der selben Variable in der aktuellen Symboltabelle existiert. Dieser Flag wurde in PHP 4.2.0 eingeführt.

EXTR_REFS

Extrahiert Variablen als Referenzen. Das heißt, dass die Werte der importierten Variablen noch immer auf die Werte des Parameters var_array referenzieren. Sie können diesen Flag alleine oder auch in Kombination mit einem anderen Flag verwenden, indem Sie Oder-Verknüpfungen im extract_type erstellen. Dieser Flag wurde in PHP 4.3.0 eingeführt.

Ist extract_type nicht spezifiziert, so wird EXTR_OVERWRITE angenommen.

Beachten Sie, dass prefix nur dann nötig ist, wenn extract_type EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID or EXTR_PREFIX_IF_EXISTS ist. Ist das Resultat trotz Präfix kein gültiger Variablenname, wird es nicht in die Symboltabelle importiert.

extract() gibt die Anzahl erfolgreich in die Symboltabelle importierter Variablen zurück.

Eine mögliche Verwendung für extract() ist der Import der Variablen in einem von wddx_deserialize() gelieferten assoziativen Array in die Symboltabelle.

Beispiel 1. extract()

<?php

/* Annahme: $var_array ist ein von wddx_deserialize
   zurückgegebenes Array */

$groesse = "groß";
$var_array = array ("farbe"   => "blau",
                    "groesse" => "mittel",
                    "form"    => "Kugel");
extract ($var_array, EXTR_PREFIX_SAME, "wddx");

print "$farbe, $groesse, $form, $wddx_groesse\n";

?>

Das obige Beispiel wird folgendes ausgeben:

blau, groß, Kugel, mittel

$size wurde nicht überschrieben, da wir EXTR_PREFIX_SAME spezifiziert haben, was im Anlegen von $wddx_size endete. Wäre EXTR_SKIP spezifiziert worden, dann wäre $wddx_size nicht angelegt worden. EXTR_OVERWRITE hätte $size mit dem Wert "medium" überschrieben, und EXTR_PREFIX_ALL hätte die neuen Variablen $wddx_color, $wddx_size, und $wddx_shape angelegt.

Sie müssen assoziative Arrays benutzen, numerisch indizierte Arrays liefern keine Resultate, außer Sie verwenden EXTR_PREFIX_ALL oder EXTR_PREFIX_INVALID.

Siehe auch compact().

Zurück | Zum Anfang | Nach vorne
end | Nach oben | in_array


in_array

(PHP 4 , PHP 5)

in_array -- Prüft, ob ein Wert in einem Array existiert

Beschreibung

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

Diese Funktion sucht in haystack nach needle und gibt bei Erfolg TRUE zurück, andernfalls FALSE.

Ist der dritte Parameter strict auf TRUE gesetzt, prüft in_array() auch die Typen von needle in haystack.

Anmerkung: Ist needle ein String, erfolgt der Vergleich unter Berücksichtigung der Groß- und Kleinschreibung.

Anmerkung: In den PHP Versionen vor 4.2.0 durfte needle kein Array sein

Beispiel 1. in_array()

<?php
$os = array ("Mac", "NT", "Irix", "Linux");
if (in_array ("Irix", $os)) {
    print "Got Irix";
}
if (in_array ("mac", $os)) {
    print "Got mac";
}
?>

Die zweite Bedingung schlägt fehl, da in_array() die Groß-/Kleinschreibung berücksichtigt, daher wird das obige Programm folgendes ausgeben:

Got Irix

Beispiel 2. in_array() mit strict

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, TRUE)) {
    echo "'12.4' gefunden mit strict check\n";
}
if (in_array(1.13, $a, TRUE)) {
    echo "1.13 gefunden mit strict check\n";
}
?>

Dies wird folgendes anzeigen:

1.13 gefunden mit strict check

Beispiel 3. in_array() mit einem Array als needle

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array ('p', 'h'), $a)) {
    echo "'ph' wurde gefunden\n";
}
if (in_array(array ('f', 'i'), $a)) {
    echo "'fi' wurde nicht gefunden\n";
}
if (in_array('o', $a)) {
    echo "'o' wurde gefunden\n";
}
?>

/* Ausgabe:

  'ph' wurde gefunden
  'o' wurde gefunden
*/

Siehe auch array_search().

Zurück | Zum Anfang | Nach vorne
extract | Nach oben | key


key

(PHP 3, PHP 4 , PHP 5)

key -- Liefert einen Schlüssel eines assoziativen Arrays

Beschreibung

mixed key ( array array)

key() liefert das Index Element der aktuellen Position im Array.

Siehe auch current() und next().

Zurück | Zum Anfang | Nach vorne
in_array | Nach oben | krsort


krsort

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

krsort -- Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge

Beschreibung

int krsort ( array array [, int sort_flags])

Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge, wobei die Zuordnungen zwischen Schlüssel und Wert erhalten bleiben. Dies ist hauptsächlich bei assoziativen Arrays hilfreich.

Beispiel 1. krsort()

<?php
$fruits = array ("d"=>"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel");
krsort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key = $val\n";
}
?>

Dieses Beispiel würde folgendes ausgeben:

d = Zitrone
c = Apfel
b = Banane
a = Orange

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Siehe auch asort(), arsort(),
ksort(), sort(),
natsort() und rsort().

Zurück | Zum Anfang | Nach vorne
key | Nach oben | ksort


ksort

(PHP 3, PHP 4 , PHP 5)

ksort -- Sortiert ein Array nach Schlüsseln

Beschreibung

int ksort ( array array [, int sort_flags])

Sortiert ein Array nach Schlüsseln, wobei die Zuordnungen zwischen Schlüssel und Wert erhalten bleiben. Dies ist hauptsächlich bei assoziativen Arrays hilfreich.

Beispiel 1. ksort()

<?php
$fruits = array ("d"=>"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel");
ksort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key = $val\n";
}
?>

Dieses Beispiel würde folgendes ausgeben:

a = Orange
b = Banane
c = Apfel
d = Zitrone

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Siehe auch asort(), arsort(),
krsort(), uksort(),
sort(), natsort() und
rsort().

Anmerkung: Der zweite Parameter wurde mit PHP 4 eingeführt.

Zurück | Zum Anfang | Nach vorne
krsort | Nach oben | list


list

(PHP 3, PHP 4, PHP 5 )

list -- Weist Variablen zu, als wären sie ein Array

Beschreibung

void list ( mixed ...)

Wie array() ist auch dies keine wirkliche Funktion, sondern ein Sprachkonstrukt. list() wird verwendet, um eine Liste von Variablen innerhalb einer Operation zuzuweisen.

Anmerkung: list() funktioniert nur bei numerischen Arrays und basiert auf der Annahme, dass die numerischen Indizes bei 0 beginnen.

Beispiel 1. list()

<?php

$info = array('coffee', 'brown', 'caffeine');

// Auflisten aller Variablen
list($drink, $color, $power) = $info;
print "$drink is $color and $power makes it special.\n";

// Ein paar davon auflisten
list($drink, , $power) = $info;
print "$drink has $power.\n";

// Oder nur die dritte ausgeben
list( , , $power) = $info;
print "I need $power!\n";

?>

Beispiel 2. list()

<table>
<tr>
  <th>Mitarbeitername</th>
  <th>Gehalt</th>
</tr>

<?php

$result = mysql_query ("SELECT id, name, salary FROM employees",$conn);
while (list ($id, $name, $salary) = mysql_fetch_row ($result)) {
    print (" <tr>\n".
           "  <td><a href=\"info.php?id=$id\">$name</a></td>\n".
           "  <td>$salary</td>\n".
           " </tr>\n");
}

?>

</table>

Warnung

list() weist die Werte von rechts beginnend zu. Wenn Sie einfache Variablen benutzen, brauchen Sie sich nicht darum zu kümmern. Wenn Sie jedoch Arrays mit Indizes verwenden, erwarten Sie gewöhnlich die Reihenfolge der Indizes in dem Array genau so, wie Sie sie in list() geschrieben haben (von links nach rechts), was jedoch nicht der Fall ist. Es wird in der umgekehrten Reihenfolge zugewiesen.

Beispiel 3. list() mit Array Indizes verwenden

<?php

$info = array('coffee', 'brown', 'caffeine');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

Die Ausgabe (Beachten Sie die Reihenfolge der Elemente, verglichen mit der in list() eingetragenen Reihenfolge):

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

Siehe auch each(), array() und extract().

Zurück | Zum Anfang | Nach vorne
ksort | Nach oben | natcasesort


natcasesort

(PHP 4 , PHP 5)

natcasesort -- Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert

Beschreibung

void natcasesort ( array array)

Diese Funktion implementiert einen Sortieralgorithmus, welcher alphanumerische Zeichenketten reiht, wie es auch ein Mensch tun würde. Das wird als "natürliche Reihenfolge" bezeichnet.

natcasesort() arbeitet wie natsort(), nur dass es die Groß/Kleinschreibung ignoriert. Ein Beispiel für den Unterschied zwischen diesem und dem normalen Sortieralgorithmus für Strings eines Computers finden Sie in natsort().

Detailliertere Informationen finden Sie auf Martin Pool's Natural Order String Comparison Seite.

Siehe auch sort(),
natsort(),
strnatcmp() und
strnatcasecmp().

Zurück | Zum Anfang | Nach vorne
list | Nach oben | natsort


natsort

(PHP 4 , PHP 5)

natsort -- Sortiert ein Array in "natürlicher Reihenfolge"

Beschreibung

void natsort ( array array)

Diese Funktion implementiert einen Sortieralgorithmus, welcher alphanumerische Zeichenketten reiht, wie es auch ein Mensch tun würde. Hier ein Beispiel für den Unterschied zwischen diesem und dem normalen Sortieralgorithmus für Strings eines Computers (verwendet in sort()):

Beispiel 1. natsort()

<?php
$array1 = $array2 = array ("img12.png", "img10.png", "img2.png", "img1.png");
sort ($array1);
echo "Standardsortierung\n";
print_r ($array1);

natsort ($array2);
echo "\nSortieren mit natürlicher Reihenfolge\n";
print_r ($array2);
?>

Der obige Code wird folgendes anzeigen:

Standardsortierung
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Sortieren mit natürlicher Reihenfolge
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Detailliertere Informationen finden Sie auf Martin Pool's Natural Order String Comparison Seite.

Anmerkung: Wenn Sie die Index/Wert Assoziationen beibehalten wollen, denken Sie an die Verwendung von uasort($arr, 'strnatcmp').

Siehe auch natcasesort(),
strnatcmp() und
strnatcasecmp().

Zurück | Zum Anfang | Nach vorne
natcasesort | Nach oben | next


next

(PHP 3, PHP 4 , PHP 5)

next -- Rückt den internen Zeiger eines Arrays vor

Beschreibung

mixed next ( array array)

Diese Funktion gibt das nächste Element des Arrays zurück, auf das der interne Zeiger des Arrays gerade zeigt. Sind keine Elemente mehr vorhanden, wird FALSE zurückgegeben.

next() verhält sich ähnlich wie current(), mit einem Unterschied. Der interne Zeiger wird um ein Element vorgerückt, bevor das Element zurückgegeben wird, d.h. es wird das nächste Element zurückgegeben, und der interne Zeiger um eins erhöht. Zeigt der interne Zeiger hinter das Ende der Elementliste, wird FALSE zurückgegeben.

Warnung

Enthält das Array leere Elemente oder Elemente mit dem Schlüssel 0, wird für diese Elemente ebenfalls FALSE zurückgegeben. Um ein Array, das leere Elemente oder Elemente mit dem Schlüssel 0 enthalten könnte richtig durchzugehen, verwenden Sie die Funktion each().

Siehe auch current(),
end(), prev() und
reset().

Zurück | Zum Anfang | Nach vorne
natsort | Nach oben | pos


pos

(PHP 3, PHP 4 , PHP 5)

pos -- Liefert das aktuelle Element eines Arrays

Beschreibung

mixed pos ( array array)

Dies ist nur ein Alias für die Funktion current().

Siehe auch end(), next(), prev() und reset().

Zurück | Zum Anfang | Nach vorne
next | Nach oben | prev


prev

(PHP 3, PHP 4 , PHP 5)

prev -- Verkleinert den internen Zeiger eines Arrays

Beschreibung

mixed prev ( array array)

Liefert das Element vor der Position des Arrays, auf die der interne Zeiger gerade zeigt. Sind keine Elemente mehr vorhanden, wird FALSE zurückgegeben.

Warnung

Enthält das Array leere Elemente, wird für diese ebenfalls FALSE zurückgegeben. Um ein Array mit leeren Elementen richtig durchzugehen, verwenden Sie die Funktion each().

prev() verhält sich wie next(), nur dass hier der interne Zeiger um eine Position zurück, und nicht nach vorne gerückt wird.

Siehe auch current(),
end(), next() und
reset().

Zurück | Zum Anfang | Nach vorne
pos | Nach oben | range


range

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

range -- Erstellt ein Array mit einem Bereich von Elementen

Beschreibung

array range ( int low, int high [, int step])

range() gibt ein Array mit Elementen im Bereich von low bis high zurück. Wenn low > high, wird die Sequenz von high nach low sein.

Neuer Parameter: Der optionale Parameter step wurde in 5.0.0 eingeführt.

Ist ein step Wert angegeben, wird es Schrittweite zwischen den Elementen in der Sequenz verwendet. step sollte als positive Zahl angegeben werden. Ist step nicht angegeben, wird automatisch der Wert 1 angenommen.

Beispiel 1. range()

<?php
// array(0,1,2,3,4,5,6,7,8,9,10,11,12)
foreach(range(0, 12) as $number) {
    echo $number;
}

// Der Parameter step wurde in PHP 5.0.0 eingeführt
// array(0,10,20,30,40,50,60,70,80,90,100)
foreach(range(0, 100, 10) as $number) {
    echo $number;
}

// Die Verwendung von Zeichenfolgen wurde in 4.1.0 eingeführt
// array('a','b','c','d','e','f','g','h','i');
foreach(range('a', 'i') as $letter) {
    echo $letter;
}
// array('c','b','a');
foreach(range('c', 'a') as $letter) {
    echo $letter;
}
?>

Anmerkung: Vor der Version 4.1.0 hat die Funktion range() nur aufsteigende Integer Arrays erstellt. Die Unterstützung für Zeichenfolgen und Arrays in absteigender Reihenfolge wurde in 4.1.0 hinzugefügt. Werte mit Zeichenfolgen sind auf eine Länge von 1 limitiert. Wird eine Länge größer als 1 eingegeben, wird nur das erste Zeichen verwendet.

Achtung

In den PHP Versionen 4.1.0 bis 4.3.2 werden numerische Zeichenfolgen von range() als Strings, und nicht als integer gesehen. Stattdessen werden diese für Zeichenfolgen genutzt, z.B. wird "4242" als "4" betrachtet.

Siehe auch shuffle() und foreach.

Zurück | Zum Anfang | Nach vorne
prev | Nach oben | reset


reset

(PHP 3, PHP 4 , PHP 5)

reset -- Setzt den internen Zeiger eines Arrays auf sein erstes Element

Beschreibung

mixed reset ( array array)

reset() setzt den internen Zeiger von array auf das erste Element, und gibt den Wert des ersten Arrayelements zurück.

Siehe auch current(),
each(), next() und
prev().

Zurück | Zum Anfang | Nach vorne
range | Nach oben | rsort


rsort

(PHP 3, PHP 4 , PHP 5)

rsort -- Sortiert ein Array in umgekehrter Reihenfolge

Beschreibung

void rsort ( array array [, int sort_flags])

Diese Funktion sortiert ein Array in umgekehrter Reihenfolge (vom höchsten zum niedrigsten Wert).

Beispiel 1. rsort()

<?php
$fruits = array ("Zitrone", "Orange", "Banane", "Apfel");
rsort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key = $val\n";
}
?>

Dieses Beispiel würde folgendes ausgeben:

0 = Zitrone
1 = Orange
2 = Banane
3 = Apfel

Die Früchte wurden in umgekehrter alphabetischer Reihenfolge sortiert.

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Siehe auch arsort(),
asort(), ksort(),
sort() und usort().

Zurück | Zum Anfang | Nach vorne
reset | Nach oben | shuffle


shuffle

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

shuffle -- Mischt die Elemente eines Arrays

Beschreibung

void shuffle ( array array)

Diese Funktion mischt die Reihenfolge der Elemente eines Arrays zufällig (shuffle). Benutzen Sie srand(), um den Startwert für den Zufallsgenerator festzulegen.

Beispiel 1. shuffle()

<?php
$numbers = range (1,20);
srand ((float)microtime()*1000000);
shuffle ($numbers);
while (list (, $number) = each ($numbers)) {
    echo "$number ";
}
?>

Anmerkung: As of PHP 4.2.0, there is no need to seed the random number generator with srand() or mt_srand() as this is now done automatically.

Siehe auch arsort(),
asort(), ksort(),
rsort(), sort() und
usort().

Zurück | Zum Anfang | Nach vorne
rsort | Nach oben | sizeof


sizeof

sizeof -- Alias für count()

Beschreibung

Diese Funktion ist ein Alias für count().

Zurück | Zum Anfang | Nach vorne
shuffle | Nach oben | sort


sort

(PHP 3, PHP 4 , PHP 5)

sort -- Sortiert ein Array

Beschreibung

void sort ( array array [, int sort_flags])

Diese Funktion sortiert ein Array. Die Elemente werden aufsteigend vom niedrigsten zum höchsten Wert sortiert.

Beispiel 1. sort()

<?php

$fruits = array ("Zitrone", "Orange", "Banane", "Apfel");
sort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "fruits[".$key."] = ".$val."\n";
}

?>

Dieses Beispiel würde folgendes anzeigen:

fruits[0] = Apfel
fruits[1] = Banane
fruits[2] = Orange
fruits[3] = Zitrone

Die Früchte wurden in alphabetischer Reihenfolge sortiert.

Der optionale zweite Parameter sort_flags kann benutzt werden, um das Sortierverhalten mit den folgenden Flags zu beeinflussen.

Flags für Sortiertypen:

  • SORT_REGULAR - Vergleiche Einträge normal

  • SORT_NUMERIC - Vergleiche Einträge numerisch

  • SORT_STRING - Vergleiche Einträge als Strings

Anmerkung: Der zweite Parameter wurde in PHP 4 eingeführt.

Siehe auch arsort(),
asort(), ksort(),
natsort(), natcasesort(),
rsort(), usort(),
array_multisort() und
uksort().

Zurück | Zum Anfang | Nach vorne
sizeof | Nach oben | uasort


uasort

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

uasort -- Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei.

Beschreibung

void uasort ( array array, callback cmp_function)

Diese Funktion sortiert ein Array so, dass die Beziehung der Indices zu den Arrayelementen beibehalten bleibt. Dies wird hauptsächlich bei assoziativen Arrays angewandt, wenn die aktuelle Reihenfolge der Arrayelemente signifikant ist. Die Vergleichsfunktion wird vom Benutzer definiert.

Anmerkung: Siehe usort() und uksort() für Beispiele von benutzerdefinierten Vergleichsfunktionen

Siehe auch usort(), uksort(),
sort(), asort(),
arsort(), ksort(),
und rsort().

Zurück | Zum Anfang | Nach vorne
sort | Nach oben | uksort


uksort

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

uksort -- Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion.

Beschreibung

void uksort ( array array, callback cmp_function)

Diese Funktion sortiert die Schlüssel eines Arrays mittels einer benutzerdefinierten Vergleichsfunktion. Soll das Array nach nicht trivialen Kriterien sortiert werden, sollten Sie diese Funktion verwenden.

Beispiel 1. uksort()

function cmp ($a, $b) {
    if ($a == $b) return 0;
    return ($a > $b) ? -1 : 1;
}

$a = array (4 => "vier", 3 => "drei", 20 => "zwanzig", 10 => "zehn");

uksort ($a, "cmp");

while (list ($key, $value) = each ($a)) {
    echo "$key: $value\n";
}

Dieses Beispiel würde folgendes ausgeben:

20: zwanzig
10: zehn
4: vier
3: drei

Siehe auch usort(), uasort(),
sort(), asort(),
arsort(), ksort(),
natsort() und rsort().

Zurück | Zum Anfang | Nach vorne
uasort | Nach oben | usort


usort

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

usort -- Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion.

Beschreibung

void usort ( array array, callback cmp_function)

Diese Funktion sortiert ein Array nach seinen Werten mittels einer benutzerdefinierten Vergleichsfunktion. Soll das Array nach nicht trivialen Kriterien sortiert werden, sollten Sie diese Funktion verwenden.

Die Vergleichsfunktion muss einen Integer zurückgeben, der kleiner, gleich, oder größer ist als NULL, wenn für das erste Argument auch angenommen wird, dass es kleiner, gleich, oder größer ist als das zweite.

Anmerkung: Sind zwei Elemente gleich, ist deren Reihenfolge nicht definiert. Bis zu PHP 4.0.6 würde die benutzerdefinierte Funktion die originäre Reihenfolge beibehalten, doch seit der Einführung des neuen Sortieralgorhythmus mit 4.1.0 ist dies nicht mehr der Fall, da es keine effiziente Lösung dafür gibt.

Beispiel 1. usort()

<?php
function cmp ($a, $b) {
    if ($a == $b) return 0;
    return ($a < $b) ? -1 : 1;
}

$a = array (3, 2, 5, 6, 1);

usort ($a, "cmp");

while (list ($key, $value) = each ($a)) {
    echo "$key: $value\n";
}
?>

Dieses Beispiel würde folgendes anzeigen:

0: 1
1: 2
2: 3
3: 5
4: 6

Anmerkung: Offensichtlich würde sort() für diesen einfachen Fall besser passen.

Beispiel 2. usort() mit einem mehrdimensionalen Array

<?php
function cmp ($a, $b) {
    return strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "Zitronen";
$fruits[1]["fruit"] = "Äpfel";
$fruits[2]["fruit"] = "Trauben";

usort($fruits, "cmp");

while (list ($key, $value) = each ($fruits)) {
    echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>

Wird ein mehrdimensionales Array sortiert, enthalten $a und $b Referenzen zu dem ersten Index des Arrays.

Dieses Beispiel würde folgendes anzeigen:

$fruits[0]: Äpfel
$fruits[1]: Trauben
$fruits[2]: Zitronen

Beispiel 3. usort() mit Verwendung einer Member Funktion eines Objektes

<?php
class TestObj {
    var $name;

    function TestObj($name)
    {
        $this->name = $name;
    }

    /* Dies ist die statische Vergleichsfunktion: */
    function cmp_obj($a, $b)
    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) return 0;
        return ($al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

uasort($a, array ("TestObj", "cmp_obj"));

foreach ($a as $item) {
    print $item->name."\n";
}
?>

Dieses Beispiel würde folgendes anzeigen:

b
c
d

Siehe auch uasort(),
uksort(), sort(),
asort(),
arsort(),ksort(),
natsort() und rsort().

Zurück | Zum Anfang | Nach vorne
uksort | Nach oben | Aspell Funktionen [veraltet]


Aspell Funktionen [veraltet]

PHP Handbuch
Zurück Nach vorne

III. Aspell Funktionen [veraltet]

Einführung

Die aspell() Funktionen erlauben es ein Wort auf korrekte Rechtschreibung zu prüfen und Alternativen anzubieten.

Anmerkung: Diese Erweiterung wurde aus PHP entfernt und steht seit der Version 4.3.0 nicht mehr zur Verfügung. Falls Sie eine Rechtschreibprüfung mit PHP benutzen wollen, verwenden Sie statt dessen die Pspell Funktionen. Diese nutzen die Pspell Bibliothek und arbeiten mit neueren Versionen von Aspell zusammen.

Anforderungen

Aspell arbeitet nur mit ziemlich alten (bis .27.* oder so) Versionen der Aspell Bibliothek zusammen. Weder dieses Modul noch jene Versionen der Aspell Bibliothek werden nicht mehr länger unterstützt.Sie benötigen die aspell-Bibliothek von: http://aspell.sourceforge.net/.

Installation

Diese Funktionen stehen nur zur Verfügung, wenn Sie PHP mit der Option --with-aspell=[DIR] konfiguriert haben.

Siehe auch

Siehe auch pspell.

Inhaltsverzeichnis
aspell_check-raw -- Überprüft ein Wort genauso wie es übergeben wird [veraltet]
aspell_check -- Überprüft ein Wort [veraltet]
aspell_new -- Lädt ein neues Wörterbuch [veraltet]
aspell_suggest -- Schlägt mögliche Schreibweisen vor [veraltet]

Zurück | Zum Anfang | Nach vorne
usort | Nach oben | aspell_check-raw


aspell_check-raw

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_check-raw -- Überprüft ein Wort genauso wie es übergeben wird [veraltet]

Beschreibung

boolean aspell_check_raw ( int Wörterbuchkennung, string Wort)

aspell_check_raw() überprüft die Rechtschreibung eines Wortes ohne die Groß/Kleinschreibung zu variieren oder das Wort in irgendeiner Weise zu kürzen. Liefert TRUE, wenn das Wort korrekt ist und sonst FALSE.

Beispiel 1. aspell_check_raw()

<?php
$aspell_link = aspell_new("english");

if (aspell_check_raw($aspell_link, "test")) {
    echo "Gültige Schreibweise";
} else {
    echo "Bedaure, falsche Schreibweise";
}
?>

Zurück | Zum Anfang | Nach vorne
Aspell Funktionen [veraltet] | Nach oben | aspell_check


aspell_check

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_check -- Überprüft ein Wort [veraltet]

Beschreibung

boolean aspell_check ( int Wörterbuchkennung, string Wort)

aspell_check() überprüft die Rechtschreibung eines Wortes und liefert TRUE, wenn das Wort korrekt ist, ansonsten FALSE.

Beispiel 1. aspell_check

<?php
$aspell_link = aspell_new("english");

if (aspell_check($aspell_link, "testt")) {
    echo "Gültige Schreibweise";
} else {
    echo "Bedaure, falsche Schreibweise";
}
?>

Zurück | Zum Anfang | Nach vorne
aspell_check-raw | Nach oben | aspell_new


aspell_new

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_new -- Lädt ein neues Wörterbuch [veraltet]

Beschreibung

int aspell_new ( string master, string personal)

aspell_new() öffnet ein neues Wörterbuch und liefert eine Wörterbuchkennung zurück, die von anderen aspell-Funktionen gebraucht wird. Liefert FALSE bei einem Fehler.

Beispiel 1. aspell_new

<?php
$aspell_link = aspell_new("english");
?>

Zurück | Zum Anfang | Nach vorne
aspell_check | Nach oben | aspell_suggest


aspell_suggest

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_suggest -- Schlägt mögliche Schreibweisen vor [veraltet]

Beschreibung

array aspell_suggest ( int Wörterbuchkennung, string Wort)

aspell_suggest() liefert ein Array mit möglichen Schreibweisen eines übergebenen Wortes.

Beispiel 1. aspell_suggest()

<?php
$aspell_link = aspell_new("english");

if (!aspell_check($aspell_link, "test")) {
    $suggestions = aspell_suggest($aspell_link, "test");

    foreach ($suggestions as $suggestion) {
        echo "Mögliche Schreibweisen: $suggestion<br />\n";
    }
}
?>

Zurück | Zum Anfang | Nach vorne
aspell_new | Nach oben | Mathematische Funktionen mit beliebiger Genauigkeit


Mathematische Funktionen mit beliebiger Genauigkeit

PHP Handbuch
Zurück Nach vorne

IV. Mathematische Funktionen mit beliebiger Genauigkeit

Einführung

Für beliebig genaue mathematische Operationen bietet PHP den Binary Calculator. Unterstützt werden Zahlen beliebiger Länge und Genauigkeit, die als String vorliegen.

Anforderungen

Seit PHP 4.0.4 ist libbcmath in PHP enthalten. Sie brauchen keine externen Bibliotheken für diese Erweiterung.

Installation

In PHP 4 sind diese Funktionen nur verfügbar, wenn PHP mit --enable-bcmath konfiguriert wurde. In PHP 3 sind diese Funktionen nur verfügbar, wenn PHP nicht mit --disable-bcmath konfiguriert wurde.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. BC math Konfigurations-Optionen

Name | Standard | Veränderbar
bcmath.scale | 0 | PHP_INI_ALL
Weitere Details und die Definition der PHP_INI_* Konstanten sind unter ini_set() zu finden.

Hier eine kurze Erklärung der Konfigurationsoptionen:

bcmath.scale integer

Anzahl der Dezimalstellen für alle bcmath Funktionen. Siehe auch bcscale().

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
bcadd -- Addition zweier Zahlen beliebiger Genauigkeit.
bccomp -- Vergleich zweier Zahlen beliebiger Genauigkeit.
bcdiv -- Division zweier Zahlen beliebiger Genauigkeit.
bcmod -- Modulo zweier Zahlen mit beliebiger Genauigkeit.
bcmul -- Multiplikation zweier Zahlen beliebiger Genauigkeit.
bcpow -- Potenz mit beliebiger Genauigkeit.
bcpowmod -- Raise an arbitrary precision number to another, reduced by a specified modulus.
bcscale -- Setzt die Genauigkeit aller BC math-Funktionen.
bcsqrt -- Quadratwurzel mit beliebiger Genauigkeit.
bcsub -- Subtrahiert zwei Zahlen mit beliebiger Genauigkeit.

Zurück | Zum Anfang | Nach vorne
aspell_suggest | Nach oben | bcadd


bcadd

(PHP 3, PHP 4 , PHP 5)

bcadd -- Addition zweier Zahlen beliebiger Genauigkeit.

Beschreibung

string bcadd ( string linker Operand, string rechter Operand [, int Genauigkeit])

Addiert den linken Operanden zu dem rechten Operanden und liefert die Summe als Zeichenkette. Der optionale Parameter Genauigkeit kann angegeben werden, um die Anzahl der Nachkommastellen im Ergebnis zu bestimmen.

Beispiel 1. bcadd() Beispiel

<?php

$a = 1.234;
$b = 5;

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340

?>

Siehe auch bcsub().

Zurück | Zum Anfang | Nach vorne
Mathematische Funktionen mit beliebiger Genauigkeit | Nach oben | bccomp


bccomp

(PHP 3, PHP 4 , PHP 5)

bccomp -- Vergleich zweier Zahlen beliebiger Genauigkeit.

Beschreibung

int bccomp ( string linker Operand, string rechter Operand [, int Genauigkeit])

Vergleicht den linken Operanden mit dem rechten Operanden und liefert das Ergebnis als Integer-Wert. Der optionale Parameter Genauigkeit bestimmt die Anzahl der Nachkommastellen, die für den Vergleich ausgewertet werden. Der Rückgabewert ist 0, wenn die beiden Operanden gleich sind. Wenn der linke Operand größer ist als der rechte Operand, wird +1 zurückgeliefert; wenn der linke Operand kleiner ist als der rechte Operand wird -1 zurückgeliefert.

Beispiel 1. bccomp() Beispiel

<?php
echo bccomp('1', '2') . "\n";

echo bccomp('1.00001', '1', 3) . "\n";
echo bccomp('1.00001', '1', 5);
?>

Das obige Beispiel gibt folgendes aus:

-1
0
1

Zurück | Zum Anfang | Nach vorne
bcadd | Nach oben | bcdiv


bcdiv

(PHP 3, PHP 4 , PHP 5)

bcdiv -- Division zweier Zahlen beliebiger Genauigkeit.

Beschreibung

string bcdiv ( string linker Operand, string rechter Operand [, int Genauigkeit])

Dividiert den linken Operanden durch den rechten Operanden. Der optionale Parameter Genauigkeit legt die Anzahl der Nachkommastellen im Ergebnis fest.

Beispiel 1. bcdiv() Beispiel

<?php

echo bcdiv(105, 6.55957, 3);  // 16.007

?>

Siehe auch bcmul().

Zurück | Zum Anfang | Nach vorne
bccomp | Nach oben | bcmod


bcmod

(PHP 3, PHP 4 , PHP 5)

bcmod -- Modulo zweier Zahlen mit beliebiger Genauigkeit.

Beschreibung

string bcmod ( string linker Operand, string Modulus)

Liefert den linken Operanden modulo Modulus.

Beispiel 1. bcmod() Beispiel

<?php
echo bcmod(4, 2) . "\n";
echo bcmod(2, 4);
?>

Das obige Beispiel gibt folgendes aus:

0
2

Siehe auch bcdiv().

Zurück | Zum Anfang | Nach vorne
bcdiv | Nach oben | bcmul


bcmul

(PHP 3, PHP 4 , PHP 5)

bcmul -- Multiplikation zweier Zahlen beliebiger Genauigkeit.

Beschreibung

string bcmul ( string linker Operand, string rechter Operand [, int Genauigkeit])

Multipliziert den linken Operanden mit dem rechten Operanden. Der optionale Parameter Genauigkeit legt die Anzahl der Nachkommastellen im Ergebnis fest.

Beispiel 1. bcmul() Beispiel

<?php
echo bcmul(1.34747474747, 35, 3) . "\n";
echo bcmul(2, 4);
?>

Das obige Beispiel gibt folgendes aus:

47.162
8

Siehe auch bcdiv().

Zurück | Zum Anfang | Nach vorne
bcmod | Nach oben | bcpow


bcpow

(PHP 3, PHP 4 , PHP 5)

bcpow -- Potenz mit beliebiger Genauigkeit.

Beschreibung

string bcpow ( string x, string y [, int Genauigkeit])

Potenziert x mit y. Der optionale Parameter Genauigkeit legt die Anzahl der Nachkommastellen im Ergebnis fest.

Beispiel 1. bcpow() Beispiel

<?php

echo bcpow(4.2, 3, 2); // 74.08

?>

Siehe auch bcpowmod() und bcsqrt().

Zurück | Zum Anfang | Nach vorne
bcmul | Nach oben | bcpowmod


bcpowmod

(PHP 5)

bcpowmod -- Raise an arbitrary precision number to another, reduced by a specified modulus.

Beschreibung

string bcpowmod ( string x, string y, string modulus [, int scale])

Benutzen Sie diese schnelle Exponentialmethode um x mit y unter Berücksichtigung des Modulo modulus zu potenzieren. Der optionale Parameter scale legt die Anzahl der Nachkommastellen im Ergebnis fest.

Die folgenden zwei Anweisungen sind funktional identisch. Die Variante mit bcpowmod() ist schneller und akzeptiert größere Parameter.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a und $b sind genau gleich.

?>

Anmerkung: Die Verwendung von nicht-natürlichen Zahlen kann zu unerwarteten Ergebnissen führen, weil diese Funktion die Modulodivision verwendet. Eine natürliche Zahl ist jede ganzzahlige positive Zahl die ungleich Null ist.

Siehe auch bcpow() und bcmod().

Zurück | Zum Anfang | Nach vorne
bcpow | Nach oben | bcscale


bcscale

(PHP 3, PHP 4 , PHP 5)

bcscale -- Setzt die Genauigkeit aller BC math-Funktionen.

Beschreibung

bool bcscale ( int Genauigkeit)

Diese Funktionen legt die Standard-Genauigkeit aller in der Folge aufgerufenden BC math-Funktionen fest, die nicht explizit die Genauigkeit durch den optionalen Parameter setzen. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. bcscale() Beispiel

<?php

// Genauigkeit festlegen : 3
bcscale(3);
echo bcdiv(105, 6.55957); // 16.007

// Das gleiche Ergebnis ohne bcscale()
echo bcdiv(105, 6.55957, 3); // 16.007

?>

Zurück | Zum Anfang | Nach vorne
bcpowmod | Nach oben | bcsqrt


bcsqrt

(PHP 3, PHP 4 , PHP 5)

bcsqrt -- Quadratwurzel mit beliebiger Genauigkeit.

Beschreibung

string bcsqrt ( string Operand [, int Genauigkeit])

Liefert die Quadratwurzel von Operand. Der optionale Parameter Genauigkeit legt die Anzahl der Nachkommastellen im Ergebnis fest.

Beispiel 1. bcsqrt() Beispiel

<?php

echo bcsqrt(2, 3); // 1.414

?>

Siehe auch bcpow().

Zurück | Zum Anfang | Nach vorne
bcscale | Nach oben | bcsub


bcsub

(PHP 3, PHP 4 , PHP 5)

bcsub -- Subtrahiert zwei Zahlen mit beliebiger Genauigkeit.

Beschreibung

string bcsub ( string linker Operand, string rechter Operand [, int Genauigkeit])

Subtrahiert den rechten Operanden vom linken Operanden und liefert das Ergebnis als Zeichenkette. Der optionale Parameter Genauigkeit legt die Anzahl der Nachkommastellen im Ergebnis fest.

Beispiel 1. bcsub() Beispiel

<?php

$a = 1.234;
$b = 5;

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>

Siehe auch bcadd().

Zurück | Zum Anfang | Nach vorne
bcsqrt | Nach oben | Bzip2 Komprimierungsfunktionen


Bzip2 Komprimierungsfunktionen

PHP Handbuch
Zurück Nach vorne

V. Bzip2 Komprimierungsfunktionen

Einführung

Die bzip2-Funktionen werden benutzt, um transparent bzip2 (.bz2)-komprimierte Dateien lesen und schreiben zu können.

Anforderungen

Dieses Module nutzt die Funktionen der bzip2-Bibliothek von Julian Seward Dazu ist die bzip2/libbzip2 Version >= 1.0.x. nötig.

Installation

Die Bzip2-Unterstützung ist in PHP nicht standardmäßig aktiviert. Es ist erforderlich, die Option --with-bz2[=DIR] beim Kompilieren von PHP anzugeben.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Dieses Erweitertung definierte einen Resource-Typen: Einen Dateizeiger, der die Datei idenitfiziert, mit der gearbeitet werden soll.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Beispiele

Dieses Beispiel öffnet eine tempräre Datei und schreibt einen Teststring in diese, dann gibt es den Inhalt der Datei aus.

Beispiel 1. Ein kleines bzip2() Beispiel

<?php

$filename = "/tmp/testfile.bz2";
$str = "Das ist ein Test.\n";

// Datei zum Schreiben öffnen
$bz = bzopen($filename, "w");

// Zeichenkette in Datei schreiben
bzwrite($bz, $str);

// Datei schließen
bzclose($bz);

// Datei zum Lesen öffnen
$bz = bzopen($filename, "r");

// 10 Zeichen lesen
echo bzread($bz, 10);

/* Ausgabe bis zum Dateiende (oder der nächsten 1024 Zeichen) und schließen
der Datei. */
echo bzread($bz);

bzclose($bz);

?>
Inhaltsverzeichnis
bzclose -- Schließe einen bzip2-Dateizeiger
bzcompress -- Komprimiert einen String in bzip2-encodierte Daten
bzdecompress -- Dekomprimiert bzip2-komprimierte Daten
bzerrno -- Gibt einen bzip2-Fehlercode zurück
bzerror -- Gibt den bzip2 Fehlercode und eine Fehlerbeschreinung in einem Array zurück.
bzerrstr -- Gibt eine bzip2-Fehlermeldung zurück
bzflush -- Erzwinge das schreiben aller gepufferten Daten
bzopen -- Öffnet eine bzip2-komprimierte Datei
bzread -- liest binäre Daten aus einer bzip2 komprimierten Datei
bzwrite -- bzip2-Datei schreiben

Zurück | Zum Anfang | Nach vorne
bcsub | Nach oben | bzclose


bzclose

(PHP 4 >= 4.0.4, PHP 5)

bzclose -- Schließe einen bzip2-Dateizeiger

Beschreibung

int bzclose ( int bz)

Schließt die bzip2-Datei, die von dem Zeiger bz referenziert wird.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Der Dateizeiger muss gültig sein, und auf eine Datei zeigen, die erfolgreich mittels der bzopen()-Funktion geöffnet wurde.

Siehe auch bzopen().

Zurück | Zum Anfang | Nach vorne
Bzip2 Komprimierungsfunktionen | Nach oben | bzcompress


bzcompress

(PHP 4 >= 4.0.4, PHP 5)

bzcompress -- Komprimiert einen String in bzip2-encodierte Daten

Beschreibung

string bzcompress ( string source [, int blocksize [, int workfactor]])

bzcompress() komprimiert den source-String und gibt ihn als bzip2-komprimierte Daten zurück.

Der optionale Parameter blocksize spezifiziert die Blockgröße während der Komprimierung und darf zwischen 1 und 9 liegen. 9 ergibt dabei den besten Komprimierungsfaktor, benötigt jedoch auch die meisten Systemressourcen. Der Standardwert für blocksize ist 4.

Der optionale Parameter workfactor bestimmt, wie die Funktion sich im schlimmsten Fall, stark wiederholende Eingabedaten zu verhalten hat. Der Wer kann zwischen 0 und 250 liegen, 0 ist ein spezieller Fall, 30 ist der Standardwert. Unabhängig vom Parameter workfactor wird die generierte Ausgabe immer die selbe sein.

Beispiel 1. bzcompress() Beispiel

&lt;?php
$str = "sample data";
$bzstr = bzcompress($str, 9);
print( $bzstr );
?>

Siehe auch bzdecompress().

Zurück | Zum Anfang | Nach vorne
bzclose | Nach oben | bzdecompress


bzdecompress

(PHP 4 >= 4.0.4, PHP 5)

bzdecompress -- Dekomprimiert bzip2-komprimierte Daten

Beschreibung

string bzdecompress ( string source [, int small])

bzdecompress() dekomprimiert den source-Parameter, der bzip2-komprimierte Daten enthält und gibt die dekomprimierten Daten zurück. Wenn der optionale Parameter small TRUE ist, wird ein alternative Dekomprimierungsalgorithmus verwendet, der weniger Speicher benötigt, jedoch nur halb so schnell läuft. Weitere Informationen sind in der bzip2 Dokumentation zu finden.

Beispiel 1. bzdecompress()

&lt;?php
$start_str = "This is not an honest face?";
$bzstr = bzcompress($start_str);

print( "Compressed String: " );
print( $bzstr );
print( "\n&lt;br&gt;n" );

$str = bzdecompress($bzstr);
print( "Decompressed String: " );
print( $str );
print( "\n&lt;br&gt;n" );
?>

Siehe auch bzcompress().

Zurück | Zum Anfang | Nach vorne
bzcompress | Nach oben | bzerrno


bzerrno

(PHP 4 >= 4.0.4, PHP 5)

bzerrno -- Gibt einen bzip2-Fehlercode zurück

Beschreibung

int bzerrno ( int bz)

Gibt den Fehlercode eines beliebigen Fehlercodes, der von dem Dateizeiger bz zurückgegeben wird.

Siehe auch bzerror() und bzerrstr().

Zurück | Zum Anfang | Nach vorne
bzdecompress | Nach oben | bzerror


bzerror

(PHP 4 >= 4.0.4, PHP 5)

bzerror -- Gibt den bzip2 Fehlercode und eine Fehlerbeschreinung in einem Array zurück.

Beschreibung

array bzerror ( int bz)

Gibt den Fehlercode und die Fehlerbeschreibung eines beliebigen von dem Dateizeiger bz gelieferten bzip2-Fehlers in einem assoziativen Array zurück.

Beispiel 1. bzerror() Beispiel

&lt;?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

Siehe auch bzerrno() und bzerrstr().

Zurück | Zum Anfang | Nach vorne
bzerrno | Nach oben | bzerrstr


bzerrstr

(PHP 4 >= 4.0.4, PHP 5)

bzerrstr -- Gibt eine bzip2-Fehlermeldung zurück

Beschreibung

string bzerrstr ( int bz)

Gibt eine Fehlermeldung eines bzip2-Fehler zurück, anhand des Dateizeigers bz identifiziert wird.

Siehe auch bzerrno() und bzerror().

Zurück | Zum Anfang | Nach vorne
bzerror | Nach oben | bzflush


bzflush

(PHP 4 >= 4.0.4, PHP 5)

bzflush -- Erzwinge das schreiben aller gepufferten Daten

Beschreibung

int bzflush ( int bz)

Erzwingt ein Schreiben alle gepufferten bzip2-Daten für den Dateizeiger bz.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch bzread() und bzwrite().

Zurück | Zum Anfang | Nach vorne
bzerrstr | Nach oben | bzopen


bzopen

(PHP 4 >= 4.0.4, PHP 5)

bzopen -- Öffnet eine bzip2-komprimierte Datei

Beschreibung

int bzopen ( string filename, string mode)

Öffnet eine bzip2 (.bz2)-Datei, um sie zu lesen oder zu schreiben. Der Parameter filename ist der Names der Datei, die geöffnet werden soll. Der mode-Parameter ist mit der fopen() Vergleich ('r' für lesenden Zugriff, 'w' für schreibenden Zugriff usw.).

Wenn das öffnen Fehlschlägt, gibt die Funktion FALSE zurück, andernfalls wird ein Zeiger auf die geöffnete Datei zurückgegeben.

Beispiel 1. bzopen() Beispiel

&lt;?php
$bz = bzopen("/tmp/foo.bz2", "r");
$decompressed_file = bzread($bz, filesize("/tmp/foo.bz2"));
bzclose($bz);

print( "The contents of /tmp/foo.bz2 are: " );
print( "\n&lt;br&gt;n" );
print( $decompressed_file );
?>

Siehe auch bzclose().

Zurück | Zum Anfang | Nach vorne
bzflush | Nach oben | bzread


bzread

(PHP 4 >= 4.0.4, PHP 5)

bzread -- liest binäre Daten aus einer bzip2 komprimierten Datei

Beschreibung

string bzread ( int bz [, int length])

bzread() liest bis zu length Bytes aus dem bzip2-Dateizeiger bz. Hört mit dem Lesen auf, wenn length (dekomprimierte) Bytes gelesen wurden oder das Ende der Datei (EOF) erreicht ist, welcher Fall auch immer zuerst auftritt. Wenn der optionale Parameter length nicht angegeben wird, wird die Funktion bzread() 1024 unkomprimierte Bytes lesen.

Beispiel 1. bzread() Beispiel

<?php
$bz = bzopen("/tmp/foo.bz2", "r");
$str = bzread($bz, 2048);
print( $str );
?>

Siehe auch bzwrite() und bzopen().

Zurück | Zum Anfang | Nach vorne
bzopen | Nach oben | bzwrite


bzwrite

(PHP 4 >= 4.0.4, PHP 5)

bzwrite -- bzip2-Datei schreiben

Description

int bzwrite ( int bz, string data [, int length])

bzwrite() schreibt den Inhalt des Strings data in den bzip2-Dateistream, auf den bz zeigt. Wenn der optionale Parameter length übergeben wird, wird das Schreiben abgebrochen, nachdem length Bytes unkomprimierte Bytes geschrieben, oder das Ende des Strings erreicht wurde.

Beispiel 1. bzwrite() Beispiel

&lt;?php
$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

Siehe auch bzread() und bzopen().

Zurück | Zum Anfang | Nach vorne
bzread | Nach oben | Kalender-Funktionen


Kalender-Funktionen

PHP Handbuch
Zurück Nach vorne

VI. Kalender-Funktionen

Dieses Modul bietet eine Reihe von Funktionen, die die Umwandlung von Daten zwischen verschiedenen Kalendern erleichtern. Die gemeinsame Basis für diese Umwandlung bildet das Julianische Datum J. D. (nicht zu verwechseln mit dem Julianischen Kalender). Das J. D. entspricht der Anzahl der Tage seit dem 1. 1. 4713 v. Chr. Jede Umrechnung zwischen zwei beliebigen Kalendern erfordert den Zwischenschritt über das J. D.

Weitere Informationen zum Thema liefert die Seite http://www.boogle.com/info/cal-overview.html, aus der Teile der Erklärungen in den folgenden Funktionsbeschreibungen stammen.

Warnung

In PHP3 und älteren Versionen von PHP4 (bis einschließlich PHP4RC1) sind diese Funktionen nur verfügbar, wenn Sie die Kalender-Erweiterungen unter dl/calendar übersetzt haben. Weitere Informationen finden Sie in der Datei dl/README.

Inhaltsverzeichnis
cal_days_in_month -- Gibt die Anzahl der Tage eines bestimmten Monats in einem bestimmten Jahr in einem bestimmten Kalender zurück
cal_from_jd -- Converts from Julian Day Count to a supported calendar
cal_info -- Gibt Informationen zu einem bestimmten Kalender zurück
cal_to_jd -- Converts from a supported calendar to Julian Day Count
easter_date -- Zeitpunkt des Osterfestes (0 Uhr) als UNIX-Timestamp
easter_days -- Anzahl der Tage zwischen dem 21. März und Ostersonntag
frenchtojd -- Konvertiert ein Datum der Französischen Revolution zu einem Julianischen Datum
gregoriantojd -- Konvertierung vom Gregorianischen Kalender zum Julianischen Datum
jddayofweek -- Bestimmt den Wochentag aus einem Julianischen Datum
jdmonthname -- Bestimmt den Monat aus dem Julianischen Datum
jdtofrench -- Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution
jdtogregorian -- Konvertierung vom Julianischen Datum zum Gregorianischen Kalender
jdtojewish -- Konvertierung vom Julianischen Datum zum Jüdischen Kalender
jdtojulian -- Konvertierung vom Julianischen Datum zum Julianischen Kalender
jdtounix -- Konvertiert Julianisches Datum in UNIX-Timestamp
jewishtojd -- Konvertiert vom Jüdischen Kalender zum Julianischen Datum
juliantojd -- Konvertierung vom Julianischen Kalender zum Julianischen Datum
unixtojd -- Konvertiert UNIX-Timestamp in Julianisches Datum

Zurück | Zum Anfang | Nach vorne
bzwrite | Nach oben | cal_days_in_month


cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5)

cal_days_in_month -- Gibt die Anzahl der Tage eines bestimmten Monats in einem bestimmten Jahr in einem bestimmten Kalender zurück

Beschreibung

int cal_days_in_month ( int calendar, int month, int year)

Diese Funktion gibt die Anzahl der Tage in einem Monat eines Jahres für den angegebenen Kalender zurück.

Siehe auch jdtounix().

Zurück | Zum Anfang | Nach vorne
Kalender-Funktionen | Nach oben | cal_from_jd


cal_from_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_from_jd -- Converts from Julian Day Count to a supported calendar

Description

array cal_from_jd ( int jd, int calendar)

cal_from_jd() converts the Julian day given in jd into a date of the specified calendar. Supported calendar values are CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH and CAL_FRENCH.

Beispiel 1. cal_from_jd() example

<?php
$today = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($today, CAL_GREGORIAN));
?>

This will output :

Array
(
    [date] => 8/16/2003
    [month] => 8
    [day] => 16
    [year] => 2003
    [dow] => 6
    [abbrevdayname] => Sat
    [dayname] => Saturday
    [abbrevmonth] => Aug
    [monthname] => August
)

See also cal_to_jd().

Zurück | Zum Anfang | Nach vorne
cal_days_in_month | Nach oben | cal_info


cal_info

(PHP 4 >= 4.1.0, PHP 5)

cal_info -- Gibt Informationen zu einem bestimmten Kalender zurück

Beschreibung

array cal_info ( int calendar)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cal_from_jd | Nach oben | cal_to_jd


cal_to_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_to_jd -- Converts from a supported calendar to Julian Day Count

Description

int cal_to_jd ( int calendar, int month, int day, int year)

cal_to_jd() calculates the Julian day count for a date in the specified calendar. Supported calendars are CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH and CAL_FRENCH.

See also cal_to_jd().

Zurück | Zum Anfang | Nach vorne
cal_info | Nach oben | easter_date


easter_date

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

easter_date -- Zeitpunkt des Osterfestes (0 Uhr) als UNIX-Timestamp

Beschreibung

int easter_date ( [int year])

Diese Funktion liefert den UNIX-Timestamp (in Sekunden seit 1970) zurück, der dem Begin des Ostersonntag im durch year spezifizierten Jahr entspricht. Wird kein Jahr angegeben, so wird der Zeitpunkt für das laufende Jahr bestimmt.

Warnung

Liegt das angegebene Jahr vor 1970 oder nach 2037 (auf 32 bit-Systemen), so wird eine Warnung ausgegeben und das Ergebnis ist nicht gültig.

Beispiel 1. easter_date() Beispiel

echo date ("M-d-Y", easter_date(1999));        /* " 4. April 1999" */
echo date ("M-d-Y", easter_date(2000));        /* "23. April 2000" */
echo date ("M-d-Y", easter_date(2001));        /* "15. April 2001" */

Das Datum des Osterfestes wurde im Jahre 325 auf dem Konzil von Nicaea auf den ersten Sonntag nach Frühlingsvollmond, also dem Vollmond während oder direkt nach der Tagundnachtgleiche am 21. März, festgelegt. Der hier genutzte Algorithmus wurde um das Jahr 532 von Dionysius Exiguus eingeführt. Bis zum Jahr 1752 wird nach dem Julianischen Kalender ein einfacher 19jähriger Zyklus für die Bestimmung der Mondphasen benutzt. Im September 1752 übernahmen dann auch Britannien und seine Kolonien den von Clavius und Lilius vorgeschlagenen und im Oktober 1582 von Papst Gregor dem XIII. eingeführten Gregorianischen Kalender. Hierdurch wurden zwei Korrekturfaktoren eingeführt, um den Zyklus genauer abzubilden.

(Der Code basiert auf einen C-Programm von Simon Kershaw, <webmaster@ely.anglican.org>)

Siehe auch easter_days() für die Bestimmung von Osterfesten vor 1970 oder nach 2037.

Zurück | Zum Anfang | Nach vorne
cal_to_jd | Nach oben | easter_days


easter_days

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

easter_days -- Anzahl der Tage zwischen dem 21. März und Ostersonntag

Beschreibung

int easter_days ( int year)

Diese Funktion ermittelt den Abstand in Tagen zwischen der Frühlings-Tagundnachtgleiche und dem Ostersonntag im durch year angegebenen Jahr. Wird kein Jahr angegeben, so wird der Wert für das laufende Jahr bestimmt.

Diese Funktion kann im Gegensatz zu easter_date() das Osterfest auch in Jahren vor 1970 und nach 2037 bestimmen.

Beispiel 1. easter_date() Beispiel

echo easter_days (1999);        /* 14, i.e. April 4   */
echo easter_days (1492);        /* 32, i.e. April 22  */
echo easter_days (1913);        /*  2, i.e. March 23  */

Siehe auch easter_date().

Zurück | Zum Anfang | Nach vorne
easter_date | Nach oben | frenchtojd


frenchtojd

(PHP 3, PHP 4 , PHP 5)

frenchtojd -- Konvertiert ein Datum der Französischen Revolution zu einem Julianischen Datum

Beschreibung

int frenchtojd ( int month, int day, int year)

Diese Funktion konvertiert das in month, day und year übergebene Datum im Kalender der Französischen Revolution in einen Tag im Julianischen Datum.

Diese Funktion verarbeitet nur Daten der Jahre 1 bis 14 (22. September 1792 bis 22. September 1806 im Gregorianischen Kalender), dieser Zeitraum geht aber immer noch über die Lebensdauer des Revolutionskalenders hinaus.

Zurück | Zum Anfang | Nach vorne
easter_days | Nach oben | gregoriantojd


gregoriantojd

(PHP 3, PHP 4 , PHP 5)

gregoriantojd -- Konvertierung vom Gregorianischen Kalender zum Julianischen Datum

Beschreibung

int gregoriantojd ( int month, int day, int year)

Diese Funktion konvertiert das in month, day und year übergebene Datum im Gregorianischen Kalender in einen Tag im Julianischen Datum.

Gültige Daten liegen im Bereich von 4714 v. Chr. bis 9999 n. Chr. Der Gregorianische Kalender wurde allerdings erst am 15. Oktober 1582 (bzw. am 5. Oktober nach dem bis dahin gültigen Julianischen Kalender) von Papst Gregor XIII. eingeführt, in einigen Ländern erst sehr viel später. So übernahmen die Briten den Gregorianischen Kalender 1752, die UDSSR 1918 und Griechenland erst im Jahre 1923. In den meisten europäischen Ländern wurde vor dem Gregorianischen der Julianische Kalender benutzt.

Beispiel 1. Calendar functions

<?php
$jd = GregorianToJD (10,11,1970);
echo "$jd\n";
$gregorian = JDToGregorian ($jd);
echo "$gregorian\n";
?>

Zurück | Zum Anfang | Nach vorne
frenchtojd | Nach oben | jddayofweek


jddayofweek

(PHP 3, PHP 4 , PHP 5)

jddayofweek -- Bestimmt den Wochentag aus einem Julianischen Datum

Beschreibung

mixed jddayofweek ( int julianday, int mode)

Diese Funktion bestimmt den Wochentag für den in julianday übergebenen Tag im Julianischen Datum. Die Ausgabe erfolgt in Abhängigkeit von mode als integer oder string.

Tabelle 1. Mögliche mode Werte

Mode | Bedeutung
0 | Nummer des Tages als integer (0=Sontag, 1=Montag, ...)
1 | Tagesname als String (Englisch-Gregorianisch)
2 | abgekürzter Tagesname als String (Englisch-Gregorianisch)

Zurück | Zum Anfang | Nach vorne
gregoriantojd | Nach oben | jdmonthname


jdmonthname

(PHP 3, PHP 4 , PHP 5)

jdmonthname -- Bestimmt den Monat aus dem Julianischen Datum

Beschreibung

string jdmonthname ( int julianday, int mode)

Diese Funktion bestimmt den Monatsnamen für den in julianday übergebenen Tag im Julianischen Datum. Die Ausgabe erfolgt als String in Abhängigkeit von mode.

Tabelle 1. Mögliche mode Werte

Mode | Bedeutung
0 | Gregorianisch (Abk.)
1 | Gregorianisch
2 | Julianisch - (Abk.)
3 | Julianisch
4 | Jüdisch
5 | Französisch revolutionär

Zurück | Zum Anfang | Nach vorne
jddayofweek | Nach oben | jdtofrench


jdtofrench

(PHP 3, PHP 4 , PHP 5)

jdtofrench -- Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution

Beschreibung

string jdtofrench ( int month, int day, int year)

Diese Funktion konvertiert den in julianday angegebenen Tag im Julianischen Datum in einen String, der das entsprechnde Datum im Kalender der Französischen Revolution in der Form "MM/DD/YYYY" enthält.

Zurück | Zum Anfang | Nach vorne
jdmonthname | Nach oben | jdtogregorian


jdtogregorian

(PHP 3, PHP 4 , PHP 5)

jdtogregorian -- Konvertierung vom Julianischen Datum zum Gregorianischen Kalender

Beschreibung

string jdtogregorian ( int julianday)

Diese Funktion konvertiert den in julianday angegebenen Tag im Julianischen Datum in einen String, der das Datum nach dem Gregorianischen Kalender in der Form "MM/DD/YYYY" enthält.

Zurück | Zum Anfang | Nach vorne
jdtofrench | Nach oben | jdtojewish


jdtojewish

(PHP 3, PHP 4 , PHP 5)

jdtojewish -- Konvertierung vom Julianischen Datum zum Jüdischen Kalender

Beschreibung

string jdtojewish ( int julianday)

Diese Funktion konvertiert den in julianday angegebenen Tag im Julianischen Datum in einen String, der das entsprechnde Datum im Jüdischen Kalender in der Form "MM/DD/YYYY" enthält.

Zurück | Zum Anfang | Nach vorne
jdtogregorian | Nach oben | jdtojulian


jdtojulian

(PHP 3, PHP 4 , PHP 5)

jdtojulian -- Konvertierung vom Julianischen Datum zum Julianischen Kalender

Beschreibung

string jdtojulian ( int julianday)

Diese Funktion konvertiert den in julianday angegebenen Tag im Julianischen Datum in einen String, der das entsprechnde Datum im Julianischen Kalender in der Form "MM/DD/YYYY" enthält.

Zurück | Zum Anfang | Nach vorne
jdtojewish | Nach oben | jdtounix


jdtounix

(PHP 4 , PHP 5)

jdtounix -- Konvertiert Julianisches Datum in UNIX-Timestamp

Beschreibung

int jdtounix ( int jday)

Diese Funktion liefert einen UNIX Timestamp (in Sekunden seit dem 1.1.1970) zurück, der dem in jday übergebenen Julianischen Datum entspricht. Liegt jday außerhalb des darstellbaren Zeitbereichs (Gregorianische Jahre von 1970 bis 2037 bzw. 2440588 <= jday <= 2465342 ), so wird FALSE zurückgegeben.

Siehe auch unixtojd().

Anmerkung: Diese Funktion ist nur in PHP-Versionen nach PHP4RC1 verfügbar.

Zurück | Zum Anfang | Nach vorne
jdtojulian | Nach oben | jewishtojd


jewishtojd

(PHP 3, PHP 4 , PHP 5)

jewishtojd -- Konvertiert vom Jüdischen Kalender zum Julianischen Datum

Beschreibung

int jewishtojd ( int month, int day, int year)

Diese Funktion konvertiert das in month, day und year übergebene Datum im Jüdischen Kalender in einen Tag im Julianischen Datum.

Gültige Daten beginnen mit dem Jahr 1 (3761 v. Chr.). Der Jüdische Kalender ist bereits seit mehreren Jahrtausenden im Gebrauch, wobei ein neuer Monat jeweils mit der ersten Beobachtung des Neumonds beginnt.

Zurück | Zum Anfang | Nach vorne
jdtounix | Nach oben | juliantojd


juliantojd

(PHP 3, PHP 4 , PHP 5)

juliantojd -- Konvertierung vom Julianischen Kalender zum Julianischen Datum

Beschreibung

int juliantojd ( int month, int day, int year)

Diese Funktion konvertiert das in month, day und year übergebene Datum im Gregorianischen Kalender in einen Tag im Julianischen Datum.

Gültige Daten liegen im Bereich von 4714 v.Chr. bis 9999 n.Chr. Der Julianische Kalender wurde allerdings erst 46 v.Chr. eingeführt, und die Details der Anwendung stabilisierten sich frühestens im Jahre 8 n. Chr., z. T. vielleicht sogar erst im vierten Jahrhundert nach Christus. Weiterhin betrachteten nicht alle Kulturen, die sich nach diesem Kalender richteten, den Januar als den ersten Monat des Jahres.

Zurück | Zum Anfang | Nach vorne
jewishtojd | Nach oben | unixtojd


unixtojd

(PHP 4 , PHP 5)

unixtojd -- Konvertiert UNIX-Timestamp in Julianisches Datum

Beschreibung

int unixtojd ( [int timestamp])

Diese Funktion konvertiert den in timestamp übergebenen Wert (in Sekunden seit dem 1.1.1970) in das entsprechende Julianische Datum. Wird kein timestamp übergeben, so wird das Julianische Datum des aktuellen Tages zurückgegeben.

Siehe auch jdtounix().

Anmerkung: Diese Funktion ist nur in PHP-Versionen nach PHP4RC1 verfügbar.

Zurück | Zum Anfang | Nach vorne
juliantojd | Nach oben | CCVS API Funktionen


CCVS API Funktionen

PHP Handbuch
Zurück Nach vorne

VII. CCVS API Funktionen

Die Funktionsschnittstelle der CCVS API erlaubt es direkt von PHP Scripten aus mit CCVS zu arbeiten. CCVS ist RedHat's Lösung zu dem "Mann in der Mitte" bei der Abwicklung von Kreditkarten. Es stellt die Möglichkeit zur Verfügung sich direkt über einen Unixrechner und ein Modem zu einem Kartenanbieter zu verbinden. Mit hilfe des CCVS Modules für PHP kann man Kreditkarten direkt durch CCVS über PHP Scripte abwickeln. Die folgende Referenz wird diesen Vorgang umreissen.

Um CCVS Unterstützung zu aktivieren, sollte man erst das CCVS Installationsverzeichnis überprüfen. Es ist notwendig PHP mit der Option --with-ccvs zu configurieren. Wenn diese Option ohne den Pfad zu CCVS installation angegeben wird, versucht PHP es in den voreingestellten Pfaden einer CCVS standard installation (/usr/local/ccvs) zu finden. Wenn CCVS nicht den Standard Pfad hat, ist es nötig configure mit --with-ccvs=$ccvs_pfad zu starten, wobei $ccvs_pfad der Pfad zu installation ist. Anzumerken ist, dass CCVS Unterstützung vorausetzt, dass $ccvs_pfad/lib und $ccvs_pfad/include existieren, und dass die Includedatei cv_api.h im include Verzeichnis, und libccvs.a im lib Verzeichnis liegen.

Ausserdem muss ein ccvsd Prozess für die Einstellungen laufen die mit PHP Skripten arbeiten sollen. Es ist nötig das die PHP Prozesse unter dem selben Benutzer laufen für den auch ccvs installiert wurde (bsp: wenn ccvs unter dem user 'ccvs' installiert wurde, müssen die PHP Prozesse ebenfalls als 'ccvs' laufen.)

Weiter Informationen zu CCVS kann man unter ??? finden.

An diesem Dokumentationsteil wird noch gearbeitet. RedHat unterhält eine geringfügig veraltete aber immernoch brauchbare Dokumentation unter: http://redhat.com/docs/manuals/ccvs/.

Inhaltsverzeichnis
ccvs_add -- Add data to a transaction
ccvs_auth -- Perform credit authorization test on a transaction
ccvs_command -- Performs a command which is peculiar to a single protocol, and thus is not available in the general CCVS API
ccvs_count -- Find out how many transactions of a given type are stored in the system
ccvs_delete -- Delete a transaction
ccvs_done -- Terminate CCVS engine and do cleanup work
ccvs_init -- Initialize CCVS for use
ccvs_lookup -- Look up an item of a particular type in the database #
ccvs_new -- Create a new, blank transaction
ccvs_report -- Return the status of the background communication process
ccvs_return -- Transfer funds from the merchant to the credit card holder
ccvs_reverse -- Perform a full reversal on an already-processed authorization
ccvs_sale -- Transfer funds from the credit card holder to the merchant
ccvs_status -- Check the status of an invoice
ccvs_textvalue -- Get text return value for previous function call
ccvs_void -- Perform a full reversal on a completed transaction

Zurück | Zum Anfang | Nach vorne
unixtojd | Nach oben | ccvs_add


ccvs_add

(4.0.2 - 4.2.3 only)

ccvs_add -- Add data to a transaction

Description

string ccvs_add ( string session, string invoice, string argtype, string argval)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
CCVS API Funktionen | Nach oben | ccvs_auth


ccvs_auth

(4.0.2 - 4.2.3 only)

ccvs_auth -- Perform credit authorization test on a transaction

Description

string ccvs_auth ( string session, string invoice)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_add | Nach oben | ccvs_command


ccvs_command

(4.0.2 - 4.2.3 only)

ccvs_command -- Performs a command which is peculiar to a single protocol, and thus is not available in the general CCVS API

Description

string ccvs_command ( string session, string type, string argval)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_auth | Nach oben | ccvs_count


ccvs_count

(4.0.2 - 4.2.3 only)

ccvs_count -- Find out how many transactions of a given type are stored in the system

Description

int ccvs_count ( string session, string type)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_command | Nach oben | ccvs_delete


ccvs_delete

(4.0.2 - 4.2.3 only)

ccvs_delete -- Delete a transaction

Description

string ccvs_delete ( string session, string invoice)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_count | Nach oben | ccvs_done


ccvs_done

(4.0.2 - 4.2.3 only)

ccvs_done -- Terminate CCVS engine and do cleanup work

Description

string ccvs_done ( string sess)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_delete | Nach oben | ccvs_init


ccvs_init

(4.0.2 - 4.2.3 only)

ccvs_init -- Initialize CCVS for use

Description

string ccvs_init ( string name)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_done | Nach oben | ccvs_lookup


ccvs_lookup

(4.0.2 - 4.2.3 only)

ccvs_lookup -- Look up an item of a particular type in the database #

Description

string ccvs_lookup ( string session, string invoice, int inum)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_init | Nach oben | ccvs_new


ccvs_new

(4.0.2 - 4.2.3 only)

ccvs_new -- Create a new, blank transaction

Description

string ccvs_new ( string session, string invoice)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_lookup | Nach oben | ccvs_report


ccvs_report

(4.0.2 - 4.2.3 only)

ccvs_report -- Return the status of the background communication process

Description

string ccvs_report ( string session, string type)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_new | Nach oben | ccvs_return


ccvs_return

(4.0.2 - 4.2.3 only)

ccvs_return -- Transfer funds from the merchant to the credit card holder

Description

string ccvs_return ( string session, string invoice)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_report | Nach oben | ccvs_reverse


ccvs_reverse

(4.0.2 - 4.2.3 only)

ccvs_reverse -- Perform a full reversal on an already-processed authorization

Description

string ccvs_reverse ( string session, string invoice)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_return | Nach oben | ccvs_sale


ccvs_sale

(4.0.2 - 4.2.3 only)

ccvs_sale -- Transfer funds from the credit card holder to the merchant

Description

string ccvs_sale ( string session, string invoice)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_reverse | Nach oben | ccvs_status


ccvs_status

(4.0.2 - 4.2.3 only)

ccvs_status -- Check the status of an invoice

Description

string ccvs_status ( string session, string invoice)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_sale | Nach oben | ccvs_textvalue


ccvs_textvalue

(4.0.2 - 4.2.3 only)

ccvs_textvalue -- Get text return value for previous function call

Description

string ccvs_textvalue ( string session)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_status | Nach oben | ccvs_void


ccvs_void

(4.0.2 - 4.2.3 only)

ccvs_void -- Perform a full reversal on a completed transaction

Description

string ccvs_void ( string session, string invoice)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ccvs_textvalue | Nach oben | COM Support Funktionen für Windows


COM Support Funktionen für Windows

PHP Handbuch
Zurück Nach vorne

VIII. COM Support Funktionen für Windows

Einführung

Das Component Object Model (COM) ist eine Technologie, welche die Wiederverwendung von Code erlaubt, egal in welcher Sprache dieser geschrieben wurde. Die Komponenten stellen Schnittstellen bereit, welche die verfügbaren Funktionen, aber nicht deren Implementierung bekanntgeben (z.B. auf welcher Maschine die Komponente gespeichert ist und die Executable, die sie enthält). Anwendungen können über die COM-API beliebige Schnittstellen erzeugen. Man kann sich das wie einen super Remote Procedure Call (RPC) Mechanismus mit einigen grundlegenden Objekten vorstellen. Es trennt die Implementation von der Schnittstelle.

COM unterstützt Versioning, die Trennung von Implementation und Schnittstelle, sowie das Verstecken von Implementierungsdetails, wie z.B. Position der Executable und die Sprache, in welcher die Komponente geschrieben wurde.

Anforderungen

Die COM Funktionen sind nur in der Windowsversion von PHP verfügbar.

Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Com Konfigurationsoptionen

Name | Standardwert | Änderbar
com.allow_dcom | "0" | PHP_INI_SYSTEM
com.autoregister_typelib | "0" | PHP_INI_SYSTEM
com.autoregister_verbose | "0" | PHP_INI_SYSTEM
com.autoregister_casesensitive | "1" | PHP_INI_SYSTEM
com.typelib_file | "" | PHP_INI_SYSTEM
Weitere Details und Definitionen der PHP_INI_* Konstanten finden Sie bei der Funktion ini_set().

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

CLSCTX_INPROC_SERVER (integer)

CLSCTX_INPROC_HANDLER (integer)

CLSCTX_LOCAL_SERVER (integer)

CLSCTX_REMOTE_SERVER (integer)

CLSCTX_SERVER (integer)

CLSCTX_ALL (integer)

VT_NULL (integer)

VT_EMPTY (integer)

VT_UI1 (integer)

VT_I2 (integer)

VT_I4 (integer)

VT_R4 (integer)

VT_R8 (integer)

VT_BOOL (integer)

VT_ERROR (integer)

VT_CY (integer)

VT_DATE (integer)

VT_BSTR (integer)

VT_DECIMAL (integer)

VT_UNKNOWN (integer)

VT_DISPATCH (integer)

VT_VARIANT (integer)

VT_I1 (integer)

VT_UI2 (integer)

VT_UI4 (integer)

VT_INT (integer)

VT_UINT (integer)

VT_ARRAY (integer)

VT_BYREF (integer)

CP_ACP (integer)

CP_MACCP (integer)

CP_OEMCP (integer)

CP_UTF7 (integer)

CP_UTF8 (integer)

CP_SYMBOL (integer)

CP_THREAD_ACP (integer)

Siehe auch

Weitere Informationen zu COM finden Sie in der COM specification, oder in Don Box's Yet Another COM Library (YACL).

Inhaltsverzeichnis
com -- COM Klasse
VARIANT -- VARIANT Klasse
com_addref -- Erhöht den Referenzzähler der Komponente
com_get -- Liefert den Wert der Eigenschaft einer COM Komponente
com_invoke -- Ruft eine Methode einer COM Komponente auf
com_isenum -- Holt eine IEnumVariant
com_load_typelib -- Lädt eine Typelib
com_load -- Erstellt eine neue Referenz auf eine COM Komponente
com_propget -- Liefert den Wert der Eigenschaft einer COM Komponente
com_propput -- Weist einer Eigenschaft einer COM Komponente einen Wert zu
com_propset -- Weist einer Eigenschaft einer COM Komponente einen Wert zu
com_release -- Reduziert den Referenzzähler der Komponente
com_set -- Weist einer Eigenschaft einer COM Komponente einen Wert zu.

Zurück | Zum Anfang | Nach vorne
ccvs_void | Nach oben | com


com

(no version information, might be only in CVS)

com -- COM Klasse

Synopsis

$obj = new COM("server.object")

Beschreibung

Die COM Klasse bietet ein Gerüst zur Integration von (D)COM Komponenten in Ihre PHP Skripte.

Methoden

string COM::COM ( string module_name [, string server_name [, int codepage]])

COM Klassen Konstruktor. Parameter:

module_name

Name oder Klassen-ID der gewünschten Komponente.

server_name

Name des DCOM Servers, von welchem die Komponente geholt werden soll. Ist NULL angegeben, wird localhost angenommen. Um DCOM zuzulassen, muss com.allow_dcom in der php.ini auf TRUE gesetzt sein.

codepage

Spezifiziert die Codepage, welche zur Konvertierung der PHP-Strings in Unicode-Strings und umgekehrt verwendet wird. Mögliche Werte sind CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 und CP_UTF8.

Beispiel 1. COM Beispiel (1)

// Word starten
$word = new COM("word.application") or die("Konnte Word nicht instantiieren");
print "Word geladen, Version {$word->Version}\n";

//Fenster anzeigen
$word->Visible = 1;

//ein leeres Dokument öffnen
$word->Documents->Add();

//irgendetwas tun
$word->Selection->TypeText("Dies ist ein Test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//Word schließen
$word->Quit();

//Das Objekt freigeben
$word->Release();
$word = null;

Beispiel 2. COM example (2)

$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

$rs = $conn->Execute("SELECT * FROM sometable");    // Recordset

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++)
{
    $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF)
{
    for ($i=0; $i < $num_columns; $i++)
    {
        echo $fld[$i]->value . "\t";
    }
    echo "\n";
    $rowcount++;            // increments rowcount
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs->Release();
$conn->Release();

$rs = null;
$conn = null;

Zurück | Zum Anfang | Nach vorne
COM Support Funktionen für Windows | Nach oben | VARIANT


VARIANT

(no version information, might be only in CVS)

VARIANT -- VARIANT Klasse

Synopsis

$vVar = new VARIANT($var)

Beschreibung

Ein einfacher Container, um Variablen in VARIANT Strukturen zu verpacken.

Methoden

string VARIANT::VARIANT ( [mixed value [, int type [, int codepage]]])

VARIANT Klassen-Konstruktor. Parameter:

value

Anfangswert. Ist er nicht angegeben, wird ein VT_EMPTY Objekt erzeugt.

type

spezifiziert den Typ vom Inhalt des VARIANT Objektes. Mögliche Werte sind VT_UI1, VT_UI2, VT_UI4, VT_I1, VT_I2, VT_I4, VT_R4, VT_R8, VT_INT, VT_UINT, VT_BOOL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DECIMAL, VT_UNKNOWN, VT_DISPATCH und VT_VARIANT. Diese Werte sind wechselseitig exklusiv, können aber mit VT_BYREF vereinigt werden, um zu spezifizieren, dass es sich um einen Wert handelt. Wird er weggelassen, wird der Typ von value verwendet. Konsultieren Sie bitte die MSDN Library für weitere Informationen.

codepage

gibt die Codepage an, welche zur Konvertierung der PHP-Strings in Unicode-Strings und umgekehrt verwendet wird. Mögliche Werte sind CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 und CP_UTF8.

Zurück | Zum Anfang | Nach vorne
com | Nach oben | com_addref


com_addref

(PHP 4 >= 4.1.0)

com_addref -- Erhöht den Referenzzähler der Komponente

Beschreibung

void com_addref ( void )

Erhöht den Referenzzähler der Komponente.

Zurück | Zum Anfang | Nach vorne
VARIANT | Nach oben | com_get


com_get

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_get -- Liefert den Wert der Eigenschaft einer COM Komponente

Beschreibung

mixed com_get ( resource com_object, string property)

Liefert den Wert der Eigenschaft property der mittels com_object referenzierten COM Komponente. Gibt im Fehlerfall FALSE zurück.

Zurück | Zum Anfang | Nach vorne
com_addref | Nach oben | com_invoke


com_invoke

(PHP 3>= 3.0.3)

com_invoke -- Ruft eine Methode einer COM Komponente auf

Beschreibung

mixed com_invoke ( resource com_object, string function_name [, mixed function parameters, ...])

com_invoke() ruft eine Methode des mittels com_object referenzierten COM Komponente auf. Gibt bei Erfolg den Rückgabewert von function_name, oder im Fehlerfall FALSE zurück.

Zurück | Zum Anfang | Nach vorne
com_get | Nach oben | com_isenum


com_isenum

(PHP 4 >= 4.1.0)

com_isenum -- Holt eine IEnumVariant

Beschreibung

void com_isenum ( object com_module)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
com_invoke | Nach oben | com_load_typelib


com_load_typelib

(PHP 4 >= 4.1.0, PHP 5)

com_load_typelib -- Lädt eine Typelib

Beschreibung

void com_load_typelib ( string typelib_name [, int case_insensitive])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
com_isenum | Nach oben | com_load


com_load

(PHP 3>= 3.0.3)

com_load -- Erstellt eine neue Referenz auf eine COM Komponente

Beschreibung

string com_load ( string module_name [, string server_name [, int codepage]])

com_load() erstellt eine neue COM Komponente, und gibt eine Referenz darauf zurück. Im Fehlerfall wird FALSE zurückgegeben. Mögliche Werte für codepage sind CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 und CP_UTF8.

Zurück | Zum Anfang | Nach vorne
com_load_typelib | Nach oben | com_propget


com_propget

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_propget -- Liefert den Wert der Eigenschaft einer COM Komponente

Beschreibung

mixed com_propget ( resource com_object, string property)

Diese Funktion ist ein Alias von com_get().

Zurück | Zum Anfang | Nach vorne
com_load | Nach oben | com_propput


com_propput

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_propput -- Weist einer Eigenschaft einer COM Komponente einen Wert zu

Beschreibung

void com_propput ( resource com_object, string property, mixed value)

Diese Funktion ist ein Alias für com_set().

Zurück | Zum Anfang | Nach vorne
com_propget | Nach oben | com_propset


com_propset

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_propset -- Weist einer Eigenschaft einer COM Komponente einen Wert zu

Beschreibung

void com_propset ( resource com_object, string property, mixed value)

Diese Funktion ist ein Alias für com_set().

Zurück | Zum Anfang | Nach vorne
com_propput | Nach oben | com_release


com_release

(PHP 4 >= 4.1.0)

com_release -- Reduziert den Referenzzähler der Komponente

Beschreibung

void com_release ( void )

Reduziert den Referenzzähler der Komponente.

Zurück | Zum Anfang | Nach vorne
com_propset | Nach oben | com_set


com_set

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_set -- Weist einer Eigenschaft einer COM Komponente einen Wert zu.

Beschreibung

void com_set ( resource com_object, string property, mixed value)

Setzt den Wert der Eigenschaft property der COM Komponente com_object. Gibt bei Erfolg den neu gesetzten Wert, oder im Fehlerfall FALSE zurück.

Zurück | Zum Anfang | Nach vorne
com_release | Nach oben | Klassen- und Objekt-Funktionen


Klassen- und Objekt-Funktionen

PHP Handbuch
Zurück Nach vorne

IX. Klassen- und Objekt-Funktionen

Einführung

About

Diese Funktionen ermöglichen Ihnen den Zugriff auf Informationen über Klassen und Objektinstanzen. Sie können den Namen der Klasse ermitteln, zu der ein Objekt gehört, sowie ihre Eigenschaften und -methoden. Mit diesen Funktionen können Sie nicht nur die Klassenmitgliedschaft eines Objektes herausfinden, sondern auch ihre Abstammung (d. h. welche Klasse die des Objektes erweitert).

Anwendungsbeispiel

In diesem Beispiel definieren wir zuerst eine Basisklasse und eine Erweiterung dieser Klasse. Die Basisklasse beschreibt ein beliebiges Gemüse, ob es eßbar ist oder nicht, sowie seine Farbe. Die Subklasse Spinat fügt eine Methode hinzu, um sie zu kochen und eine weitere, um herauszufinden, ob sie gekocht ist.

Beispiel 1. classes.inc

<?php

// Basisklasse mit Eigenschaften und Methoden
class Gemuese {

    var $essbar;
    var $farbe;

    function Gemuese( $essbar, $farbe="grün" ) {
        $this->essbar = $essbar;
        $this->farbe = $farbe;
    }

    function ist_essbar() {
        return $this->essbar;
    }

    function welche_farbe() {
        return $this->farbe;
    }

} // Ende der Klasse Gemuese

// erweitert die Basisklasse
class Spinat extends Gemuese {

    var $gekocht = false;

    function Spinat() {
        $this->Gemuese( true, "grün" );
    }

    function koche_es() {
        $this->gekocht = true;
    }

    function ist_gekocht() {
        return $this->gekocht;
    }

} // Ende der Klasse Spinat

?>

Jetzt instantiieren wir zwei Objekte von diesen Klassen und geben Informationen über sie aus, einschließlich ihrer Abstammung. Wir definieren auch einige Hilfsfunktionen, hauptsächlich um eine hübsche Ausgabe der Variablen zu erhalten.

Beispiel 2. test_script.php

<pre>
<?php

include "classes.inc";

// utility functions

function zeige_vars($obj) {
    $arr = get_object_vars($obj);
    while (list($prop, $val) = each($arr))
        echo "\t$prop = $val\n";
}

function zeige_methoden($obj) {
    $arr = get_class_methods(get_class($obj));
    foreach ($arr as $method)
        echo "\tfunction $method()\n";
}

function klassen_abstammung($obj, $class) {
    global $$obj;
    if (is_subclass_of($$obj, $class)) {
        echo "Objekt $obj gehört zur Klasse ".get_class($$obj);
        echo " einer Subklasse von $class\n";
    } else {
        echo "Object $obj gehört nicht zu einer Subklasse von $class\n";
    }
}

// Instantiiere zwei Objekte

$veggie = new Gemuese(true,"blau");
$leafy = new Spinat();

// Informationen über die Objekte ausgeben
echo "veggie: KLASSE ".get_class($veggie)."\n";
echo "leafy: KLASSE ".get_class($leafy);
echo ", ELTERN ".get_parent_class($leafy)."\n";

// Zeige Eigenschaften von veggie
echo "\nveggie: Eigenschaften\n";
zeige_vars($veggie);

// und Methoden von leafy
echo "\nleafy: Methoden\n";
zeige_methoden($leafy);

echo "\nAbstammung:\n";
klassen_abstammung("leafy", "Spinat");
klassen_abstammung("leafy", "Gemuese");
?>
</pre>

Wichtig ist in diesem Beispiel, dass das Objekt $leafy eine Instanz der Klasse Spinat ist, die eine Subklasse von Gemuese ist. Darum gibt der letzte Teil des obigen Skripts folgendes aus:

[...]
Abstammung:
Objekt leafy gehört nicht zu einer Subklasse von Spinat
Objekt leafy gehört zur Klasse spinat einer Subklasse von Gemuese

Inhaltsverzeichnis
call_user_method_array -- Call a user method given with an array of parameters [deprecated]
call_user_method -- Aufruf einer benutzerdefinierten Methode eines bestimmten Objektes
class_exists -- Prüft, ob eine Klasse definiert ist
get_class_methods -- Liefert die Namen aller Methoden einer Klasse
get_class_vars -- Liefert die Standard-Elemente einer Klasse
get_class -- Gibt den Namen der Klasse eines Objektes zurück
get_declared_classes -- Gibt ein Array mit den Namen der definierten Klassen zurück
get_declared_interfaces -- Returns an array of all declared interfaces.
get_object_vars -- Liefert die Elemente eines Objekts
get_parent_class -- Gibt den Namen der Elternklasse eines Objektes zurück
is_a -- Returns TRUE if the object is of this class or has this class as one of its parents
is_subclass_of -- Bestimmt, ob ein Objekt zu einer Subklasse der angegebenen Klasse gehört
method_exists -- Prüft, ob Methode in einer Klasse definiert ist

Zurück | Zum Anfang | Nach vorne
com_set | Nach oben | call_user_method_array


call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_array -- Call a user method given with an array of parameters [deprecated]

Description

mixed call_user_method_array ( string method_name, object obj [, array paramarr])

Warnung

The call_user_method_array() function is deprecated as of PHP 4.1.0, use the call_user_func_array() variety with the array(&$obj, "method_name") syntax instead.

Calls the method referred by method_name from the user defined obj object, using the parameters in paramarr.

See also: call_user_func_array(), and call_user_func().

Zurück | Zum Anfang | Nach vorne
Klassen- und Objekt-Funktionen | Nach oben | call_user_method


call_user_method

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

call_user_method -- Aufruf einer benutzerdefinierten Methode eines bestimmten Objektes

Beschreibung

mixed call_user_method ( string method_name, object obj [, mixed parameter [, mixed ...]])

Ruft die durch method_name angegebene Methode des benutzerdefinierten Objektes obj auf. Ein Anwendungsbeispiel sehen Sie unten, wo wir eine Klasse definieren, ein Objekt instantiieren und call_user_method() benutzen, um seine Methode zeige_info indirekt aufzurufen.

<?php
class Land {
    var $NAME;
    var $TLD;

    function Land($name, $tld) {
        $this->NAME = $name;
        $this->TLD = $tld;
    }

    function zeige_info($prestr="") {
        echo $prestr."Land: ".$this->NAME."\n";
        echo $prestr."Top-Level-Domain: ".$this->TLD."\n";
    }
}

$cntry = new Land("Peru","pe");

echo "* Direkter Aufruf der Methode\n";
$cntry->zeige_info();

echo "\n* Indirekter Aufruf derselben Methode\n";
call_user_method ("zeige_info", $cntry, "\t");
?>

Siehe auch call_user_func().

Zurück | Zum Anfang | Nach vorne
call_user_method_array | Nach oben | class_exists


class_exists

(PHP 4 , PHP 5)

class_exists -- Prüft, ob eine Klasse definiert ist

Beschreibung

bool class_exists ( string class_name)

Diese Funktion gibt TRUE zurück, falls eine Klasse mit dem Namen class_name definiert ist, ansonsten wird FALSE zurückgegeben.

Zurück | Zum Anfang | Nach vorne
call_user_method | Nach oben | get_class_methods


get_class_methods

(PHP 4 , PHP 5)

get_class_methods -- Liefert die Namen aller Methoden einer Klasse

Beschreibung

array get_class_methods ( string class_name)

Diese Funktion liefert ein String-Array zurück, das mit den Namen aller in der Klasse class_name definerten Methoden gefüllt ist.

Zurück | Zum Anfang | Nach vorne
class_exists | Nach oben | get_class_vars


get_class_vars

(PHP 4 , PHP 5)

get_class_vars -- Liefert die Standard-Elemente einer Klasse

Beschreibung

array get_class_vars ( string class_name)

Diese Funktion liefert ein String-Array zurück, das mit den Standard-Elementen der Klasse class_name gefüllt ist. Standard-Elemente sind all die Elemente, die bereits in der Klassendefinition mit 'var' definiert wurden.

Zurück | Zum Anfang | Nach vorne
get_class_methods | Nach oben | get_class


get_class

(PHP 4 , PHP 5)

get_class -- Gibt den Namen der Klasse eines Objektes zurück

Beschreibung

string get_class ( object obj)

Diese Funktion gibt den Namen der Klasse zurück, von der obj eine Instanz ist.

Siehe auch get_parent_class(), is_subclass_of()

Zurück | Zum Anfang | Nach vorne
get_class_vars | Nach oben | get_declared_classes


get_declared_classes

(PHP 4 , PHP 5)

get_declared_classes -- Gibt ein Array mit den Namen der definierten Klassen zurück

Beschreibung

array get_declared_classes ( void )

Diese Funktion gibt ein Array mit den Namen aller im aktuellen Skript definierten Klassen zurück.

Anmerkung: In PHP 4.0.1pl2 werden drei zusätzliche Klassen am Anfang des Array zurückgegeben: stdClass (definiert in Zend/zend.c), OverloadedTestClass (definiert in ext/standard/basic_functions.c) und Directory (definiert in ext/standard/dir.c).

Abhängig von den Optionen, mit denen PHP kompiliert wurde, könnnen noch weitere Klassen vorhanden sein.

Zurück | Zum Anfang | Nach vorne
get_class | Nach oben | get_declared_interfaces


get_declared_interfaces

(PHP 5)

get_declared_interfaces -- Returns an array of all declared interfaces.

Description

array get_declared_interfaces ( void )

This function returns an array of the names of the declared interfaces in the current script.

Beispiel 1. get_declared_interfaces() example

<?php
print_r(get_declared_interfaces());
?>

The above example will output something similar to: :

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Zurück | Zum Anfang | Nach vorne
get_declared_classes | Nach oben | get_object_vars


get_object_vars

(PHP 4 , PHP 5)

get_object_vars -- Liefert die Elemente eines Objekts

Beschreibung

array get_object_vars ( object obj)

Diese Funktion gibt ein assoziatives Array der für das angegebene Objekt obj definierten Eigenschaften zurück. Wenn Variablen der Klasse, von der obj eine Instanz ist, kein Wert zugewiesen wurde, werden diese nicht im Array zurückgegeben.

Beispiel 1. Gebrauch von get_object_vars()

<?php
class Punkt2D {
    var $x, $y;
    var $bezeichnung;

    function Punkt2D($x, $y) {
        $this->x = $x;
        $this->y = $y;
    }

    function setzeBezeichnung($bezeichnung) {
        $this->bezeichnung = $bezeichnung;
    }

    function gibPunkt() {
        return array("x" => $this->x,
                     "y" => $this->y,
                     "bezeichnung" => $this->bezeichnung);
    }
}

$p1 = new Punkt2D(1.233, 3.445);
print_r(get_object_vars($p1));
// "$bezeichnung" ist deklariert, aber nicht definiert
// Array
// (
//     [x] => 1.233
//     [y] => 3.445
// )

$p1->setzeBezeichnung("point #1");

print_r(get_object_vars($p1));
// Array
// (
//     [x] => 1.233
//     [y] => 3.445
//     [bezeichnung] => point #1
// )

?>

Siehe auch get_class_methods(), get_class_vars()

Zurück | Zum Anfang | Nach vorne
get_declared_interfaces | Nach oben | get_parent_class


get_parent_class

(PHP 4 , PHP 5)

get_parent_class -- Gibt den Namen der Elternklasse eines Objektes zurück

Beschreibung

string get_parent_class ( mixed obj)

Falls obj ein Objekt ist, gibt diese Funktion den Namen der Elternklasse der Klasse zurück, von der obj eine Instanz ist.

Falls obj eine Zeichenkette ist, gibt diese Funktion den Namen der Elternklasse der Klasse mit diesem Namen zurück. Diese Funktionalität wurde in PHP 4.0.5 hinzugefügt.

Beispiel 1. Die Verwendung von get_parent_class()

<?php

class vater {
    function vater() {
    // implementiert etwas Logik
    }
}

class kind extends vater {
    function kind() {
        echo "Ich bin das Kind von " , get_parent_class($this) , "\n";
    }
}

class kind2 extends vater {
    function kind2() {
        echo "Ich bin ebenfalls das Kind von " , get_parent_class('kind2') , "\n";
    }
}

$foo = new kind();
$bar = new kind2();

?>

Das ist die Ausgabe:

Ich bin das Kind von vater
Ich bin ebenfalls das Kind von vater

Siehe auch get_class() und is_subclass_of()

Zurück | Zum Anfang | Nach vorne
get_object_vars | Nach oben | is_a


is_a

(PHP 4 >= 4.2.0, PHP 5)

is_a -- Returns TRUE if the object is of this class or has this class as one of its parents

Description

bool is_a ( object object, string class_name)

This function returns TRUE if the object is of this class or has this class as one of its parents, FALSE otherwise.

Beispiel 1. is_a() example

<?php
// define a class
class WidgetFactory
{
  var $oink = 'moo';
}

// create a new object
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
  echo "yes, \$WF is still a WidgetFactory\n";
}
?>

See also get_class(),
get_parent_class(), and
is_subclass_of().

Zurück | Zum Anfang | Nach vorne
get_parent_class | Nach oben | is_subclass_of


is_subclass_of

(PHP 4 , PHP 5)

is_subclass_of -- Bestimmt, ob ein Objekt zu einer Subklasse der angegebenen Klasse gehört

Beschreibung

bool is_subclass_of ( object obj, string superclass)

Diese Funktion gibt TRUE zurück, falls das Objekt obj zu einer Subklasse von superclass gehört, ansonsten wird FALSE zurückgegeben.

Siehe auch get_class(), get_parent_class()

Zurück | Zum Anfang | Nach vorne
is_a | Nach oben | method_exists


method_exists

(PHP 4 , PHP 5)

method_exists -- Prüft, ob Methode in einer Klasse definiert ist

Beschreibung

bool method_exists ( object object, string method_name)

Diese Funktion liefert TRUE, wenn eine Methode mit Namen method_name für das in object übergebene Objekt definiert wurde, sonst FALSE.

Siehe auch function_exists()

Zurück | Zum Anfang | Nach vorne
is_subclass_of | Nach oben | ClibPDF Funktionen


ClibPDF Funktionen

PHP Handbuch
Zurück Nach vorne

X. ClibPDF Funktionen

Einführung

Mit der ClibPDF können Sie PDF-Dokumente mit PHP erstellen. Funktionalität und API der ClibPDF sind der PDFlib ähnlich. Diese Dokumentation sollten Sie zusammen mit dem ClibPDF-Handbuch lesen, weil letzteres diese Bibliothek viel ausführlicher erklärt.

Die Namen vieler Funktionen in der ClibPDF, im PHP-Modul und in der PDFlib sind gleich. Außer cpdf_open() nehmen alle Funktionen die Bezeichnung des Dokuments als ihren ersten Parameter.

Diese Bezeichnung wird gegenwärtig nicht intern verwendet, weil ClibPDF die gleichzeitige Erzeugung mehrerer PDF-Dokumente nicht unterstützt. Da das Ergebnis nicht vorhersehbar ist, sollten Sie es am besten nicht einmal testen. Die Folgen, die das in einer multi-threaded Umgebung hätte, kann ich nicht abschätzen. Laut ClibPDF-Autor wird sich das in einer der nächsten Versionen ändern (als dieses geschrieben wurde, war Version 1.10 aktuell). Verwenden Sie das pdflib-Modul, wenn Sie diese Funktionalität benötigen.

Eine nette Eigenschaft der ClibPDF (und der PDFlib) ist die Möglichkeit, das PDF-Dokument vollständig im Speicher zu erzeugen, ohne temporäre Dateien zu verwenden. Sie bietet auch die Möglichkeit, Koordinaten in einer vordefinierten Längeneinheit zu übergeben. Dies ist eine praktische Fähigkeit, die bei Verwendung der PDFlib aber auch mit pdf_translate() simuliert werden kann.

Eine weitere nette Eigenschaft von ClibPDF ist die Tatsache, dass jede Seite jederzeit geändert werden kann, selbst wenn schon eine neue Seite geöffnet wurde. Die Funktion cpdf_set_current_page() erlaubt es, die aktuelle Seite zu verlassen und mit den Änderungen einer anderen Seite fortzufahren.

Die meisten Funktionen sind ziemlich einfach zu benutzen. Der schwierigste Teil ist wahrscheinlich die Erzeugung eines sehr einfachen PDF-Dokuments überhaupt. Das folgende Beispiel sollte für Sie eine gute Starthilfe sein. Es erzeugt ein Dokument mit einer Seite. Die Seite enthält den Umriss des Textes "Times-Roman" in 30-Punkt-Schrift. Der Text ist unterstrichen.

Anmerkung: Falls Sie an alternativen freien PDF-Generatoren interessiert sind, die keine externen PDF-Bibliotheken benutzen, siehe die diesbezügliche FAQ.

Anforderungen

Um die ClibPDF-Funktionen benutzen zu können, müssen Sie das ClibPDF-Paket installieren. Es ist zum Herunterladen erhältlich von FastIO, aber für deren kommerzielle Verwendung ist es erforderlich, dass Sie eine Lizenz erwerben. Für PHP wird cpdflib >= 2 benötigt.

Installation

Damit diese Funktionen zur Verfügung stehen, müssen Sie PHP mit --with-cpdflib[=DIR] übersetzen. DIR ist das cpdflib-Installationsverzeichnis, standardmäßig /usr. Zusätzlich können Sie die jpeg- und tiff-Bibliotheken für die Verwendung durch ClibPDF angeben. Das erreichen Sie, indem Sie an ihre Konfigurationszeile die Optionen --with-jpeg-dir[=DIR] --with-tiff-dir[=DIR] anfügen.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

CPDF_PM_NONE (integer)

CPDF_PM_OUTLINES (integer)

CPDF_PM_THUMBS (integer)

CPDF_PM_FULLSCREEN (integer)

CPDF_PL_SINGLE (integer)

CPDF_PL_1COLUMN (integer)

CPDF_PL_2LCOLUMN (integer)

CPDF_PL_2RCOLUMN (integer)

Beispiele

Beispiel 1. Ein einfaches ClibPDF-Beispiel

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Seite 1");
cpdf_begin_text($cpdf);
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 750);
cpdf_end_text($cpdf);
cpdf_moveto($cpdf, 50, 740);
cpdf_lineto($cpdf, 330, 740);
cpdf_stroke($cpdf);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

Die pdflib-Distribution enthält ein komplexeres Beispiel, das eine Reihe von Seiten mit einer Analoguhr erzeugt. Hier ist dieses Beispiel, das unter Verwendung der ClibPDF-Erweiterung in PHP konvertiert wurde:

Beispiel 2. pdfclock-Beispiel der pdflib 2.0 Distribution

<?php
$radius = 200;
$margin = 20;
$pagecount = 40;

$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php");
cpdf_set_title($pdf, "Analog Clock");

while ($pagecount-- > 0) {
  cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);

  cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* wipe */

  cpdf_translate($pdf, $radius + $margin, $radius + $margin);
  cpdf_save($pdf);
  cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

  /* minute strokes */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6) {
    cpdf_rotate($pdf, 6.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin/3, 0.0);
    cpdf_stroke($pdf);
  }

  cpdf_restore($pdf);
  cpdf_save($pdf);

  /* 5 minute strokes */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30) {
    cpdf_rotate($pdf, 30.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin, 0.0);
    cpdf_stroke($pdf);
  }

  $ltime = getdate();

  /* draw hour hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius/2, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw minute hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius * 0.8, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw second hand */
  cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
  cpdf_setlinewidth($pdf, 2);
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
  cpdf_moveto($pdf, -$radius/5, 0.0);
  cpdf_lineto($pdf, $radius, 0.0);
  cpdf_stroke($pdf);
  cpdf_restore($pdf);

  /* draw little circle at center */
  cpdf_circle($pdf, 0, 0, $radius/30);
  cpdf_fill($pdf);

  cpdf_restore($pdf);

  cpdf_finalize_page($pdf, $pagecount+1);
}

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>

Siehe auch

Siehe auch die Dokumentation der PDFlib-Erweiterung.

Inhaltsverzeichnis
cpdf_add_annotation -- Fügt eine Anmerkung ein
cpdf_add_outline -- Fügt ein Lesezeichen für die aktuelle Seite hinzu
cpdf_arc -- Zeichnet einen Kreisbogen
cpdf_begin_text -- Beginnt einen Textabschnitt
cpdf_circle -- Zeichnet einen Kreis
cpdf_clip -- Beschränkt alle Zeichnungen auf den aktuellen Pfad
cpdf_close -- Schließt ein PDF-Dokument
cpdf_closepath_fill_stroke -- Schließt, füllt und zeichnet den aktuellen Pfad
cpdf_closepath_stroke -- Schließt einen Pfad und zeichnet eine Linie entlang des Pfades
cpdf_closepath -- Schließt den aktuellen Pfad
cpdf_continue_text -- Gibt den Text in der nächsten Zeile aus
cpdf_curveto -- Zeichnet eine Kurve
cpdf_end_text -- Beendet einen Textabschnitt
cpdf_fill_stroke -- Füllt und zeichnet den aktuellen Pfad
cpdf_fill -- Füllt den aktuellen Pfad
cpdf_finalize_page -- Beendet eine Seite
cpdf_finalize -- Beendet ein Dokument
cpdf_global_set_document_limits -- Setzt Beschränkungen für alle PDF-Dokumente
cpdf_import_jpeg -- Öffnet ein JPEG-Bild
cpdf_lineto -- Zeichnet eine Linie
cpdf_moveto -- Legt die aktuelle Position fest
cpdf_newpath -- Beginnt einen neuen Pfad
cpdf_open -- Öffnet ein neues PDF-Dokument
cpdf_output_buffer -- Gibt das PDF-Dokument aus dem Zwischenspeicher aus
cpdf_page_init -- Beginnt eine neue Seite
cpdf_place_inline_image -- Platziert ein Bild auf der Seite
cpdf_rect -- Zeichnet ein Rechteck
cpdf_restore -- Stellt die zuvor gesicherte Umgebung wieder her
cpdf_rlineto -- Zeichnet eine Linie (relativ)
cpdf_rmoveto -- Legt die relative aktuelle Position fest
cpdf_rotate_text -- Legt den Drehwinkel für Text fest
cpdf_rotate -- Legt den Drehwinkel fest
cpdf_save_to_file -- Schreibt ein PDF-Dokument in eine Datei
cpdf_save -- Sichert die aktuelle Umgebung
cpdf_scale -- Legt die Vergrößerung fest
cpdf_set_action_url -- Setzt einen Hyperlink
cpdf_set_char_spacing -- Legt den Zeichenabstand fest
cpdf_set_creator -- Setzt das Urheberfeld des PDF-Dokuments
cpdf_set_current_page -- Setzt die aktuelle Seite
cpdf_set_font_directories -- Legt die Verzeichnisse fest, die bei Verwendung externer Schriftarten durchsucht werden
cpdf_set_font_map_file -- Legt bei Verwendung externer Schriftarten die Datei mit den Schriftart-Dateiname-Zuordnungen fest
cpdf_set_font -- Wählt die aktuelle Schriftart und -größe
cpdf_set_horiz_scaling -- Setzt die horizontale Textskalierung
cpdf_set_keywords -- Setzt das Schlüsselwortfeld des PDF-Dokuments
cpdf_set_leading -- Setzt den Zeilenabstand
cpdf_set_page_animation -- Legt den Übergang zwischen den Seiten fest
cpdf_set_subject -- Setzt das Themenfeld des PDF-Dokuments
cpdf_set_text_matrix -- Legt die Text-Matrix fest
cpdf_set_text_pos -- Legt die Textposition fest
cpdf_set_text_rendering -- Legt fest, wie Text wiedergegeben wird
cpdf_set_text_rise -- Legt die vertikale Textverschiebung fest
cpdf_set_title -- Setzt das Titelfeld PDF-Dokuments
cpdf_set_viewer_preferences -- Legt fest, wie das Dokument im Betrachter dargestellt wird
cpdf_set_word_spacing -- Legt den Abstand zwischen den Wörtern fest
cpdf_setdash -- Setzt eine gestrichelte Linie
cpdf_setflat -- Legt die Flachheit fest
cpdf_setgray_fill -- Setzt die Füllfarbe auf einen Grauwert
cpdf_setgray_stroke -- Setzt die Zeichenfarbe auf einen Grauwert
cpdf_setgray -- Setzt Zeichen- und Füllfarbe auf einen Grauwert
cpdf_setlinecap -- Legt den Typ der Linienenden fest
cpdf_setlinejoin -- Legt den Typ der Linienverbindungen fest
cpdf_setlinewidth -- Legt die Linienbreite fest
cpdf_setmiterlimit -- Legt die Gehrungsbegrenzung fest
cpdf_setrgbcolor_fill -- Setzt die Füllfarbe auf einen RGB-Farbwert
cpdf_setrgbcolor_stroke -- Setzt die Zeichenfarbe auf einen RGB-Farbwert
cpdf_setrgbcolor -- Setzt Zeichen- und Füllfarbe auf einen RGB-Farbwert
cpdf_show_xy -- Gibt Text an der angegebenen Position aus
cpdf_show -- Gibt Text an der aktuellen Position aus
cpdf_stringwidth -- Liefert die Breite einer Zeichenkette in der aktuellen Schriftart
cpdf_stroke -- Zeichnet eine Linie entlang des aktuellen Pfades
cpdf_text -- Gibt den Text mit Parametern aus
cpdf_translate -- Legt den Ursprung des Koordinatensystems fest

Zurück | Zum Anfang | Nach vorne
method_exists | Nach oben | cpdf_add_annotation


cpdf_add_annotation

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

cpdf_add_annotation -- Fügt eine Anmerkung ein

Beschreibung

bool cpdf_add_annotation ( int PDF-Dokument, float ulx, float uly, float orx, float ory, string Titel, string Inhalt [, int Modus])

Die Funktion cpdf_add_annotation() fügt eine Anmerkung ein, bei der die untere linke Ecke bei (ulx, uly) und die obere rechte Ecke bei (orx, ory) liegt. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Zurück | Zum Anfang | Nach vorne
ClibPDF Funktionen | Nach oben | cpdf_add_outline


cpdf_add_outline

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_add_outline -- Fügt ein Lesezeichen für die aktuelle Seite hinzu

Beschreibung

int cpdf_add_outline ( int PDF-Dokument, int lastoutline, int sublevel, int open, int Seitennummer, string Text)

Die Funktion cpdf_add_outline() fügt ein Lesezeichen mit dem Text Text hinzu, das auf die aktuelle Seite zeigt.

Beispiel 1. Hinzufügen einer Seitenübersicht

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Seite 1");
// ...
// etwas Zeichnung
// ...
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

Zurück | Zum Anfang | Nach vorne
cpdf_add_annotation | Nach oben | cpdf_arc


cpdf_arc

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_arc -- Zeichnet einen Kreisbogen

Beschreibung

bool cpdf_arc ( int PDF-Dokument, float x-koor, float y-koor, float Radius, float Anfang, float Ende [, int Modus])

Die Funktion cpdf_arc() zeichnet einen Kreisbogen mit dem Mittelpunkt (x-koor, y-koor) und dem Radius Radius, der mit dem Winkel Anfang beginnt und mit dem Winkel Ende endet. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_circle().

Zurück | Zum Anfang | Nach vorne
cpdf_add_outline | Nach oben | cpdf_begin_text


cpdf_begin_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_begin_text -- Beginnt einen Textabschnitt

Beschreibung

bool cpdf_begin_text ( int PDF-Dokument)

Die Funktion cpdf_begin_text() beginnt einen Textabschnitt. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Der erzeugte Textabschnitt muss mit cpdf_end_text() beendet werden.

Beispiel 1. Ausgabe von Text

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Etwas Text");
cpdf_end_text($pdf)
?>

Siehe auch: cpdf_end_text().

Zurück | Zum Anfang | Nach vorne
cpdf_arc | Nach oben | cpdf_circle


cpdf_circle

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_circle -- Zeichnet einen Kreis

Beschreibung

bool cpdf_circle ( int PDF-Dokument, float x-koor, float y-koor, float Radius [, int Modus])

Die Funktion cpdf_circle() zeichnet einen Kreis mit dem Mittelpunkt (x-koor, y-koor) und dem Radius Radius. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_arc().

Zurück | Zum Anfang | Nach vorne
cpdf_begin_text | Nach oben | cpdf_clip


cpdf_clip

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_clip -- Beschränkt alle Zeichnungen auf den aktuellen Pfad

Beschreibung

bool cpdf_clip ( int PDF-Dokument)

Die Funktion cpdf_clip() beschränkt alle Zeichnungen auf den aktuellen Pfad. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_circle | Nach oben | cpdf_close


cpdf_close

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_close -- Schließt ein PDF-Dokument

Beschreibung

bool cpdf_close ( int PDF-Dokument)

Die Funktion cpdf_close() schließt das
PDF-Dokument. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Sie sollte als letzte, sogar nach
cpdf_finalize(),
cpdf_output_buffer() und
cpdf_save_to_file(), aufgerufen werden.

Siehe auch: cpdf_open().

Zurück | Zum Anfang | Nach vorne
cpdf_clip | Nach oben | cpdf_closepath_fill_stroke


cpdf_closepath_fill_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_closepath_fill_stroke -- Schließt, füllt und zeichnet den aktuellen Pfad

Beschreibung

bool cpdf_closepath_fill_stroke ( int PDF-Dokument)

Die Funktion cpdf_closepath_fill_stroke() schließt den aktuellen Pfad, füllt seinen Innenraum mit der aktuellen Füllfarbe und zeichnet ihn. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_closepath(),
cpdf_stroke(), cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() und
cpdf_setrgbcolor().

Zurück | Zum Anfang | Nach vorne
cpdf_close | Nach oben | cpdf_closepath_stroke


cpdf_closepath_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_closepath_stroke -- Schließt einen Pfad und zeichnet eine Linie entlang des Pfades

Beschreibung

bool cpdf_closepath_stroke ( int PDF-Dokument)

Die Funktion cpdf_closepath_stroke() ist eine
Kombination aus cpdf_closepath() und
cpdf_stroke(). Der Pfad wird geschlossen.
Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_closepath() und cpdf_stroke().

Zurück | Zum Anfang | Nach vorne
cpdf_closepath_fill_stroke | Nach oben | cpdf_closepath


cpdf_closepath

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_closepath -- Schließt den aktuellen Pfad

Beschreibung

bool cpdf_closepath ( int PDF-Dokument)

Die Funktion cpdf_closepath() schließt den aktuellen Pfad. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_closepath_stroke | Nach oben | cpdf_continue_text


cpdf_continue_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_continue_text -- Gibt den Text in der nächsten Zeile aus

Beschreibung

bool cpdf_continue_text ( int PDF-Dokument, string Text)

Die Funktion cpdf_continue_text() gibt die Zeichenkette in Text in der nächsten Zeile aus. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_show_xy(),
cpdf_text(),
cpdf_set_leading() und
cpdf_set_text_pos().

Zurück | Zum Anfang | Nach vorne
cpdf_closepath | Nach oben | cpdf_curveto


cpdf_curveto

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_curveto -- Zeichnet eine Kurve

Beschreibung

bool cpdf_curveto ( int PDF-Dokument, float x1, float y1, float x2, float y2, float x3, float y3 [, int Modus])

Die Funktion cpdf_curveto() zeichnet eine Bezier-Kurve vom aktuellen Punkt zum Punkt (x3, y3), wobei (x1, y1) und (x2, y2) als Kontrollpunkte verwendet werden. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_moveto(),
cpdf_rmoveto(),
cpdf_rlineto() und
cpdf_lineto().

Zurück | Zum Anfang | Nach vorne
cpdf_continue_text | Nach oben | cpdf_end_text


cpdf_end_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_end_text -- Beendet einen Textabschnitt

Beschreibung

bool cpdf_end_text ( int PDF-Dokument)

Die Funktion cpdf_end_text() beendet einen Textabschnitt, der mit cpdf_begin_text() begonnen wurde. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. Ausgabe von Text

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Etwas Text");
cpdf_end_text($pdf)
?>

Siehe auch: cpdf_begin_text().

Zurück | Zum Anfang | Nach vorne
cpdf_curveto | Nach oben | cpdf_fill_stroke


cpdf_fill_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_fill_stroke -- Füllt und zeichnet den aktuellen Pfad

Beschreibung

bool cpdf_fill_stroke ( int PDF-Dokument)

Die Funktion cpdf_fill_stroke() füllt den Innenraum des aktuellen Pfades mit der aktuellen Füllfarbe und zeichnet den aktuellen Pfad. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_closepath(),
cpdf_stroke(), cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() und
cpdf_setrgbcolor().

Zurück | Zum Anfang | Nach vorne
cpdf_end_text | Nach oben | cpdf_fill


cpdf_fill

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_fill -- Füllt den aktuellen Pfad

Beschreibung

bool cpdf_fill ( int PDF-Dokument)

Die Funktion cpdf_fill() füllt den Innenraum des aktuellen Pfades mit der aktuellen Füllfarbe. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_closepath(),
cpdf_stroke(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() und
cpdf_setrgbcolor().

Zurück | Zum Anfang | Nach vorne
cpdf_fill_stroke | Nach oben | cpdf_finalize_page


cpdf_finalize_page

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

cpdf_finalize_page -- Beendet eine Seite

Beschreibung

bool cpdf_finalize_page ( int PDF-Dokument, int Seitennummer)

Die Funktion cpdf_finalize_page() beendet die Seite mit der Seitennummer Seitennummer. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Diese Funktion hat nur den Zweck, Speicherplatz zu sparen. Eine abgeschlossene Seite belegt weniger Speicherplatz, kann aber nicht mehr verändert werden.

Siehe auch: cpdf_page_init().

Zurück | Zum Anfang | Nach vorne
cpdf_fill | Nach oben | cpdf_finalize


cpdf_finalize

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_finalize -- Beendet ein Dokument

Beschreibung

bool cpdf_finalize ( int PDF-Dokument)

Die Funktion cpdf_finalize() beendet das Dokument PDF-Dokument. Sie müssen danach trotzdem noch cpdf_close() aufrufen. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_close().

Zurück | Zum Anfang | Nach vorne
cpdf_finalize_page | Nach oben | cpdf_global_set_document_limits


cpdf_global_set_document_limits

(PHP 4 , PHP 5)

cpdf_global_set_document_limits -- Setzt Beschränkungen für alle PDF-Dokumente

Beschreibung

bool cpdf_global_set_document_limits ( int maxSeiten, int maxSchriftarten, int maxAbbildungen, int maxBemerkungen, int maxObjekte)

Die Funktion cpdf_global_set_document_limits() setzt verschiedene Beschränkungen für Dokumente. Damit diese Funktion wirksam wird, muss sie vor cpdf_open() aufgerufen werden. Sie setzt die Beschränkungen für alle Dokumente, die danach geöffnet werden. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_open().

Zurück | Zum Anfang | Nach vorne
cpdf_finalize | Nach oben | cpdf_import_jpeg


cpdf_import_jpeg

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_import_jpeg -- Öffnet ein JPEG-Bild

Beschreibung

int cpdf_import_jpeg ( int PDF-Dokument, string Dateiname, float x-koor, float y-koor, float Winkel, float Breite, float Höhe, float x-Skalierung, float y-Skalierung, int gsave [, int Modus])

Die Funktion cpdf_import_jpeg() öffnet ein Bild, das unter dem Namen Dateiname gespeichert wurde. Das Bild muss im JPEG-Format vorliegen. Es wird auf der aktuellen Seite an der Position (x-koor, y-koor) platziert. Das Bild wird um Winkel Grad gedreht. Damit diese Funktion korrekt funktioniert, darf der Parameter gsave nicht Null sein.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_place_inline_image().

Zurück | Zum Anfang | Nach vorne
cpdf_global_set_document_limits | Nach oben | cpdf_lineto


cpdf_lineto

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_lineto -- Zeichnet eine Linie

Beschreibung

bool cpdf_lineto ( int PDF-Dokument, float x-koor, float y-koor [, int Modus])

Die Funktion cpdf_lineto() zeichnet eine Linie vom aktuellen Punkt zum Punkt mit den Koordinaten (x-koor, y-koor). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_moveto(),
cpdf_rmoveto() und
cpdf_curveto().

Zurück | Zum Anfang | Nach vorne
cpdf_import_jpeg | Nach oben | cpdf_moveto


cpdf_moveto

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_moveto -- Legt die aktuelle Position fest

Beschreibung

bool cpdf_moveto ( int PDF-Dokument, float x-koor, float y-koor [, int Modus])

Die Funktion cpdf_moveto() setzt die aktuelle Position auf die Koordinaten x-koor und y-koor. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_rmoveto().

Zurück | Zum Anfang | Nach vorne
cpdf_lineto | Nach oben | cpdf_newpath


cpdf_newpath

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_newpath -- Beginnt einen neuen Pfad

Beschreibung

bool cpdf_newpath ( int PDF-Dokument)

Die Funktion cpdf_newpath() beginnt auf dem durch den Parameter PDF-Dokument angegebenen Dokument einen neuen Pfad. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_moveto | Nach oben | cpdf_open


cpdf_open

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_open -- Öffnet ein neues PDF-Dokument

Beschreibung

int cpdf_open ( int Komprimierung [, string Dateiname])

Die Funktion cpdf_open() öffnet ein neues PDF-Dokument. Wenn Komprimierung ungleich 0 ist, schaltet dieser Parameter die Komprimierung des Dokuments ein. Der optionale Parameter Dateiname bestimmt die Datei in die das Dokument geschrieben wird. Wenn er nicht angegeben wurde, wird das Dokument im Speicher erzeugt und kann entweder mit cpdf_save_to_file() in eine Datei geschrieben werden oder mit cpdf_output_buffer() an die Standardausgabe geschickt werden.

Anmerkung: Der Rückgabewert wird in künftigen ClibPDF-Versionen als erster Parameter aller anderen Funktionen benötigt, die in ein PDF-Dokument schreiben.

Die ClibPDF-Bibliothek betrachtet den Dateinamen "-" als Synonym für stdout. Das funktioniert allerdings nicht, wenn PHP als Apache-Modul kompiliert wurde, weil die Art und Weise, in der ClibPDF die Ausgabe an stdout vornimmt, nicht mit Apache funktioniert. Sie können dieses Problem lösen, indem Sie keinen Dateinamen angeben und stattdessen cpdf_output_buffer() verwenden, um das PDF-Dokument auszugeben.

Siehe auch: cpdf_close() und cpdf_output_buffer().

Zurück | Zum Anfang | Nach vorne
cpdf_newpath | Nach oben | cpdf_output_buffer


cpdf_output_buffer

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_output_buffer -- Gibt das PDF-Dokument aus dem Zwischenspeicher aus

Beschreibung

bool cpdf_output_buffer ( int PDF-Dokument)

Die Funktion cpdf_output_buffer() gibt das PDF-Dokument an stdout aus. Das Dokument muss im Speicher erstellt worden sein, was der Fall ist, wenn cpdf_open() ohne den Parameter Dateiname aufgerufen wurde. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_open().

Zurück | Zum Anfang | Nach vorne
cpdf_open | Nach oben | cpdf_page_init


cpdf_page_init

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_page_init -- Beginnt eine neue Seite

Beschreibung

bool cpdf_page_init ( int PDF-Dokument, int Seitennummer, int Ausrichtung, float Höhe, float Breite [, float Einheit])

Die Funktion cpdf_page_init() beginnt eine neue Seite mit der Höhe Höhe und der Breite Breite. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Die Seite hat die Nummer Seitennummer und die Ausrichtung Ausrichtung. Ausrichtung kann 0 für Hochformat oder 1 für Querformat sein. Der optionale Parameter Einheit gibt die Einheit des Koordinatensystems in Anzahl von Postscript-Punkten pro Einheit an. Da ein Zoll 72 Punkten entspricht, würde ein Wert von 72 die Einheit auf ein Zoll setzen. Auch der Standardwert ist 72.

Siehe auch: cpdf_set_current_page().

Zurück | Zum Anfang | Nach vorne
cpdf_output_buffer | Nach oben | cpdf_place_inline_image


cpdf_place_inline_image

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_place_inline_image -- Platziert ein Bild auf der Seite

Beschreibung

bool cpdf_place_inline_image ( int PDF-Dokument, int Bild, float x-koor, float y-koor, float Winkel, float Breite, float Höhe [, int Modus])

Die Funktion cpdf_place_inline_image() platziert auf der Seite ein Bild, das mit den PHP Image-Funktionen erstellt wurde, an der Position (x-koor, y-koor). Das Bild kann gleichzeitig skaliert werden. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_import_jpeg().

Zurück | Zum Anfang | Nach vorne
cpdf_page_init | Nach oben | cpdf_rect


cpdf_rect

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_rect -- Zeichnet ein Rechteck

Beschreibung

bool cpdf_rect ( int PDF-Dokument, float x-koor, float y-koor, float Breite, float Höhe [, int Modus])

Die Funktion cpdf_rect() zeichnet ein Rechteck, bei dem die linke untere Ecke im Punkt (x-koor, y-koor) liegt. Die Breite wird auf Breite und die Höhe auf Höhe gesetzt. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Beispiel 1. Drawing a rectangle

<?php

$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);

// die Füllfarbe auf Rot setzen
cpdf_setrgbcolor($cpdf, 1, 0, 0);

// ein (180 * 100) Rechteck zeichnen
cpdf_rect($cpdf, 645, 400, 180, 100);

// das Rechteck füllen
cpdf_fill($cpdf);

cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);

?>

Zurück | Zum Anfang | Nach vorne
cpdf_place_inline_image | Nach oben | cpdf_restore


cpdf_restore

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_restore -- Stellt die zuvor gesicherte Umgebung wieder her

Beschreibung

bool cpdf_restore ( int PDF-Dokument)

Die Funktion cpdf_restore() stellt die mit cpdf_save() gesicherte Umgebung wieder her. Sie funktioniert wie der Postscript-Befehl grestore und ist sehr nützlich, wenn Sie ein Objekt verschieben oder drehen wollen, ohne dass es sich auf andere Objekte auswirkt. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. Sichern/Wiederherstellen

<?php
cpdf_save($pdf);
// nehmen Sie alle möglichen Arten von Drehungen, Verformungen,... vor
cpdf_restore($pdf)
?>

Siehe auch: cpdf_save().

Zurück | Zum Anfang | Nach vorne
cpdf_rect | Nach oben | cpdf_rlineto


cpdf_rlineto

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_rlineto -- Zeichnet eine Linie (relativ)

Beschreibung

bool cpdf_rlineto ( int PDF-Dokument, float x-koor, float y-koor [, int Modus])

Die Funktion cpdf_rlineto() zeichnet eine Linie vom aktuellen Punkt zum relativen Punkt mit den Koordinaten (x-koor, y-koor). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_moveto(),
cpdf_rmoveto() und
cpdf_curveto().

Zurück | Zum Anfang | Nach vorne
cpdf_restore | Nach oben | cpdf_rmoveto


cpdf_rmoveto

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_rmoveto -- Legt die relative aktuelle Position fest

Beschreibung

bool cpdf_rmoveto ( int PDF-Dokument, float x-koor, float y-koor [, int Modus])

Die Funktion cpdf_rmoveto() setzt die aktuelle Position relativ zu den Koordinaten x-koor und y-koor. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_moveto().

Zurück | Zum Anfang | Nach vorne
cpdf_rlineto | Nach oben | cpdf_rotate_text


cpdf_rotate_text

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_rotate_text -- Legt den Drehwinkel für Text fest

Beschreibung

bool cpdf_rotate_text ( int PDF-Dokument, float Winkel)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cpdf_rmoveto | Nach oben | cpdf_rotate


cpdf_rotate

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_rotate -- Legt den Drehwinkel fest

Beschreibung

bool cpdf_rotate ( int PDF-Dokument, float Winkel)

Die Funktion cpdf_rotate() setzt die Drehung in Grad auf Winkel. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_rotate_text | Nach oben | cpdf_save_to_file


cpdf_save_to_file

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_save_to_file -- Schreibt ein PDF-Dokument in eine Datei

Beschreibung

bool cpdf_save_to_file ( int PDF-Dokument, string Dateiname)

Die Funktion cpdf_save_to_file() schreibt das PDF-Dokument in eine Datei, sofern es im Speicher erstellt wurde. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Diese Funktion wird nicht benötigt, wenn das PDF-Dokument unter Angabe eines Dateinamens als Parameter von cpdf_open() geöffnet wurde.

Siehe auch: cpdf_output_buffer() und cpdf_open().

Zurück | Zum Anfang | Nach vorne
cpdf_rotate | Nach oben | cpdf_save


cpdf_save

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_save -- Sichert die aktuelle Umgebung

Beschreibung

bool cpdf_save ( int PDF-Dokument)

Die Funktion cpdf_save() sichert die aktuelle Umgebung. Sie funktioniert wie der Postscript-Befehl gsave und ist sehr nützlich, wenn Sie ein Objekt verschieben oder drehen wollen, ohne dass es sich auf andere Objekte auswirkt. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_restore().

Zurück | Zum Anfang | Nach vorne
cpdf_save_to_file | Nach oben | cpdf_scale


cpdf_scale

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_scale -- Legt die Vergrößerung fest

Beschreibung

bool cpdf_scale ( int PDF-Dokument, float x-Vergrößerung, float y-Vergrößerung)

Die Funktion cpdf_scale() setzt den Vergrößerungsfaktor in beide Richtungen. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_save | Nach oben | cpdf_set_action_url


cpdf_set_action_url

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_action_url -- Setzt einen Hyperlink

Beschreibung

bool cpdf_set_action_url ( int PDF-Dokument, float xll, float yll, float xur, float xur, string URL [, int Modus])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cpdf_scale | Nach oben | cpdf_set_char_spacing


cpdf_set_char_spacing

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_char_spacing -- Legt den Zeichenabstand fest

Beschreibung

bool cpdf_set_char_spacing ( int PDF-Dokument, float Abstand)

Die Funktion cpdf_set_char_spacing() legt den Abstand zwischen den Zeichen fest. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_set_word_spacing() cpdf_set_leading().

Zurück | Zum Anfang | Nach vorne
cpdf_set_action_url | Nach oben | cpdf_set_creator


cpdf_set_creator

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_creator -- Setzt das Urheberfeld des PDF-Dokuments

Beschreibung

bool cpdf_set_creator ( int PDF-Dokument, string Urheber)

Die Funktion cpdf_set_creator() setzt den Urheber eines PDF-Dokuments. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_set_subject(),
cpdf_set_title() und
cpdf_set_keywords().

Zurück | Zum Anfang | Nach vorne
cpdf_set_char_spacing | Nach oben | cpdf_set_current_page


cpdf_set_current_page

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_current_page -- Setzt die aktuelle Seite

Beschreibung

bool cpdf_set_current_page ( int PDF-Dokument, int Seitennummer)

Die Funktion cpdf_set_current_page() setzt die Seite, an der alle Aktionen durchgeführt werden. Sie können solange zwischen den Seiten wechseln, bis Sie eine Seite mit cpdf_finalize_page() abschließen. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_finalize_page().

Zurück | Zum Anfang | Nach vorne
cpdf_set_creator | Nach oben | cpdf_set_font_directories


cpdf_set_font_directories

(PHP 4 >= 4.0.6, PHP 5)

cpdf_set_font_directories -- Legt die Verzeichnisse fest, die bei Verwendung externer Schriftarten durchsucht werden

Beschreibung

bool cpdf_set_font_directories ( int PDF-Dokument, string pfmdir, string pfbdir)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cpdf_set_current_page | Nach oben | cpdf_set_font_map_file


cpdf_set_font_map_file

(PHP 4 >= 4.0.6, PHP 5)

cpdf_set_font_map_file -- Legt bei Verwendung externer Schriftarten die Datei mit den Schriftart-Dateiname-Zuordnungen fest

Beschreibung

bool cpdf_set_font_map_file ( int PDF-Dokument, string Datei)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cpdf_set_font_directories | Nach oben | cpdf_set_font


cpdf_set_font

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_font -- Wählt die aktuelle Schriftart und -größe

Beschreibung

bool cpdf_set_font ( int PDF-Dokument, string Schriftart, float Größe, string Kodierung)

Die Funktion cpdf_set_font() setzt die aktuelle Schriftart, Schriftgröße und -kodierung. Gegenwärtig werden nur Standard-Postscript-Schriftarten unterstützt. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Der Parameter Kodierung kann die folgenden Werte akzeptieren: "MacRomanEncoding", "MacExpertEncoding", "WinAnsiEncoding" und "NULL". "NULL" steht für die schriftarteigene Kodierung.

Weitere Informationen, insbesondere wie asiatische Schriftarten unterstützt werden, finden Sie im ClibPDF-Handbuch.

Zurück | Zum Anfang | Nach vorne
cpdf_set_font_map_file | Nach oben | cpdf_set_horiz_scaling


cpdf_set_horiz_scaling

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_horiz_scaling -- Setzt die horizontale Textskalierung

Beschreibung

bool cpdf_set_horiz_scaling ( int PDF-Dokument, float Maßstab)

Die Funktion cpdf_set_horiz_scaling() setzt die horizontale Skalierung auf Maßstab Prozent. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_set_font | Nach oben | cpdf_set_keywords


cpdf_set_keywords

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_keywords -- Setzt das Schlüsselwortfeld des PDF-Dokuments

Beschreibung

bool cpdf_set_keywords ( int PDF-Dokument, string Schlüsselwörter)

Die Funktion cpdf_set_keywords() setzt die Schlüsselwörter eines PDF-Dokuments. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_set_title(),
cpdf_set_creator() und
cpdf_set_subject().

Zurück | Zum Anfang | Nach vorne
cpdf_set_horiz_scaling | Nach oben | cpdf_set_leading


cpdf_set_leading

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_leading -- Setzt den Zeilenabstand

Beschreibung

bool cpdf_set_leading ( int PDF-Dokument, float Zeilenabstand)

Die Funktion cpdf_set_leading() setzt den Zeilenabstand. Dieser wird verwendet, wenn der Text durch cpdf_continue_text() ausgegeben wird. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_continue_text().

Zurück | Zum Anfang | Nach vorne
cpdf_set_keywords | Nach oben | cpdf_set_page_animation


cpdf_set_page_animation

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_page_animation -- Legt den Übergang zwischen den Seiten fest

Beschreibung

bool cpdf_set_page_animation ( int PDF-Dokument, int Übergang, float Dauer)

Die Funktion cpdf_set_page_animation() legt den Übergang zwischen aufeinanderfolgenden Seiten fest. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Übergang kann folgende Werte haben:

0 für keinen,
1 für zwei über den Bildschirm sausende Zeilen, die die nächste Seite enthüllen,
2 für mehrere über den Bildschirm sausende Zeilen, die die nächste Seite enthüllen,
3 für eine Box, die die nächste Seite enthüllt,
4 für eine einzelne über den Bildschirm sausende Zeile, die die nächste Seite enthüllt,
5, dass dich die alte Seite auflöst und die nächste Seite enthüllt,
6, dass der Auflösungseffekt vom einen Bildschirmrand zum anderen wandert,
7, dass die alte Seite einfach durch die neue Seite ersetzt wird (Grundeinstellung)

Der Wert Dauer ist die Anzahl der Sekunden während des Seitenwechsels.

Zurück | Zum Anfang | Nach vorne
cpdf_set_leading | Nach oben | cpdf_set_subject


cpdf_set_subject

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_subject -- Setzt das Themenfeld des PDF-Dokuments

Beschreibung

bool cpdf_set_subject ( string Thema)

Die Funktion cpdf_set_subject() setzt das Thema eines PDF-Dokuments. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_set_title(),
cpdf_set_creator() und
cpdf_set_keywords().

Zurück | Zum Anfang | Nach vorne
cpdf_set_page_animation | Nach oben | cpdf_set_text_matrix


cpdf_set_text_matrix

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_matrix -- Legt die Text-Matrix fest

Beschreibung

bool cpdf_set_text_matrix ( int PDF-Dokument, array Matrix)

Die Funktion cpdf_set_text_matrix() legt die Matrix fest, die eine auf die aktuelle Schriftart angewandte Transformation beschreibt. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_set_subject | Nach oben | cpdf_set_text_pos


cpdf_set_text_pos

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_pos -- Legt die Textposition fest

Beschreibung

bool cpdf_set_text_pos ( int PDF-Dokument, float x-koor, float y-koor [, int Modus])

Die Funktion cpdf_set_text_pos() legt die Position des Textes für den nächsten Aufruf von cpdf_show() fest. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Siehe auch: cpdf_show() und cpdf_text().

Zurück | Zum Anfang | Nach vorne
cpdf_set_text_matrix | Nach oben | cpdf_set_text_rendering


cpdf_set_text_rendering

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_rendering -- Legt fest, wie Text wiedergegeben wird

Beschreibung

bool cpdf_set_text_rendering ( int PDF-Dokument [, int Wiedergabe-Modus])

Die Funktion cpdf_set_text_rendering() legt fest, wie der Text wiedergegeben wird. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Die möglichen Werte für Wiedergabe-Modus sind 0=Text ausfüllen, 1=Text durchstreichen, 2=Text ausfüllen und durchstreichen, 3=unsichtbar, 4=Text ausfüllen und dem Begrenzungspfad hinzufügen, 5=Text durchstreichen und dem Begrenzungspfad hinzufügen, 6=Text ausfüllen und durchstreichen und dem Begrenzungspfad hinzufügen, 7=dem Begrenzungspfad hinzufügen.

Zurück | Zum Anfang | Nach vorne
cpdf_set_text_pos | Nach oben | cpdf_set_text_rise


cpdf_set_text_rise

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_rise -- Legt die vertikale Textverschiebung fest

Beschreibung

bool cpdf_set_text_rise ( int PDF-Dokument, float Verschiebung)

Die Funktion cpdf_set_text_rise() legt die Verschiebung des Texts um Verschiebung Einheiten nach oben fest. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_set_text_rendering | Nach oben | cpdf_set_title


cpdf_set_title

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_title -- Setzt das Titelfeld PDF-Dokuments

Beschreibung

bool cpdf_set_title ( int PDF-Dokument, string Titel)

Die Funktion cpdf_set_title() setzt den Titel eines PDF-Dokuments. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_set_subject(),
cpdf_set_creator() und
cpdf_set_keywords().

Zurück | Zum Anfang | Nach vorne
cpdf_set_text_rise | Nach oben | cpdf_set_viewer_preferences


cpdf_set_viewer_preferences

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_viewer_preferences -- Legt fest, wie das Dokument im Betrachter dargestellt wird

Beschreibung

bool cpdf_set_viewer_preferences ( int PDF-Dokument, array Einstellungen)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cpdf_set_title | Nach oben | cpdf_set_word_spacing


cpdf_set_word_spacing

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_word_spacing -- Legt den Abstand zwischen den Wörtern fest

Beschreibung

bool cpdf_set_word_spacing ( int PDF-Dokument, float Abstand)

Die Funktion cpdf_set_word_spacing() legt den Abstand zwischen den Wörtern fest. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_set_char_spacing() und cpdf_set_leading().

Zurück | Zum Anfang | Nach vorne
cpdf_set_viewer_preferences | Nach oben | cpdf_setdash


cpdf_setdash

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setdash -- Setzt eine gestrichelte Linie

Beschreibung

bool cpdf_setdash ( int PDF-Dokument, float schwarz, float weiß)

Die Funktion cpdf_setdash() setzt das Muster einer gestrichelten Linie auf weiß weiße Einheiten und schwarz schwarze Einheiten. Wenn beide 0 sind, wird die Linie durchgezogen. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_set_word_spacing | Nach oben | cpdf_setflat


cpdf_setflat

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setflat -- Legt die Flachheit fest

Beschreibung

bool cpdf_setflat ( int PDF-Dokument, float Flachheit)

Die Funktion cpdf_setflat() setzt die Flachheit auf einen Wert zwischen 0 und 100. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_setdash | Nach oben | cpdf_setgray_fill


cpdf_setgray_fill

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setgray_fill -- Setzt die Füllfarbe auf einen Grauwert

Beschreibung

bool cpdf_setgray_fill ( int PDF-Dokument, float Grauwert)

Die Funktion cpdf_setgray_fill() setzt die Füllfarbe auf den angegebenen Grauwert. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_setrgbcolor_fill().

Zurück | Zum Anfang | Nach vorne
cpdf_setflat | Nach oben | cpdf_setgray_stroke


cpdf_setgray_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setgray_stroke -- Setzt die Zeichenfarbe auf einen Grauwert

Beschreibung

bool cpdf_setgray_stroke ( int PDF-Dokument, float Grauwert)

Die Funktion cpdf_setgray_stroke() setzt die aktuelle Zeichenfarbe auf den angegebenen Grauwert. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_setrgbcolor_stroke().

Zurück | Zum Anfang | Nach vorne
cpdf_setgray_fill | Nach oben | cpdf_setgray


cpdf_setgray

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setgray -- Setzt Zeichen- und Füllfarbe auf einen Grauwert

Beschreibung

bool cpdf_setgray ( int PDF-Dokument, float Grauwert)

Die Funktion cpdf_setgray() setzt die aktuelle Zeichen- und Füllfarbe auf den angegebenen Grauwert. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_setrgbcolor_stroke() und cpdf_setrgbcolor_fill().

Zurück | Zum Anfang | Nach vorne
cpdf_setgray_stroke | Nach oben | cpdf_setlinecap


cpdf_setlinecap

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setlinecap -- Legt den Typ der Linienenden fest

Beschreibung

bool cpdf_setlinecap ( int PDF-Dokument, int Typ)

Die Funktion cpdf_setlinecap() setzt den Typ der Linienenden auf einen Wert zwischen 0 und 2. 0 = stumpfes Ende, 1 = rund, 2 = vorspringendes Quadrat. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_setgray | Nach oben | cpdf_setlinejoin


cpdf_setlinejoin

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setlinejoin -- Legt den Typ der Linienverbindungen fest

Beschreibung

bool cpdf_setlinejoin ( int PDF-Dokument, int Typ)

Die Funktion cpdf_setlinejoin() setzt den Typ der Linienverbindungen auf einen Wert zwischen 0 und 2. 0 = Gehrung, 1 = rund, 2 = schräg. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_setlinecap | Nach oben | cpdf_setlinewidth


cpdf_setlinewidth

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setlinewidth -- Legt die Linienbreite fest

Beschreibung

bool cpdf_setlinewidth ( int PDF-Dokument, float Breite)

Die Funktion cpdf_setlinewidth() setzt die Linienbreite auf Breite. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_setlinejoin | Nach oben | cpdf_setmiterlimit


cpdf_setmiterlimit

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setmiterlimit -- Legt die Gehrungsbegrenzung fest

Beschreibung

bool cpdf_setmiterlimit ( int PDF-Dokument, float Wert)

Die Funktion cpdf_setmiterlimit() setzt die Gehrungsbegrenzung auf einen Wert größer oder gleich 1. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
cpdf_setlinewidth | Nach oben | cpdf_setrgbcolor_fill


cpdf_setrgbcolor_fill

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setrgbcolor_fill -- Setzt die Füllfarbe auf einen RGB-Farbwert

Beschreibung

bool cpdf_setrgbcolor_fill ( int PDF-Dokument, float Rotwert, float Grünwert, float Blauwert)

Die Funktion cpdf_setrgbcolor_fill() setzt die Füllfarbe auf den angegebenen RGB-Farbwert. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Die Werte müssen Fließkommawerte zwischen 0.0 und 1.0 sein (d.h. schwarz ist (0.0, 0.0, 0.0) und weiß ist (1.0, 1.0, 1.0)).

Siehe auch: cpdf_setrgbcolor_stroke() und cpdf_setrgbcolor().

Zurück | Zum Anfang | Nach vorne
cpdf_setmiterlimit | Nach oben | cpdf_setrgbcolor_stroke


cpdf_setrgbcolor_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setrgbcolor_stroke -- Setzt die Zeichenfarbe auf einen RGB-Farbwert

Beschreibung

bool cpdf_setrgbcolor_stroke ( int PDF-Dokument, float Rotwert, float Grünwert, float Blauwert)

Die Funktion cpdf_setrgbcolor_stroke() setzt die aktuelle Zeichenfarbe auf den angegebenen RGB-Farbwert. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Die Werte müssen Fließkommawerte zwischen 0.0 und 1.0 sein (d.h. schwarz ist (0.0, 0.0, 0.0) und weiß ist (1.0, 1.0, 1.0)).

Siehe auch: cpdf_setrgbcolor_fill() und cpdf_setrgbcolor().

Zurück | Zum Anfang | Nach vorne
cpdf_setrgbcolor_fill | Nach oben | cpdf_setrgbcolor


cpdf_setrgbcolor

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setrgbcolor -- Setzt Zeichen- und Füllfarbe auf einen RGB-Farbwert

Beschreibung

bool cpdf_setrgbcolor ( int PDF-Dokument, float Rotwert, float Grünwert, float Blauwert)

Die Funktion cpdf_setrgbcolor() setzt die aktuelle Zeichen- und Füllfarbe auf den angegebenen RGB-Farbwert. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Die Werte müssen Fließkommawerte zwischen 0.0 und 1.0 sein (d.h. schwarz ist (0.0, 0.0, 0.0) und weiß ist (1.0, 1.0, 1.0)).

Siehe auch: cpdf_setrgbcolor_stroke() und cpdf_setrgbcolor_fill().

Zurück | Zum Anfang | Nach vorne
cpdf_setrgbcolor_stroke | Nach oben | cpdf_show_xy


cpdf_show_xy

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_show_xy -- Gibt Text an der angegebenen Position aus

Beschreibung

bool cpdf_show_xy ( int PDF-Dokument, string Text, float x-koor, float y-koor [, int Modus])

Die Funktion cpdf_show_xy() gibt die Zeichenkette Text an der Position mit den Koordinaten (x-koor, y-koor) aus. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Anmerkung: Ohne die optionalen Parameter ist die Funktion cpdf_show_xy() mit cpdf_text() identisch.

Siehe auch: cpdf_text().

Zurück | Zum Anfang | Nach vorne
cpdf_setrgbcolor | Nach oben | cpdf_show


cpdf_show

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_show -- Gibt Text an der aktuellen Position aus

Beschreibung

bool cpdf_show ( int PDF-Dokument, string Text)

Die Funktion cpdf_show() gibt die Zeichenkette Text an der aktuellen Position aus. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_text(),
cpdf_begin_text() und
cpdf_end_text().

Zurück | Zum Anfang | Nach vorne
cpdf_show_xy | Nach oben | cpdf_stringwidth


cpdf_stringwidth

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_stringwidth -- Liefert die Breite einer Zeichenkette in der aktuellen Schriftart

Beschreibung

float cpdf_stringwidth ( int PDF-Dokument, string Text)

Die Funktion cpdf_stringwidth() gibt die Breite der Zeichenkette in Text zurück. Zuvor muss eine Schriftart festgelegt werden.

Siehe auch: cpdf_set_font().

Zurück | Zum Anfang | Nach vorne
cpdf_show | Nach oben | cpdf_stroke


cpdf_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_stroke -- Zeichnet eine Linie entlang des aktuellen Pfades

Beschreibung

bool cpdf_stroke ( int PDF-Dokument)

Die Funktion cpdf_stroke() Zeichnet eine Linie entlang des aktuellen Pfades. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: cpdf_closepath() und cpdf_closepath_stroke().

Zurück | Zum Anfang | Nach vorne
cpdf_stringwidth | Nach oben | cpdf_text


cpdf_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_text -- Gibt den Text mit Parametern aus

Beschreibung

bool cpdf_text ( int PDF-Dokument, string Text, float x-koor, float y-koor [, int Modus [, float Richtung [, int Ausrichtungsmodus]]])

Die Funktion cpdf_text() gibt die Zeichenkette Text an der Position mit den Koordinaten (x-koor, y-koor) aus. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Der optionale Parameter Richtung bestimmt die Drehung des Texts in Grad.

Der optionale Parameter Ausrichtungsmodus bestimmt, wie der Text ausgerichtet wird.

Die möglichen Werte können Sie der ClibPDF-Dokumentation entnehmen.

Siehe auch: cpdf_show_xy().

Zurück | Zum Anfang | Nach vorne
cpdf_stroke | Nach oben | cpdf_translate


cpdf_translate

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_translate -- Legt den Ursprung des Koordinatensystems fest

Beschreibung

bool cpdf_translate ( int PDF-Dokument, float x-koor, float y-koor [, int Modus])

Die Funktion cpdf_translate() setzt den Ursprung des Koordinatensystems auf den Punkt (x-koor, y-koor). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The optional parameter mode determines the unit length. If it is 0 or omitted the default unit as specified for the page is used. Otherwise the coordinates are measured in postscript points disregarding the current unit.

Zurück | Zum Anfang | Nach vorne
cpdf_text | Nach oben | Crack Funktionen


Crack Funktionen

PHP Handbuch
Zurück Nach vorne

XI. Crack Funktionen

Einführung

Diese Funktionen erlauben die Nutzung der CrackLib Bibliothek, die dazu verwendet werden kann, die 'Stärke' eines Passworts zu überprüfen. Die 'Stärke' eines Passwortes wird über die Länge, die Benutzung von Groß- und Kleinschreibung und den Vergleich des Passwortes gegen ein bestimmtes Cracklib-Wörterbuch überprüft. Die Cracklib gibt hilfreiche Fehlermeldungen zurück, die es erlauben, das Passwort zu 'verstärken'.

Anforderungen

Weiterführende Informationen zur CrackLib können unter http://www.crypticide.org/users/alecm/ gefunden werden.

Anmerkung: This extension has been removed as of PHP 5 and moved to the PECL repository.

Installation

Um diese Funktionen nutzen zu können, muss PHP mittels --with-crack[=DIR] mit Crack-Support compiliert werden.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Crack Konfigurations Optionen

Name | Standard | Veränderbar
crack.default_dictionary | NULL | PHP_INI_SYSTEM
Weitere Details und die Definition der PHP_INI_* Konstanten sind unter ini_set() zu finden.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Beispiele

Diese Beispiel zeigt, wie ein CrackLib Wörterbuch geöffnet wird, ein übergebenes Passwort überprüft wird und Diagnosemeldungen ausgewertet werden. Anschließend wird das Wörterbuch wieder geschlossen.

Beispiel 1. CrackLib Beispiel

<?php
// Öffne das CrackLib Wörterbuch
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Kann das CrackLib Wörterbuch nicht öffnen');

// Führe eine Überprüfung des Passworts durch
$check = crack_check($dictionary, 'gx9A2s0x');

// Empfange Rückmeldungen
$diag = crack_getlastmessage();
echo $diag; // 'starkes Passwort'

// Schliesse das Wörterbuch
crack_closedict($dictionary);
?>

Anmerkung: Wenn crack_check() TRUE zurückliefert, wird crack_getlastmessage() 'strong password' zurückliefern.

Inhaltsverzeichnis
crack_check -- Führt eine Überprüfung des übergebenen Passwortes durch.
crack_closedict -- Schließt ein CrackLib Wörterbuch
crack_getlastmessage -- Gibt die Nachricht der letzten Überprüfung zurück.
crack_opendict -- Öffnet ein CrackLib Wörterbuch

Zurück | Zum Anfang | Nach vorne
cpdf_translate | Nach oben | crack_check


crack_check

(PHP 4 >= 4.0.5)

crack_check -- Führt eine Überprüfung des übergebenen Passwortes durch.

Beschreibung

bool crack_check ( [resource dictionary, string password])

Gibt TRUE zurück, wenn password 'stark' ist. Wenn nicht, wird FALSE zurückgegeben.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

crack_check() führt eine Überprüfung des mit password übergebenen Strings über das mit dictionary angegebene Wörterbuch durch. Wenn dictionary nicht spezifiziert wird, wird das zuletzt geöffnete Wörterbuch genutzt.

Zurück | Zum Anfang | Nach vorne
Crack Funktionen | Nach oben | crack_closedict


crack_closedict

(PHP 4 >= 4.0.5)

crack_closedict -- Schließt ein CrackLib Wörterbuch

Beschreibung

bool crack_closedict ( [resource dictionary])

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

crack_closedict() schliesst den in dictionary angegebenen Zeiger. Wenn dictionary nicht genauer spezifiziert wird, wird das aktuell verwendetet Wörterbuch geschlossen.

Zurück | Zum Anfang | Nach vorne
crack_check | Nach oben | crack_getlastmessage


crack_getlastmessage

(PHP 4 >= 4.0.5)

crack_getlastmessage -- Gibt die Nachricht der letzten Überprüfung zurück.

Beschreibung

string crack_getlastmessage ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

crack_getlastmessage() gibt die Nachricht der letzten Passwortüberprüfung zurück.

Zurück | Zum Anfang | Nach vorne
crack_closedict | Nach oben | crack_opendict


crack_opendict

(PHP 4 >= 4.0.5)

crack_opendict -- Öffnet ein CrackLib Wörterbuch

Beschreibung

resource crack_opendict ( string dictionary)

Gibt bei Erfolg einen Zeiger auf das Wörterbuch zurück oder FALSE bei einem Fehler.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

crack_opendict() öffnet das mit dictionary angegebene Wörterbuch, um es mit crack_check() zu benutzen.

Anmerkung: Es kann nur ein Wörterbuch zur gleichen Zeit geöffnet sein.

Siehe auch: crack_check(), und crack_closedict().

Zurück | Zum Anfang | Nach vorne
crack_getlastmessage | Nach oben | cURL, Client URL Bibiothek-Funktionen


cURL, Client URL Bibiothek-Funktionen

PHP Handbuch
Zurück Nach vorne

XII. cURL, Client URL Bibiothek-Funktionen

Einführung

PHP unterstützt libcurl, eine Bibiothek entwickelt von Daniel Stenberg, die es erlaubt sich mit Servern zu verbinden und über diverse Protokolle zu kommunizieren. Libcurl unterstützt zur Zeit folgende Protokolle: http, https, ftp, gopher, telnet, dict, file und ldap. Libcurl unterstützt des weiteren HTTPS Zertifikate, HTTP POST, HTTP PUT, und das hochladen von Dateien unter Benutzung des FTP Protokolls (ist auch unter Nuztung der FTP Erweiterung PHPs' möglich), HTTP Fomular basierende Uploads, Proxies, Cookies, und Benutzer/Password Authentifikation.

Diese Funktionen wurden in PHP 4.0.2 hinzugefügt.

Anforderungen

Um cURL Functionen nutzen zu können, muss man das cURL Packet installieren. PHP fordert cURL 7.0.2-beta oder neuer. PHP wird nicht mir einer Version älter als 7.0.2-beta laufen In der PHP Version 4.2.3, wird cURL in der Version 7.9.0 oder höher vorausgesetzt. Bei PHP 4.3.0, wir die cURL Version 7.9.8 oder höher gebraucht. PHP 5.0.0 wird wahrscheinlich eine cURL Version neuer als 7.10.5 voraussetzen.

Installation

Um PHP mit cURL-Unterstützung nutzen zu können, muss man PHP mit der Option --with-curl[=DIR] kompilieren, wobei DIR das Verzeichnis angibt in dem sich die Bibiotheken und die Includedateien befinden. In dem "include" Verzeichnis sollte ein Unterverzeichnis mit dem Titel "curl" existieren, dass die Dateien easy.h und curl.h enthält . Zudem sollte eine Datei namens libcurl.a in dem "lib"-Verzeichnis sein. Ab PHP 4.3.0 kann man PHP mit der Option --with-curlwrappers konfigurieren, um cURL für URL-Streams nuzten zu können.

Anmerkung für Win32-Nutzer: Um dieses Modul in einer Windows-Umgebung nutzen zu können, müssen libeay32.dll und ssleay32.dll aus dem DLL-Verzeichnis des PHP/Win32 binary Packets in das SYSTEM32-Verzeichnis des Windows PC's kopiert werden. (z.B.: C:\WINNT\SYSTEM32 oder C:\WINDOWS\SYSTEM)

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

CURLOPT_PORT (integer)

CURLOPT_FILE (integer)

CURLOPT_INFILE (integer)

CURLOPT_INFILESIZE (integer)

CURLOPT_URL (integer)

CURLOPT_PROXY (integer)

CURLOPT_VERBOSE (integer)

CURLOPT_HEADER (integer)

CURLOPT_HTTPHEADER (integer)

CURLOPT_NOPROGRESS (integer)

CURLOPT_NOBODY (integer)

CURLOPT_FAILONERROR (integer)

CURLOPT_UPLOAD (integer)

CURLOPT_POST (integer)

CURLOPT_FTPLISTONLY (integer)

CURLOPT_FTPAPPEND (integer)

CURLOPT_NETRC (integer)

CURLOPT_FOLLOWLOCATION (integer)

CURLOPT_FTPASCII (integer)

CURLOPT_PUT (integer)

CURLOPT_MUTE (integer)

CURLOPT_USERPWD (integer)

CURLOPT_PROXYUSERPWD (integer)

CURLOPT_RANGE (integer)

CURLOPT_TIMEOUT (integer)

CURLOPT_POSTFIELDS (integer)

CURLOPT_REFERER (integer)

CURLOPT_USERAGENT (integer)

CURLOPT_FTPPORT (integer)

CURLOPT_LOW_SPEED_LIMIT (integer)

CURLOPT_LOW_SPEED_TIME (integer)

CURLOPT_RESUME_FROM (integer)

CURLOPT_COOKIE (integer)

CURLOPT_SSLCERT (integer)

CURLOPT_SSLCERTPASSWD (integer)

CURLOPT_WRITEHEADER (integer)

CURLOPT_SSL_VERIFYHOST (integer)

CURLOPT_COOKIEFILE (integer)

CURLOPT_SSLVERSION (integer)

CURLOPT_TIMECONDITION (integer)

CURLOPT_TIMEVALUE (integer)

CURLOPT_CUSTOMREQUEST (integer)

CURLOPT_STDERR (integer)

CURLOPT_TRANSFERTEXT (integer)

CURLOPT_RETURNTRANSFER (integer)

CURLOPT_QUOTE (integer)

CURLOPT_POSTQUOTE (integer)

CURLOPT_INTERFACE (integer)

CURLOPT_KRB4LEVEL (integer)

CURLOPT_HTTPPROXYTUNNEL (integer)

CURLOPT_FILETIME (integer)

CURLOPT_WRITEFUNCTION (integer)

CURLOPT_READFUNCTION (integer)

CURLOPT_PASSWDFUNCTION (integer)

CURLOPT_HEADERFUNCTION (integer)

CURLOPT_MAXREDIRS (integer)

CURLOPT_MAXCONNECTS (integer)

CURLOPT_CLOSEPOLICY (integer)

CURLOPT_FRESH_CONNECT (integer)

CURLOPT_FORBID_REUSE (integer)

CURLOPT_RANDOM_FILE (integer)

CURLOPT_EGDSOCKET (integer)

CURLOPT_CONNECTTIMEOUT (integer)

CURLOPT_SSL_VERIFYPEER (integer)

CURLOPT_CAINFO (integer)

CURLOPT_COOKIEJAR (integer)

CURLOPT_SSL_CIPHER_LIST (integer)

CURLOPT_BINARYTRANSFER (integer)

CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)

CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)

CURLCLOSEPOLICY_SLOWEST (integer)

CURLCLOSEPOLICY_CALLBACK (integer)

CURLCLOSEPOLICY_OLDEST (integer)

CURLINFO_EFFECTIVE_URL (integer)

CURLINFO_HTTP_CODE (integer)

CURLINFO_HEADER_SIZE (integer)

CURLINFO_REQUEST_SIZE (integer)

CURLINFO_TOTAL_TIME (integer)

CURLINFO_NAMELOOKUP_TIME (integer)

CURLINFO_CONNECT_TIME (integer)

CURLINFO_PRETRANSFER_TIME (integer)

CURLINFO_SIZE_UPLOAD (integer)

CURLINFO_SIZE_DOWNLOAD (integer)

CURLINFO_SPEED_DOWNLOAD (integer)

CURLINFO_SPEED_UPLOAD (integer)

CURLINFO_FILETIME (integer)

CURLINFO_SSL_VERIFYRESULT (integer)

CURLINFO_CONTENT_LENGTH_DOWNLOAD (integer)

CURLINFO_CONTENT_LENGTH_UPLOAD (integer)

CURLE_OK (integer)

CURLE_UNSUPPORTED_PROTOCOL (integer)

CURLE_FAILED_INIT (integer)

CURLE_URL_MALFORMAT (integer)

CURLE_URL_MALFORMAT_USER (integer)

CURLE_COULDNT_RESOLVE_PROXY (integer)

CURLE_COULDNT_RESOLVE_HOST (integer)

CURLE_COULDNT_CONNECT (integer)

CURLE_FTP_WEIRD_SERVER_REPLY (integer)

CURLE_FTP_ACCESS_DENIED (integer)

CURLE_FTP_USER_PASSWORD_INCORRECT (integer)

CURLE_FTP_WEIRD_PASS_REPLY (integer)

CURLE_FTP_WEIRD_USER_REPLY (integer)

CURLE_FTP_WEIRD_PASV_REPLY (integer)

CURLE_FTP_WEIRD_227_FORMAT (integer)

CURLE_FTP_CANT_GET_HOST (integer)

CURLE_FTP_CANT_RECONNECT (integer)

CURLE_FTP_COULDNT_SET_BINARY (integer)

CURLE_PARTIAL_FILE (integer)

CURLE_FTP_COULDNT_RETR_FILE (integer)

CURLE_FTP_WRITE_ERROR (integer)

CURLE_FTP_QUOTE_ERROR (integer)

CURLE_HTTP_NOT_FOUND (integer)

CURLE_WRITE_ERROR (integer)

CURLE_MALFORMAT_USER (integer)

CURLE_FTP_COULDNT_STOR_FILE (integer)

CURLE_READ_ERROR (integer)

CURLE_OUT_OF_MEMORY (integer)

CURLE_OPERATION_TIMEOUTED (integer)

CURLE_FTP_COULDNT_SET_ASCII (integer)

CURLE_FTP_PORT_FAILED (integer)

CURLE_FTP_COULDNT_USE_REST (integer)

CURLE_FTP_COULDNT_GET_SIZE (integer)

CURLE_HTTP_RANGE_ERROR (integer)

CURLE_HTTP_POST_ERROR (integer)

CURLE_SSL_CONNECT_ERROR (integer)

CURLE_FTP_BAD_DOWNLOAD_RESUME (integer)

CURLE_FILE_COULDNT_READ_FILE (integer)

CURLE_LDAP_CANNOT_BIND (integer)

CURLE_LDAP_SEARCH_FAILED (integer)

CURLE_LIBRARY_NOT_FOUND (integer)

CURLE_FUNCTION_NOT_FOUND (integer)

CURLE_ABORTED_BY_CALLBACK (integer)

CURLE_BAD_FUNCTION_ARGUMENT (integer)

CURLE_BAD_CALLING_ORDER (integer)

CURLE_HTTP_PORT_FAILED (integer)

CURLE_BAD_PASSWORD_ENTERED (integer)

CURLE_TOO_MANY_REDIRECTS (integer)

CURLE_UNKNOWN_TELNET_OPTION (integer)

CURLE_TELNET_OPTION_SYNTAX (integer)

CURLE_OBSOLETE (integer)

CURLE_SSL_PEER_CERTIFICATE (integer)

Beispiele

Wenn PHP mit cURL-Unterstützung kompiliert und installiert ist, kann mit der Benutzung der cURL-Funktionen begonnen werden. Die Idee die hinter den Funktionen steckt, ist dass man mit Hilfe von curl_init() eine cURL-Session initialisiert, alle für den Transfer nötigen Optionen unter Verwendung von curl_setopt() setzt und dann die Session mittels curl_exec() ausführt, um dann schließlich curl_close() zur Beendigung der Session zu nutzen.

Folgendes Beispiel nutzt die cURL-Functionen, um die Homepage von example.com in eine Datei zu speichern:

Beispiel 1. Nutzung von PHP's cURL-Modul, um die Homepage von example.com herunterzuladen

<?php

//Die Session initialisieren
$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

//Session Optionen setzen
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

//Ausführen der Aktionen
curl_exec($ch);

//Session beenden
curl_close($ch);
fclose($fp);
?>

Inhaltsverzeichnis
curl_close -- Eine cURL-Session beenden
curl_errno -- Gibt die letzte Fehlernummer zurück
curl_error -- Gibt eine Fehlermeldung als String zurück
curl_exec -- Eine cURL Session ausführen
curl_getinfo -- Informationen zu einem bestimmten Transfer abfragen
curl_init -- Eine cURL-Session initialisieren
curl_multi_add_handle -- Einen normalen cURL-Handle zu einem cURL Multi-handle hinzufügen
curl_multi_close -- Eine Gruppe von cURL-Handlern schließen
curl_multi_exec -- Die Unterverbindungen des cURL Handles' ausführen
curl_multi_getcontent -- Den Inhalt des cURL-Handles zurückgeben, falls CURLOPT_RETURNTRANSFER gesetzt ist
curl_multi_info_read -- Informationen über die aktuellen Transfers abfragen
curl_multi_init -- Gibt einen neuen cURL-Multi-Handle zurück
curl_multi_remove_handle -- Einen Multi-Handle von einer Handle-Gruppe entfernen
curl_multi_select -- Alle Sockets abfragen, die mit der cURL Erweiterung assoziiert sind und ausgewählt werden können
curl_setopt -- Eine Option für einen cRUL Transfer setzen
curl_version -- Gibt die aktuelle cURL-Version zurück

Zurück | Zum Anfang | Nach vorne
crack_opendict | Nach oben | curl_close


curl_close

(PHP 4 >= 4.0.2, PHP 5)

curl_close -- Eine cURL-Session beenden

Beschreibung

void curl_close ( resource ch)

Diese Funktion beendet eine cURL-Session und gibt alle Resourcen frei. Der cURL-Handle ch wird ebenfalls gelöscht.

Zurück | Zum Anfang | Nach vorne
cURL, Client URL Bibiothek-Funktionen | Nach oben | curl_errno


curl_errno

(PHP 4 >= 4.0.3, PHP 5)

curl_errno -- Gibt die letzte Fehlernummer zurück

Beschreibung

int curl_errno ( resource ch)

Gibt die Fehlernummer der letzen cURL-Operation, die unter Nutzung der Resource ch aufgetreten ist zurück, oder bei einem Fehler 0 (Null).

Siehe auch curl_error().

Zurück | Zum Anfang | Nach vorne
curl_close | Nach oben | curl_error


curl_error

(PHP 4 >= 4.0.3, PHP 5)

curl_error -- Gibt eine Fehlermeldung als String zurück

Beschreibung

string curl_error ( resource ch)

Gibt eine Fehlermeldung für den letzten Fehler in der aktuellen cURL-Session zurück, der unter Verwendung der Resource ch aufgetreten ist. Bei keinem Fehler ist '' (leerer String) der Rückgabewert.

Siehe auch curl_errno().

Zurück | Zum Anfang | Nach vorne
curl_errno | Nach oben | curl_exec


curl_exec

(PHP 4 >= 4.0.2, PHP 5)

curl_exec -- Eine cURL Session ausführen

Beschreibung

mixed curl_exec ( resource ch)

Diese Funktion sollte aufgerufen werden, nachdem eine cURL-Session initialisiert wurde und alle Optionen für jene gesetzt sind. Der Zweck dieser Funktion ist es einfach die vorher definierte Session auszuführen, die durch ch beschrieben wird.

Anmerkung: Falls das Ergebnis zurückgegeben und nicht im Browser ausgegeben werden soll, nutzen Sie die CURLOPT_RETURNTRANSFER Option von curl_setopt().

Zurück | Zum Anfang | Nach vorne
curl_error | Nach oben | curl_getinfo


curl_getinfo

(PHP 4 >= 4.0.4, PHP 5)

curl_getinfo -- Informationen zu einem bestimmten Transfer abfragen

Beschreibung

string curl_getinfo ( resource ch [, int opt])

Gibt Informationen über den letzen Transfer wieder, opt kann folgende Werte enthalten:

  • "CURLINFO_EFFECTIVE_URL" - Letzte effektive URL

  • "CURLINFO_HTTP_CODE" - Zu letzt empfangener HTTP code

  • "CURLINFO_FILETIME" - Zeit in Sekunden, in der das Dokument empfangen wurde. Sollte -1 zurückgegeben werden, ist die Zeit nicht bekannt.

  • "CURLINFO_TOTAL_TIME" - Dauer des letzten Transfers in Sekunden

  • "CURLINFO_NAMELOOKUP_TIME" - Zeit in Sekunden, die gebraucht wurde, um den Hostnamen aufzulösen

  • "CURLINFO_CONNECT_TIME" - Dauer des Verbindungsaufbaus in Sekunden

  • "CURLINFO_PRETRANSFER_TIME" - Zeit in Sekunden, zwischen dem Start und dem eigentlichen Beginn des Empfangs

  • "CURLINFO_STARTTRANSFER_TIME" - Zeit in Sekunden, bis das erste Byte übertragen wird

  • "CURLINFO_REDIRECT_TIME" - Zeit in Sekunden, die von allen Umleitungsschritten beansprucht wird, bevor der eigentliche Transfer beginnt

  • "CURLINFO_SIZE_UPLOAD" - Anzahl der Bytes, die hochgeladen worden sind

  • "CURLINFO_SIZE_DOWNLOAD" - Anzahl der Bytes, die heruntergeladen worden sind

  • "CURLINFO_SPEED_DOWNLOAD" - Durchschnittliche Download-Geschwindigkeit

  • "CURLINFO_SPEED_UPLOAD" - Durchschnittliche Upload-Geschwindigkeit

  • "CURLINFO_HEADER_SIZE" - Gesamtgröße aller empfangenen Header

  • "CURLINFO_REQUEST_SIZE" - Gesamtgröße aller ausgestellten Abfragen, momentan nur für das HTTP gültig

  • "CURLINFO_SSL_VERIFYRESULT" - Ergebnis der SSL Zertifikat-Überprüfung, angefordert durch das Setzen von CURLOPT_SSL_VERIFYPEER

  • "CURLINFO_CONTENT_LENGTH_DOWNLOAD" - Extraktion des 'Content-Length' Feldes aus dem HTTP-Header beim Download

  • "CURLINFO_CONTENT_LENGTH_UPLOAD" - Festgesetzte Größe des Uploads

  • "CURLINFO_CONTENT_TYPE" - Extraktion des 'Content-Type' Feldes aus dem HTTP-Header beim Download. NULL als Rückgabewert bezeichnet, dass der Server keinen gültigen Header gesendet hat

Falls diese Funktion ohne den optionalen Parameter aufgerufen wird, so wird ein assoziatives Array zurückgegeben mit folgenden Array-Elementen, die den opt Optionen entsprechen:

  • "url"

  • "content_type"

  • "http_encode"

  • "header_size"

  • "request_size"

  • "filetime"

  • "ssl_verify_result"

  • "redirect_count"

  • "total_time"

  • "namelookup_time"

  • "connect_time"

  • "pretransfer_time"

  • "size_upload"

  • "size_download"

  • "speed_download"

  • "speed_upload"

  • "download_content_length"

  • "upload_content_length"

  • "starttransfer_time"

  • "redirect_time"

Zurück | Zum Anfang | Nach vorne
curl_exec | Nach oben | curl_init


curl_init

(PHP 4 >= 4.0.2, PHP 5)

curl_init -- Eine cURL-Session initialisieren

Beschreibung

resource curl_init ( [string url])

curl_init() initialisiert eine neue Session und gibt einen cURL-Handler zurück, der mit den curl_setopt(), curl_exec(), und curl_close() Funktionen gebraucht werden kann. Falls der optionale url Parameter gesetzt ist, dann wird die CURLOPT_URL Option auf den mitgegebenen Wert gesetzt. Manuell kann dies durch die Benutzung von curl_setopt() erreicht werden.

Beispiel 1. Eine neue cURL-Session initialisieren und eine Webseite runterladen

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
?>

Siehe auch curl_close() und curl_setopt()

Zurück | Zum Anfang | Nach vorne
curl_getinfo | Nach oben | curl_multi_add_handle


curl_multi_add_handle

(PHP 5)

curl_multi_add_handle -- Einen normalen cURL-Handle zu einem cURL Multi-handle hinzufügen

Beschreibung

int curl_multi_add_handle ( resource mh, resource ch)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch
curl_multi_init(),
curl_init() und
curl_multi_remove_handle().

Zurück | Zum Anfang | Nach vorne
curl_init | Nach oben | curl_multi_close


curl_multi_close

(PHP 5)

curl_multi_close -- Eine Gruppe von cURL-Handlern schließen

Beschreibung

void curl_multi_close ( resource mh)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch curl_multi_init() und curl_close().

Zurück | Zum Anfang | Nach vorne
curl_multi_add_handle | Nach oben | curl_multi_exec


curl_multi_exec

(PHP 5)

curl_multi_exec -- Die Unterverbindungen des cURL Handles' ausführen

Beschreibung

int curl_multi_exec ( resource mh)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch curl_multi_init() und curl_exec().

Zurück | Zum Anfang | Nach vorne
curl_multi_close | Nach oben | curl_multi_getcontent


curl_multi_getcontent

(PHP 5)

curl_multi_getcontent -- Den Inhalt des cURL-Handles zurückgeben, falls CURLOPT_RETURNTRANSFER gesetzt ist

Beschreibung

string curl_multi_getcontent ( resource ch)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch curl_multi_init().

Zurück | Zum Anfang | Nach vorne
curl_multi_exec | Nach oben | curl_multi_info_read


curl_multi_info_read

(PHP 5)

curl_multi_info_read -- Informationen über die aktuellen Transfers abfragen

Beschreibung

array curl_multi_info_read ( resource mh)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch curl_multi_init().

Zurück | Zum Anfang | Nach vorne
curl_multi_getcontent | Nach oben | curl_multi_init


curl_multi_init

(PHP 5)

curl_multi_init -- Gibt einen neuen cURL-Multi-Handle zurück

Beschreibung

resource curl_multi_init ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch curl_init() und curl_multi_close().

Zurück | Zum Anfang | Nach vorne
curl_multi_info_read | Nach oben | curl_multi_remove_handle


curl_multi_remove_handle

(PHP 5)

curl_multi_remove_handle -- Einen Multi-Handle von einer Handle-Gruppe entfernen

Beschreibung

int curl_multi_remove_handle ( resource mh, resource ch)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch
curl_multi_init(),
curl_init(), und
curl_multi_add_handle().

Zurück | Zum Anfang | Nach vorne
curl_multi_init | Nach oben | curl_multi_select


curl_multi_select

(PHP 5)

curl_multi_select -- Alle Sockets abfragen, die mit der cURL Erweiterung assoziiert sind und ausgewählt werden können

Beschreibung

int curl_multi_select ( resource mh [, float timeout])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch curl_multi_init().

Zurück | Zum Anfang | Nach vorne
curl_multi_remove_handle | Nach oben | curl_setopt


curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt -- Eine Option für einen cRUL Transfer setzen

Beschreibung

bool curl_setopt ( resource ch, string option, mixed value)

Die Funktion curl_setopt() setzt Optionen für eine cURL-Session, die durch den ch Parameter identifiziert ist. Der option Parameter stellt die Option dar, die mit dem Wert des Parameters value besetzt werden soll.

Der Wert value sollte für folgende Optionen (angegeben in dem option Parameter) vom Typ long sein:

  • CURLOPT_INFILESIZE: Wenn eine Datei hochgeladen wird, sollte diese Option genutzt werden, um PHP mitzuteilen welche erwartete Größe das Infile hat.

  • CURLOPT_VERBOSE: Bei Setzen dieser Option auf einen Wert ungleich ungleich 0 (Null) wird cURL eine sehr detailierte Ausgabe vornehmen.

  • CURLOPT_HEADER: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird cURL den Header in die Ausgabe aufnehmen.

  • CURLOPT_NOPROGRESS: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird PHP angewiesen kein cURL progress-meter für cURL Transfers anzuzeigen.

    Anmerkung: PHP setzt die Option automatisch auf einen Wert ungleich 0 (Null). Dies sollte ausschließlich für die Fehlersuche geändert werden.

  • CURLOPT_NOBODY: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird der Body nicht in die Ausgabe aufgenommen.

  • CURLOPT_FAILONERROR: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird PHP angewiesen bei misslungenen Aktionen (wenn der HTTP-Code größer ist als 300), ohne Fehlermeldung weiter zu arbeiten. Dieses Verhalten ist voreingestellt.

  • CURLOPT_UPLOAD: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird PHP auf ein Upload vorbereitet.

  • CURLOPT_POST: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird PHP angewiesen die reguläre HTTP POST Methode zu nutzen. Dieses ist ein application/x-www-form-urlencoded, was meist von HTML Formularen genutzt wird.

  • CURLOPT_FTPLISTONLY: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird PHP nur die Namen der FTP Verzeichnisse auflisten.

  • CURLOPT_FTPAPPEND: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird PHP angewiesen die Übertragung der Datei fortzusetzen, anstatt jene zu überschreiben.

  • CURLOPT_NETRC: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird PHP die lokale Datei ~./netrc absuchen, um den Benutzternamen und das Passwort zu finden mit dem die Autorisierung geschehen soll.

  • CURLOPT_FOLLOWLOCATION: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird jedem "Location: " (Ein Feld des HTTP-Headers) gefolgt. Zu beachten ist, dass dies rekursiv geschieht.

  • CURLOPT_PUT: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird ein HTTP PUT einer Datei durchgeführt. Diese Datei muss mit CURLOPT_INFILE gesetzt und mit CURLOPT_INFILESIZE näher beschrieben werden.

  • CURLOPT_MUTE: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird PHP keine Ausgabe bezüglich der cURL Funktionen machen.

  • CURLOPT_TIMEOUT: Ein Wert vom Typ long wird als Parameter übergeben und gibt die Zeit in Sekunden an, die die cURL-Funktionen haben, um die gewünschten Aktionen durchzuführen.

  • CURLOPT_LOW_SPEED_LIMIT: Ein Wert vom Typ long wird als Parameter übergeben. Er gibt die Transfergeschwindigkeit in Bytes pro Sekunde an, die bei Unterschreitung in Kombination mit der Überschreitung von CURLOPT_LOW_SPEED_TIME Sekunden bewirkt, dass der Transfer aufgrund der zu niedrigen Transferrate abgebrochen wird.

  • CURLOPT_LOW_SPEED_TIME: Ein Wert vom Typ long wird als Parameter übergeben und gibt die Zeit in Sekunden an, in der die Transferrate unter CURLOPT_LOW_SPEED_LIMIT gedultet wird. Nach dieser Zeit wird die Transferrate als zu langsam angesehen und der Transfer wird beendet.

  • CURLOPT_RESUME_FROM: Ein Wert vom Typ long wird als Parameter erwartet und gibt den Offset in Bytes an, an dem der Transfer forgesetzt werden soll.

  • CURLOPT_CAINFO: Als Parameter wird ein Dateiname erwartet, die ein oder mehrere Zertifikate enthält, mit dem am Peer verfiziert werden kann. Die Nutzung dieser Option macht nur in Kombination mit CURLOPT_SSL_VERIFYPEER Sinn.

  • CURLOPT_SSL_VERIFYPEER: Ein Wert vom Typ long wird als Parameter übergeben. Ist dieser gleich 0 (Null) stellt cURL die Überprüfung des Peerzertifikats ein. (Ab cURL 7.10 ist die Voreinstellung für diese Option TRUE.) Alternative Zertifikate zur Überprüfung können mit der CURLOPT_CAINFO Option angegeben werden (hinzugefiügt in cURL 7.9.8) oder ein Zertifikat-Verzeichniss kann mit CURLOPT_CAPATH ausgewiesen werden. Ab cURL 7.10, installiert cURL ein vorgegebenes default Packet. CURLOPT_SSL_VERIFYHOST muss ggf. auf 1 oder 0 gesetzt werden, falls CURLOPT_SSL_VERIFYPEER deaktiviert (also auf 2 gesetzt) ist.

  • CURLOPT_SSLVERSION: Ein Wert vom Typ long wird als Parameter erwartet und gibt die SSL Version (2 oder 3) an die genutzt werden soll. PHP wird selber versuchen eine herauszusuchen, trotzdem erfordern einige Situationen das manuelle Setzen dieser Option.

  • CURLOPT_SSL_VERIFYHOST: Setzen Sie einen Wert vom Typ long falls cURL den Namen des Peer Zertifikates beim SSL Handshake überprüfen sollte. Der Wert 1deutet an, dass nach der Existenz des Namens gesehen werden soll, der Wert 2 deutet an, dass sichergestellt werden soll, dass eine Übereinstimmung mit dem angegebenen Hostnamen vorliegt.

  • CURLOPT_TIMECONDITION: Ein Wert vom Typ long wird erwartet und gibt an wie CURLOPT_TIMEVALUE behandelt werden soll. Diser Wert kann auf TIMECOND_IFMODSINCE oder TIMECOND_ISUNMODSINCE gesetzt werden. Dies ist nur eine Besonderheit des HTTPs'.

  • CURLOPT_TIMEVALUE: Ein Wert vom Typ long wird erwartet und gibt die Zeit in Sekunden seit dem 1. Januar 1970 an. Die Zeit wird wie mit Hilfe von CURLOPT_TIMEVALUE definiert, oder es wird wie per Voreinstellung TIMECOND_IFMODSINCE, genutzt.

  • CURLOPT_RETURNTRANSFER: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) gibt cURL den Transfer zurück, anstatt die Ausgabe vorzunehmen.

Der value Parameter sollte für folgende option Parameter ein String sein:

  • CURLOPT_URL: Dies ist die URL, die PHP abrufen soll. Beim Initialisieren eine Session mit curl_init() kann diese Option ebenfalls gesetzt werden.

  • CURLOPT_USERPWD: Erwartet wird ein String in dem Format [Benutzername]:[Passwort], den PHP für die Verbindung nutzt.

  • CURLOPT_PROXYUSERPWD: Erwartet einen String in dem Format [Benutztername]:[Passwort] für die Verbindung mit einem HTTP-Proxy.

  • CURLOPT_RANGE: Übergeben wird das gewünschte Intervall. Es sollte in dem Format "X-Y" sein, wobei X oder Y ausgelassen werden sollen. Transfers über das HTTP unterstützen ebenfalls Intervalle, die mit Kommas getrennt werden (X-Y,N-M).

  • CURLOPT_POSTFIELDS: Übergeben wird ein String, der die gesamten Daten enhält, die in einer HTTP POST Aktion gesendet werden sollen.

  • CURLOPT_REFERER: Übergeben wird ein String, der den Wert des Referer-Feldes im HTTP Header enthält und in einer HTTP Anfrage genutzt werden soll.

  • CURLOPT_USERAGENT: Übergeben wird ein String, der den Wert des User-Agent-Feldes im HTTP Header enthält und in einer HTTP Anfrage genutzt werden soll.

  • CURLOPT_FTPPORT: Übergeben wird ein String, der genutzt wird, um die IP-Adresse zu erlangen, die von der FTP POST Answeisung genutzt wird. Die POST Anweisung teilt dem entfernten Server mit, zu der angegebenen IP-Adresse zu verbinden . Der String kann eine einfache IP-Addresse, ein Hostname, der Name eines Netzwerkinterfaces (unter Unix), oder nur '-' sein, um die vordefinierte IP-Addresse (des Systems) zu nutzen.

  • CURLOPT_COOKIE: Übergeben wird ein String, der den Inhalt des Cookies enthält, der in dem HTTP-Header gesetzt werden soll.

  • CURLOPT_SSLCERT: Übergeben wird ein String, der den Namen der Datei enhält, die das PEM formatierte Zertifikat enthält.

  • CURLOPT_SSLCERTPASSWD: Übergeben wird ein String, der das Passwort enthält welches erforderlich ist, um das CURLOPT_SSLCERTM Zertifikat zu nutzen.

  • CURLOPT_COOKIEFILE: Übergeben wird ein String, der den Namen der Datei enhält, die die Cookiedaten enthält. Diese Datei kann im Netscape Format sein, oder HTTP geformte Header in einer einfachen Textdatei.

  • CURLOPT_CUSTOMREQUEST: Übergeben wird ein String, der als Kommando an Stelle von GET oder HEAD bei einer HTTP-Anfrage genutzt werden soll. Dies ist nützlich wenn z.B. ein DELETE oder andere weniger übliche Anfragen ausgeführt werden sollen. Gültige Werte sind z.B. GET, POST usw. Vollständige HTTP-Anfragen, wie 'GET /index.html HTTP/1.0\r\n\r\n' sind ungültig.

    Anmerkung: Führen Sie diese Anfragen nicht durch ohne sicherzugehen, dass Ihr Server die betreffenden Kommandos unterstützt.

  • CURLOPT_PROXY: Übergeben wird ein String, der den Namen des HTTP-Proxies angibt über den die Anfragen geleitet werden sollen.

  • CURLOPT_INTERFACE: Übergeben wird ein String, der den Namen des zu nutzenden Netzwerkinterfaces für ausgehende Daten enthält. Neben dem Namen des Interfaces, kann auch eine IP-Adresse oder ein Hostname übergeben werden.

  • CURLOPT_KRB4LEVEL: Übergeben Sie die KRB4 (Kerberos 4) Sicherheitsstufe. Folgende Werte (von niedriger zu höherer Stufe) sind gültig: 'clear', 'safe', 'confidential', 'private'. Sollte der String keine dieser Werte enthalten, dann wird die hóchste Stufe, d.h 'private' genutzt. Sollte diese Option mit dem Wert NULL besetzt werden, wird KRB4 Security deaktiviert. Bislang wird KRB4 nur unter Verwendung des FTP unterstützt.

  • CURLOPT_HTTPHEADER: Übergeben wird ein Array mit HTTP-Header, die gesetzt werden sollen.

  • CURLOPT_QUOTE: Übergeben wird ein Array mit FTP-Kommandos, die vor der FTP Anfrage auf dem Server ausgeführt werden sollen.

  • CURLOPT_POSTQUOTE: Übergeben wird ein Array FTP-Kommandos, die nach der FTP Anfrage auf dem Server ausgeführt werden sollen.

Die folgenden Optionen erwarten einen Dateizeiger, der mit Hilfe von fopen() erstellt werden kann:

  • CURLOPT_FILE: Die Datei, in die die Ausgabe des Transfers geschrieben werdem soll. Voreingestellt ist STDOUT.

  • CURLOPT_INFILE: Die Datei aus der die Daten des Transfers stammt.

  • CURLOPT_WRITEHEADER: Die Datei in die die Header-Teile der Ausgabe geschrieben werden sollen.

  • CURLOPT_STDERR: Die Datei, in die die aufgetretenen Fehler geschrieben werden sollen anstatt nach STRDERR.

Zurück | Zum Anfang | Nach vorne
curl_multi_select | Nach oben | curl_version


curl_version

(PHP 4 >= 4.0.2, PHP 5)

curl_version -- Gibt die aktuelle cURL-Version zurück

Beschreibung

string curl_version ( void )

Die Funktion curl_version() gibt einen String zurück, der die aktuelle cURL-Version enthält.

Zurück | Zum Anfang | Nach vorne
curl_setopt | Nach oben | Cybercash Bezahl Funktionen


Cybercash Bezahl Funktionen

PHP Handbuch
Zurück Nach vorne

XIII. Cybercash Bezahl Funktionen

Diese Funktionen sind nur dann verfügbar, wenn der Interpreter mit der Option --with-cybercash=[DIR] kompiliert wurde, und sie wurden mit PHP 4 eingeführt.

Inhaltsverzeichnis
cybercash_base64_decode --
cybercash_base64_encode -- ???
cybercash_decr -- ???
cybercash_encr -- ???

Zurück | Zum Anfang | Nach vorne
curl_version | Nach oben | cybercash_base64_decode


cybercash_base64_decode

(PHP 4 <= 4.2.3)

cybercash_base64_decode --

Beschreibung

string cybercash_base64_decode ( string inbuff)

Zurück | Zum Anfang | Nach vorne
Cybercash Bezahl Funktionen | Nach oben | cybercash_base64_encode


cybercash_base64_encode

(PHP 4 <= 4.2.3)

cybercash_base64_encode -- ???

Beschreibung

string cybercash_base64_encode ( string inbuff)

Zurück | Zum Anfang | Nach vorne
cybercash_base64_decode | Nach oben | cybercash_decr


cybercash_decr

(PHP 4 <= 4.2.3)

cybercash_decr -- ???

Beschreibung

array cybercash_decr ( string wmk, string sk, string inbuff)

Diese Funktion gibt ein assoziatives Array mit den Elementen "errcode" und, falls "errcode" den Wert FALSE hat, "outbuff" (string), "outLth" (long) und "macbuff" (string) zurück.

Zurück | Zum Anfang | Nach vorne
cybercash_base64_encode | Nach oben | cybercash_encr


cybercash_encr

(PHP 4 <= 4.2.3)

cybercash_encr -- ???

Beschreibung

array cybercash_encr ( string wmk, string sk, string inbuff)

Diese Funktion gibt ein assoziatives Array mit den Elementen "errcode" und, falls "errcode" den Wert FALSE hat, "outbuff" (string), "outLth" (long) und "macbuff" (string) zurück.

Zurück | Zum Anfang | Nach vorne
cybercash_decr | Nach oben | Cyrus IMAP administration Functions


Cyrus IMAP administration Functions

PHP Handbuch
Zurück Nach vorne

XIV. Cyrus IMAP administration Functions

Einführung

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This extension is not available on Windows platforms.

Installation

To enable Cyrus IMAP support and to use these functions you have to compile PHP with the --with-cyrus option.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

CYRUS_CONN_NONSYNCLITERAL (integer)

CYRUS_CONN_INITIALRESPONSE (integer)

CYRUS_CALLBACK_NUMBERED (integer)

CYRUS_CALLBACK_NOLITERAL (integer)

Inhaltsverzeichnis
cyrus_authenticate -- Authenticate against a Cyrus IMAP server
cyrus_bind -- Bind callbacks to a Cyrus IMAP connection
cyrus_close -- Close connection to a Cyrus IMAP server
cyrus_connect -- Connect to a Cyrus IMAP server
cyrus_query -- Send a query to a Cyrus IMAP server
cyrus_unbind -- Unbind ...

Zurück | Zum Anfang | Nach vorne
cybercash_encr | Nach oben | cyrus_authenticate


cyrus_authenticate

(PHP 4 >= 4.1.0)

cyrus_authenticate -- Authenticate against a Cyrus IMAP server

Description

bool cyrus_authenticate ( resource connection [, string mechlist [, string service [, string user [, int minssf [, int maxssf]]]]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
Cyrus IMAP administration Functions | Nach oben | cyrus_bind


cyrus_bind

(PHP 4 >= 4.1.0)

cyrus_bind -- Bind callbacks to a Cyrus IMAP connection

Description

bool cyrus_bind ( resource connection, array callbacks)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cyrus_authenticate | Nach oben | cyrus_close


cyrus_close

(PHP 4 >= 4.1.0)

cyrus_close -- Close connection to a Cyrus IMAP server

Description

bool cyrus_close ( resource connection)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cyrus_bind | Nach oben | cyrus_connect


cyrus_connect

(PHP 4 >= 4.1.0)

cyrus_connect -- Connect to a Cyrus IMAP server

Description

resource cyrus_connect ( [string host [, string port [, int flags]]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cyrus_close | Nach oben | cyrus_query


cyrus_query

(PHP 4 >= 4.1.0)

cyrus_query -- Send a query to a Cyrus IMAP server

Description

bool cyrus_query ( resource connection, string query)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cyrus_connect | Nach oben | cyrus_unbind


cyrus_unbind

(PHP 4 >= 4.1.0)

cyrus_unbind -- Unbind ...

Description

bool cyrus_unbind ( resource connection, string trigger_name)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
cyrus_query | Nach oben | Character type functions


Character type functions

PHP Handbuch
Zurück Nach vorne

XV. Character type functions

Einführung

Die Funktionen dieser Extension überprüfen, ob ein Zeichen oder eine Zeichenkette in eine bestimmte Zeichenklasse fällt, unter Berücksichtigung der momentanen locale-Einstellung (Siehe auch setlocale()).

Beim Aufruf mit einem Integer-Argument verhalten sich diese Funktionen exakt wie ihre C-Gegenstücke aus ctype.h.

Beim Aufruf mit einem String-Argument überprüfen Sie jedes einzelne Zeichen und geben nur TRUE zurück, wenn jedes einzelne Zeichen die angeforderten entsprechenden Kriterien erfüllt. Beim Aufruf mit einer leeren Zeichenkette wird immer TRUE zurückgegeben.

Sobald irgendetwas anderes als String oder Integer als Argument übergeben wird, wird sofort FALSE zurückgegeben.

Anforderungen

Keine außer der Funktionen aus der C-Bibliothek, die immer verfügbar sind.

Installation

Seit PHP 4.2.0 sind diese Funktionen standardmäßig aktiviert. In älteren Versionen müssen Sie PHP mit --enable-ctype konfigurieren. Sie können die cytpe-Unterstützung mit --disable-ctype abschalten.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Anmerkung: Ab PHP 4.3.0 ist eine integrierte ctype-Unterstützung vorhanden.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
ctype_alnum -- Auf alphanumerische Zeichen überprüfen
ctype_alpha -- Auf Buchstabe(n) überprüfen
ctype_cntrl -- Auf Steuerzeichen überprüfen
ctype_digit -- Auf Dezimalzeichen überprüfen
ctype_graph -- Auf druckbare Zeichen (außer Leerzeichen) überprüfen
ctype_lower -- Auf Kleinbuchstaben überprüfen
ctype_print -- Auf druckbare Zeichen überprüfen
ctype_punct -- Auf druckbare Zeichen überprüfen, die weder Leerzeichen, noch alphanumerische Zeichen sind
ctype_space -- Auf Leerzeichen überprüfen
ctype_upper -- Auf großgeschriebene Zeichen überprüfen
ctype_xdigit -- Auf Hexadezimalziffern überprüfen

Zurück | Zum Anfang | Nach vorne
cyrus_unbind | Nach oben | ctype_alnum


ctype_alnum

(PHP 4 >= 4.0.4, PHP 5)

ctype_alnum -- Auf alphanumerische Zeichen überprüfen

Beschreibung

bool ctype_alnum ( string text)

Gibt TRUE zurück, wenn alle Zeichen in text entweder ein Buchstabe oder eine Ziffer sind. Anderenfalls wird FALSE zurückgegeben. In der Standardeinstellung für locale C gelten nur [A-Za-z] als Buchstaben. Die Funktion ist gleichbedeutend zu (ctype_alpha($text) || ctype_digit($text)).

Siehe auch ctype_alpha(), ctype_digit(), und setlocale().

Zurück | Zum Anfang | Nach vorne
Character type functions | Nach oben | ctype_alpha


ctype_alpha

(PHP 4 >= 4.0.4, PHP 5)

ctype_alpha -- Auf Buchstabe(n) überprüfen

Beschreibung

bool ctype_alpha ( string text)

Gibt TRUE zurück, wenn alle Zeichen in text Buchstaben im Sinne der aktuellen locale-Einstellung sind. Anderenfalls wird FALSE zurückgegeben. In der Standardeinstellung für locale C gelten nur [A-Za-z] als Buchstaben und ctype_alpha() ist gleichbedeutend zu (ctype_upper($text) || ctype_lower($text)), aber andere Sprachen haben Buchstaben, die weder als groß- noch als kleingeschrieben gelten.

Siehe auch ctype_upper(),
ctype_lower(), und
setlocale().

Zurück | Zum Anfang | Nach vorne
ctype_alnum | Nach oben | ctype_cntrl


ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5)

ctype_cntrl -- Auf Steuerzeichen überprüfen

Beschreibung

bool ctype_cntrl ( string text)

Gibt TRUE zurück, wenn alle Zeichen in text spezielle Steuerfunktionen haben, anderenfalls FALSE. Steuerzeichen sind z.B. Zeilenumbruch, TAB, ESC.

Zurück | Zum Anfang | Nach vorne
ctype_alpha | Nach oben | ctype_digit


ctype_digit

(PHP 4 >= 4.0.4, PHP 5)

ctype_digit -- Auf Dezimalzeichen überprüfen

Beschreibung

bool ctype_digit ( string text)

Gibt TRUE zurück, wenn jedes Zeichen in text eine Ziffer ist, anderenfalls FALSE.

Siehe auch ctype_alnum() und ctype_xdigit().

Zurück | Zum Anfang | Nach vorne
ctype_cntrl | Nach oben | ctype_graph


ctype_graph

(PHP 4 >= 4.0.4, PHP 5)

ctype_graph -- Auf druckbare Zeichen (außer Leerzeichen) überprüfen

Beschreibung

bool ctype_graph ( string text)

Gibt TRUE zurück, wenn jedes Zeichen in text druckbar ist und tatsächlich eine sichtbare Ausgabe produziert (kein Leerzeichen), anderenFalls FALSE.

Siehe auch ctype_alnum(), ctype_print(), und ctype_punct().

Zurück | Zum Anfang | Nach vorne
ctype_digit | Nach oben | ctype_lower


ctype_lower

(PHP 4 >= 4.0.4, PHP 5)

ctype_lower -- Auf Kleinbuchstaben überprüfen

Beschreibung

bool ctype_lower ( string text)

Gibt TRUE zurück, wenn jedes Zeichen in text ein Kleinbuchstabe im Sinne der aktuellen locale-Einstellung ist, anderenfalls FALSE.

Siehe auch ctype_alpha() und ctype_upper().

Zurück | Zum Anfang | Nach vorne
ctype_graph | Nach oben | ctype_print


ctype_print

(PHP 4 >= 4.0.4, PHP 5)

ctype_print -- Auf druckbare Zeichen überprüfen

Beschreibung

bool ctype_print ( string text)

Gibt TRUE zurück, wenn jedes Zeichen in text tatsächtlich eine Ausgabe bewirkt (inkl. Leerzeichen). Wenn text Steuerzeichen oder Zeichen, die keine Ausgabe- oder Steuerungsfunktion haben, enthält, wird FALSE zurückgegeben.

Siehe auch ctype_cntrl(), ctype_graph(), und ctype_punct().

Zurück | Zum Anfang | Nach vorne
ctype_lower | Nach oben | ctype_punct


ctype_punct

(PHP 4 >= 4.0.4, PHP 5)

ctype_punct -- Auf druckbare Zeichen überprüfen, die weder Leerzeichen, noch alphanumerische Zeichen sind

Beschreibung

bool ctype_punct ( string text)

Gibt TRUE zurück, wenn alle Zeichen in text durckbar sind, aber weder Buchstaben, Ziffern oder Leerzeichen. Anderenfalls wird FALSE zurückgegeben.

Siehe auch ctype_cntrl(), ctype_graph(), und ctype_punct().

Zurück | Zum Anfang | Nach vorne
ctype_print | Nach oben | ctype_space


ctype_space

(PHP 4 >= 4.0.4, PHP 5)

ctype_space -- Auf Leerzeichen überprüfen

Description

bool ctype_space ( string text)

Gibt TRUE zurück, wenn jedes Zeichen in text irgendeine Art Leerzeichen erzeugt, anderenfalls FALSE. Neben dem eigentlichen Leerzeichen schließt das auch TAB, Zeilenforschub, Carriage Return und Formularvorschub mit ein.

Zurück | Zum Anfang | Nach vorne
ctype_punct | Nach oben | ctype_upper


ctype_upper

(PHP 4 >= 4.0.4, PHP 5)

ctype_upper -- Auf großgeschriebene Zeichen überprüfen

Beschreibung

bool ctype_upper ( string text)

Gibt TRUE zurück, wenn jedes Zeichen in text ein Großbuchstabe im Sinne der aktuellen locale-Einstellung ist, anderenfalls FALSE.

Siehe auch ctype_alpha() und ctype_lower().

Zurück | Zum Anfang | Nach vorne
ctype_space | Nach oben | ctype_xdigit


ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5)

ctype_xdigit -- Auf Hexadezimalziffern überprüfen

Beschreibung

bool ctype_xdigit ( string text)

Gibt TRUE zurück, wenn jedes Zeichen in text eine Hexadezimalziffer ist, also eine Dezimalziffer oder ein Zeichen aus [A-Fa-f] , anderenfalls FALSE.

Siehe auch ctype_digit().

Zurück | Zum Anfang | Nach vorne
ctype_upper | Nach oben | dba Datenbank (dbm-style) Abstraktions-Funktionen


dba Datenbank (dbm-style) Abstraktions-Funktionen

PHP Handbuch
Zurück Nach vorne

XVI. dba Datenbank (dbm-style) Abstraktions-Funktionen

Diese Funktionen bilden die Basis für den Zugriff auf Datenbanken vom Typ "Berkeley DB".

"dba" implementiert eine generelle Abstraktionsschicht für verschiedene dateibasierte Datenbanken. Der Funktionsumfang ist daher beschränkt auf eine gemeinsame Teilmenge des Funktionsumfangs aktueller Datenbanken (zum Beispiel Sleepycat Software's DB2, nicht zu verwechseln mit IBM's DB2 Software, die über die ODBC Funktionen unterstützt wird).

Das Verhalten der dba-Funktionen ist teilweise abhängig von der Implementation des zugrundeliegenden Datenbanksystems. Funktionen wie zum Beispiel dba_optimize() und dba_sync() funktionieren vielleicht bei einer Datenbank, und tun gar nichts bei einer Anderen.

Beim Aufruf von dba_open() oder dba_popen() muss einer der verfügbaren Handler-Namen aus der nachfolgenden Handler-Tabelle angegeben werden. Die tatsächlich verfügbaren Handler in Ihrer PHP-Installation können Sie mit der Funktion phpinfo() anzeigen lassen. (Um zum Zeitpunkt der PHP-Generierung die Unterstützung für einen der folgenden Handler verfügbar zu machen, fügen Sie bitte den jeweils angegebenen --with-XXXX Compilerschalter in ihren PHP-Konfigurations-Aufruf ein.)

Tabelle 1. Liste der DBA-Handler

Handler | Hinweise
dbm | Dbm ist der ursprüngliche und älteste Typ der "Berkeley DB" Datenbanken. Sie sollten diesen Typ wenn möglich vermeiden. Die in DB2 und gdbm enthaltenen dbm-Kompatibilitätsfunktionen werden ebenfalls nicht unterstützt, da sie nur auf Quellcode-Basis kompatibel sind, aber Dateien im originalen dbm-Format nicht bearbeiten können. (--with-dbm)
ndbm | Ndbm ist neuer und flexibler als Dbm. Es hat jedoch die meisten Einschränkungen von Dbm übernommen und ist daher ebenfalls nicht empfehlenswert. (--with-ndbm)
gdbm | Gdbm ist der GNU Datenbank Manager. (--with-gdbm)
db2 | DB2 ist Sleepycat Software's DB2. Es wird beschrieben als "Werkzeugsatz für eingebaute Unterstützung von Hochleistungs-Datenbanken für Standalone- und Client/Server- Applikationen". (--with-db2)
db3 | DB3 ist Sleepycat Software's DB3. (--with-db3)
cdb | Cdb ist "ein schnelles, zuverlässiges und kompaktes Paket zum Erstellen und Auslesen konstanter Datenbanken." Es stammt vom Autor von qmail und kann hier heruntergeladen werden. Da es für konstante Daten ausgelegt ist, werden nur Lese-Operationen unterstützt. (--with-cdb)

Beispiel 1. DBA Beispiel

<?php

$id = dba_open ("/tmp/test.db", "n", "db2");

if (!$id) {
    echo "dba_open schlug fehl\n";
    exit;
}

dba_replace ("key", "Dies ist ein Beispiel!", $id);

if (dba_exists ("key", $id)) {
    echo dba_fetch ("key", $id);
    dba_delete ("key", $id);
}

dba_close ($id);
?>

DBA arbeitet binärsicher und besitzt keine willkürlichen Limits. Es erbt allerdings alle Einschränkungen von der zugrundeliegenden Datenbank-Implementation.

Alle dateibasierten Datenbanken müssen einen Weg zur Verfügung stellen, um den Dateimodus einer neu erstellten Datenbank zu bestimmen, soweit dies überhaupt möglich ist. Der Dateimodus wird gewöhnlich als viertes Argument an die Funktionen dba_open() oder dba_popen() übergeben.

Sie können auf alle Einträge in einer Datenbank sequentiell durch die Verwendung von dba_firstkey() und dba_nextkey() zugreifen. Während die Datenbank so durchlaufen wird, darf sie nicht verändert werden.

Beispiel 2. Durchlaufen einer Datenbank

<?php

# ...Oeffnen der Datenbank...

$key = dba_firstkey ($id);

while ($key != false) {
    if (...) { # den Schluessel fuer spaetere Aktionen merken
        $handle_later[] = $key;
    }
    $key = dba_nextkey ($id);
}

for ($i = 0; $i < count($handle_later); $i++)
    dba_delete ($handle_later[$i], $id);

?>

Inhaltsverzeichnis
dba_close -- Datenbank schließen
dba_delete -- Löschen des zu key gehörigen Eintrages
dba_exists -- Überprüfen, ob Datensatz mit Schlüssel key existiert
dba_fetch -- Datensatz für Schlüssel "key" auslesen
dba_firstkey -- Ersten Schlüssel bestimmen
dba_handlers -- List handlers available
dba_insert -- Datensatz einfügen
dba_key_split -- Splits a key in string representation into array representation
dba_list -- List all open database files
dba_nextkey -- Nachfolgenden Schlüssel bestimmen
dba_open -- Verbindung zu einer Datenbank öffnen
dba_optimize -- Optimieren einer Datenbank
dba_popen -- Persistente Datenbank-Verbindung öffnen
dba_replace -- Datensatz ersetzen oder einfügen
dba_sync -- Datenbank synchronisieren

Zurück | Zum Anfang | Nach vorne
ctype_xdigit | Nach oben | dba_close


dba_close

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_close -- Datenbank schließen

Beschreibung

void dba_close ( int handle)

dba_close() schließt die offene Datenbank, die durch handle festgelegt wird, und gibt alle zugehörigen Ressourcen frei.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_close() besitzt keinen Rückgabewert.

Siehe auch dba_open() und dba_popen()

Zurück | Zum Anfang | Nach vorne
dba Datenbank (dbm-style) Abstraktions-Funktionen | Nach oben | dba_delete


dba_delete

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_delete -- Löschen des zu key gehörigen Eintrages

Beschreibung

bool dba_delete ( string key, int handle)

dba_delete() löscht den Eintrag mit dem Schlüssel key aus der durch handle spezifizierten Datenbank.

key ist der Schlüssel des Eintrags, der gelöscht wird.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_delete() hat als Rückgabewert TRUE oder FALSE, abhängig davon, ob der Löschvorgang erfolgreich war oder nicht.

Siehe auch dba_exists(),
dba_fetch(), dba_insert(),
und dba_replace().

Zurück | Zum Anfang | Nach vorne
dba_close | Nach oben | dba_exists


dba_exists

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_exists -- Überprüfen, ob Datensatz mit Schlüssel key existiert

Beschreibung

bool dba_exists ( string key, int handle)

dba_exists() überprüft, ob ein Datensatz mit dem Schlüssel key in der durch handle spezifizierten Datenbank existiert.

Key ist der Schlüssel, dessen Existenz überprüft werden soll.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_exists() hat als Rückgabewert TRUE oder FALSE, abhängig davon, ob der Schlüssel gefunden wurde oder nicht.

Siehe auch dba_fetch(),
dba_delete(), dba_insert(),
und dba_replace().

Zurück | Zum Anfang | Nach vorne
dba_delete | Nach oben | dba_fetch


dba_fetch

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_fetch -- Datensatz für Schlüssel "key" auslesen

Beschreibung

string dba_fetch ( string key, int handle)

dba_fetch() liest die durch den Schlüssel key festgelegten Daten aus der durch handle spezifizierten Datenbank aus.

Key ist der Schlüssel, mit dem die Daten identifizert werden.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_fetch() hat als Rückgabewert entweder den zum Schlüssel key passenden Werte-String oder FALSE, abhängig davon, ob das Schlüssel/Wert-Paar gefunden wurde oder nicht.

Siehe auch dba_exists(),
dba_delete(), dba_insert(),
und dba_replace().

Zurück | Zum Anfang | Nach vorne
dba_exists | Nach oben | dba_firstkey


dba_firstkey

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_firstkey -- Ersten Schlüssel bestimmen

Beschreibung

string dba_firstkey ( int handle)

dba_firstkey() gibt den ersten Schlüssel aus der durch handle spezifizierten Datenbank zurück und setzt den internen Schlüssel-Zeiger zurück. Dies erlaubt in Verbindung mit dba_nextkey() eine sequentielle Suche durch die gesamte Datenbank.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_firstkey() liefert als Rückgabewert den Schlüssel oder FALSE, abhängig davon, ob die Aktion erfolgreich war oder fehlschlug.

Siehe auch dba_nextkey() und Beispiel 2 im DBA-Ü;berblick

Zurück | Zum Anfang | Nach vorne
dba_fetch | Nach oben | dba_handlers


dba_handlers

(PHP 4 >= 4.3.0, PHP 5)

dba_handlers -- List handlers available

Description

array dba_handlers ( void )

dba_handlers() returns an array with all handlers supported by this extension.

When the internal cdb library is used you will see 'cdb' and 'cdb_make'.

Zurück | Zum Anfang | Nach vorne
dba_firstkey | Nach oben | dba_insert


dba_insert

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_insert -- Datensatz einfügen

Beschreibung

bool dba_insert ( string key, string value, int handle)

dba_insert() fügt den Datensatz, der durch key und value beschrieben wird, in die durch handle spezifizierte Datenbank ein. Die Aktion schlägt fehl, wenn es bereits einen Eintrag mit dem gleichen key in der Datenbank gibt.

key ist der Schlüssel des Eintrags, der eingefügt werden soll.

value ist der Wert, der eingefügt werden soll.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_insert() hat als Rückgabewert TRUE oder FALSE, abhängig davon, ob die Aktion erfolgreich war oder nicht.

Siehe auch
dba_exists()
dba_delete()
dba_fetch()
dba_replace()

Zurück | Zum Anfang | Nach vorne
dba_handlers | Nach oben | dba_key_split


dba_key_split

(PHP 5)

dba_key_split -- Splits a key in string representation into array representation

Description

mixed dba_key_split ( mixed key)

dba_key_split() returns an array of the form array(0=>group,1=>value_name). This function will return FALSE if key is NULL or FALSE.

key is the key in string representation.

See also
dba_firstkey(),
dba_nextkey() and
dba_fetch().

Zurück | Zum Anfang | Nach vorne
dba_insert | Nach oben | dba_list


dba_list

(PHP 4 >= 4.3.0, PHP 5)

dba_list -- List all open database files

Description

array dba_list ( void )

dba_list() returns an associative array with all open database files. This array is in the form: resourceid=>filename.

Zurück | Zum Anfang | Nach vorne
dba_key_split | Nach oben | dba_nextkey


dba_nextkey

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_nextkey -- Nachfolgenden Schlüssel bestimmen

Beschreibung

string dba_nextkey ( int handle)

dba_nextkey() gibt den nachfolgenden Schlüssel aus der durch handle spezifizierten Datenbank zurück und erhöht den internen Schlüssel-Zeiger.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_nextkey() hat als Rückgabewert den Schlüssel oder FALSE, abhängig davon, ob die Aktion erfolgreich war oder nicht.

Siehe auch dba_firstkey() und Beispiel 2 im DBA-Überblick

Zurück | Zum Anfang | Nach vorne
dba_list | Nach oben | dba_open


dba_open

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_open -- Verbindung zu einer Datenbank öffnen

Beschreibung

int dba_open ( string path, string mode, string handler [, ...])

dba_open() stellt eine Datenbankinstanz für path mit mode her und benutzt dabei handler.

path ist ein gültiger Pfad in Ihrem Dateisystem.

Das mode Argument beschreibt den Modus, mit dem die Datenbank geöffnet werden soll. Es gibt 4 Möglichkeiten, eine DBA Datenbank zu öffnen:

"r" (read-only)

Eine existierende Datenbank soll nur lesend geöffnet werden.

"n" (new)

Eine neue Datenbank soll angelegt werden. Diese wird automatisch als read-write geöffnet. Eine existierende Datenbank wird inhaltlich gelöscht.

"c" (create)

Eine neue Datenbank soll angelegt werden. Diese wird automatisch als read-write geöffnet. Im Gegensatz zu "n" wird eine bereits existierende Datenbank inhaltlich nicht gelöscht, sondern nur für Lese- und Schreibzugriff geöffnet.

"w" (read-write)

Eine existierende Datenbank soll lesend und schreibend geöffnet werden.

handler ist der Name des Handlers, der für den Zugriff auf path benutzt werden soll. Die (oben durch ... gekennzeichneten) optionalen Argumente der Funktion dba_open() werden an ihn übergeben.

dba_open() liefert als Rückgabewert eine positive Zugriffs-"handle" oder FALSE, abhängig davon, ob die Verbindung hergestellt werden konnte oder nicht.

Siehe auch dba_popen() dba_close()

Zurück | Zum Anfang | Nach vorne
dba_nextkey | Nach oben | dba_optimize


dba_optimize

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_optimize -- Optimieren einer Datenbank

Beschreibung

bool dba_optimize ( int handle)

dba_optimize() optimiert die zugrunde liegende Datenbank, die durch handle spezifiziert wird.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_optimize() hat als Rückgabewert TRUE oder FALSE, abhängig davon, ob die Optimierung erfolgreich war oder ob sie fehlschlug.

Siehe auch dba_sync()

Zurück | Zum Anfang | Nach vorne
dba_open | Nach oben | dba_popen


dba_popen

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_popen -- Persistente Datenbank-Verbindung öffnen

Beschreibung

int dba_popen ( string path, string mode, string handler [, ...])

dba_popen() stellt eine persistente Datenbankinstanz für path mit mode her und benutzt dabei den Handler handler.

path ist ein gültiger Pfad in Ihrem Dateisystem.

Das mode Argument beschreibt den Modus, mit dem die Datenbank geöffnet werden soll. Es gibt 4 Möglichkeiten, eine DBA Datenbank zu öffnen:

"r" (read-only)

Eine existierende Datenbank soll nur lesend geöffnet werden.

"n" (new)

Eine neue Datenbank soll angelegt werden. Diese wird automatisch als read-write geöffnet. Eine existierende Datenbank wird inhaltlich gelöscht.

"c" (create)

Eine neue Datenbank soll angelegt werden. Diese wird automatisch als read-write geöffnet. Im Gegensatz zu "n" wird eine bereits existierende Datenbank inhaltlich nicht gelöscht, sondern nur für Lese- und Schreibzugriff geöffnet.

"w" (read-write)

Eine existierende Datenbank soll lesend und schreibend geöffnet werden.

handler ist der Name des Handlers, der für den Zugriff auf path benutzt werden soll. Die (oben durch ... gekennzeichneten) optionalen Argumente der Funktion dba_popen() werden an ihn übergeben.

dba_popen() liefert als Rückgabewert eine positive Zugriffs-"handle" oder FALSE, abhängig davon, ob die Verbindung hergestellt werden konnte oder nicht.

Siehe auch dba_open() dba_close()

Zurück | Zum Anfang | Nach vorne
dba_optimize | Nach oben | dba_replace


dba_replace

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_replace -- Datensatz ersetzen oder einfügen

Beschreibung

bool dba_replace ( string key, string value, int handle)

dba_replace() ersetzt oder fügt in der durch handle spezifizierten Datenbank einen Datensatz ein, der durch den Schlüssel key und den Wert value beschrieben wird.

key ist der Schlüssel des Eintrags, der eingefügt werden soll.

value ist der Wert, der eingefügt werden soll.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_replace() liefert als Rückgabewert TRUE oder FALSE, abhängig davon, ob die Aktion erfolgreich war oder nicht.

Siehe auch dba_exists(),
dba_delete(), dba_fetch(),
und dba_insert().

Zurück | Zum Anfang | Nach vorne
dba_popen | Nach oben | dba_sync


dba_sync

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_sync -- Datenbank synchronisieren

Beschreibung

bool dba_sync ( int handle)

dba_sync() synchronisiert die Datenbank, die durch handle spezifiziert wird. Dies kann möglicherweise einen physikalischen Schreibvorgang auf den Datenträger auslösen, falls dies unterstützt wird.

handle ist ein Datenbankhandle, das von dba_open() zurückgegeben wurde.

dba_sync() hat als Rückgabewert TRUE oder FALSE, abhängig davon, ob die Aktion erfolgreich war oder nicht.

Siehe auch dba_optimize()

Zurück | Zum Anfang | Nach vorne
dba_replace | Nach oben | Datums- und Zeit-Funktionen


Datums- und Zeit-Funktionen

PHP Handbuch
Zurück Nach vorne

XVII. Datums- und Zeit-Funktionen

Einführung

Diese Funktionen ermöglichen es Ihnen, Datums- und Zeitangaben vom Server, auf dem PHP läuft, abzufragen. Die Ausgabe von Datums- und Zeitangaben kann mit Hilfe dieser Funktionen in unterschiedlichster Weise formatiert werden.

Anmerkung: Beachten Sie bitte, dass diese Funktionen von den lokalen Systemeinstellungen Ihres Servers abhängen. Ein besonderes Augenmerk sollten Sie auf Sommer- und Winterzeit und Schaltjahre haben.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
checkdate -- Prüft ein Gregorianisches Datum auf Gültigkeit
date -- Formatiert ein(e) angegebene(s) Zeit/Datum
getdate -- Gibt Datums- und Zeitinformationen zurück
gettimeofday -- Gibt die aktuelle Zeit zurück
gmdate -- Formatiert eine GMT/UTC Zeit- Datumsangabe
gmmktime -- Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück
gmstrftime -- Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen
idate -- Format a local time/date as integer
localtime -- Ermittelt die lokalen Zeitwerte
microtime -- Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück
mktime -- Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
strftime -- Formatiert eine Zeit-/Datumsangabe nach den lokalen Einstellungen
strtotime -- Wandelt ein beliebiges Datum (englisches Format) in einen UNIX-Zeitstempel (Timestamp) um.
time -- Gibt den gegenwärtigen Unix-Timestamp/Zeitstempel zurück

Zurück | Zum Anfang | Nach vorne
dba_sync | Nach oben | checkdate


checkdate

(PHP 3, PHP 4 , PHP 5)

checkdate -- Prüft ein Gregorianisches Datum auf Gültigkeit

Beschreibung:

bool checkdate ( int Monat, int Tag, int Jahr)

Ist das angegebene Datum gültig, wird TRUE zurückgegeben, ansonsten FALSE. Prüft die Gültigkeit der angebenen Datumswerte. Ein Datum wird als gültig angesehen, wenn

  • das Jahr zwischen 1 und 32767 (inklusive) ist,

  • der Monat zwischen 1 und 12 (inklusive) ist und

  • der Tag innerhalb der erlaubten Werte des angegebenen Monats ist. SchaltJahre werden berücksichtigt.

Beispiel 1. checkdate() Beispiel

<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>

Dieses Beispiel gibt folgendes aus:

bool(true)
bool(false)

Siehe auch mktime() und strtotime().

Zurück | Zum Anfang | Nach vorne
Datums- und Zeit-Funktionen | Nach oben | date


date

(PHP 3, PHP 4 , PHP 5)

date -- Formatiert ein(e) angegebene(s) Zeit/Datum

Beschreibung:

string date ( string Format [, int Timestamp])

Gibt einen formatierten String anhand eines vorzugebenden Musters zurück. Dabei wird entweder der angegebene Timestamp oder die gegenwärtige lokale Zeit berücksichtigt, wenn kein Timestamp angegegeben wird. Mit anderen Worten ausgedrückt: der Parameter Timestamp ist optional und falls dieser nicht angegeben wird, wird der Wert der Funktion time() angenommen.

Anmerkung: Der gültige Bereich eines Timestamp liegt typischerweise zwischen Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT. (Das entspricht den minimalen und maximalen Werten für einen vorzeichenbehafteten 32-Bit Integer). Unter Windows-Betriebssytemen ist dieser Bereich auf 01-01-1970 bis 19-01-2038 beschränkt.

Anmerkung: Um einen Timestamp aus aus einem Datums-String zu erzeugen, können Sie die Funktion strtotime() benutzen. Zusätzlich bieten einige Datenbanken Funktionen, um Ihre Datumsfromate in Timestamps umzuwandeln (wie zum Beispiel MySQL's UNIX_TIMESTAMP Funktion.

Tabelle 1. Die folgenden Zeichen werden im Parameter Formaterkannt

Format Zeichen | Beschreibung | Beispiel für Rückgabewerte
a | Kleingeschrieben: Ante meridiem und Post meridiem | am oder pm
A | Großgeschrieben: Ante meridiem und Post meridiem | AM oder PM
B | Swatch-Internet-Zeit | 000 bis 999
d | Tag des Monats, 2-stellig mit führender Null | 01 bis 31
D | Tag der Woche als mit drei Buchstaben | Mon bis Sun
F | Monat als ganzes Wort, wie January oder March | January bis December
g | 12-Stunden-Format, ohne führende Nullen | 1 bis 12
G | 24-Stunden-Format, ohne führende Nullen | 0 bis 23
h | 12-Stunden-Format, mit führenden Nullen | 01 bis 12
H | 24-Stunden-Format, mit führenden Nullen | 00 bis 23
i | Minuten mit führenden Nullen | 00 bis 59
I (großes i) | Fällt ein Datum in die Sommerzeit | 1 bei Sommerzeit, ansonsten 0.
j | Tag des Monats ohne führende Nullen | 1 bis 31
l (kleines 'L') | Ausgeschriebener Tag der Woche | Sunday bis Saturday
L | Schaltjahr oder nicht | 1 für ein Schaltjahr, ansonsten 0.
m | Monat als Zahl, mit führenden Nullen | 01 bis 12
M | Monatsname mit drei Buchstaben | Jan bis Dec
n | Monatszahl, ohne führende Nullen | 1 bis 12
O | Zeitunterschied zur Greenwich time (GMT) in Stunden | Beispiel: +0200
r | RFC 2822 formatiertes Datum | Beispiel: Thu, 21 Dec 2000 16:01:07 +0200
s | Sekunden, mit führenden Nullen | 00 bis 59
S | Anhang der englischen Aufzählung für einen Monatstag, zwei Zeichen | st, nd, rd oder th. Zur Verwendung mit j empfohlen.
t | Anzahl der Tage des angegebenen Monats | 28 bis 31
T | Zeitzoneneinstellung des Rechners | Beispiele: EST, MDT ...
U | Sekunden seit Beginn der UNIX-Epoche (January 1 1970 00:00:00 GMT) | Siehe auch time()
w | Numerischer Tag einer Woche | 0 (für Sonntag) bis 6 (für Samstag)
W | ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag (hinzugefügt in PHP 4.1.0) | Beispiel: 42 (die 42 Woche im Jahr)
Y | Vierstellige Jahreszahl | Beispiel: 1999 oder 2003
y | Jahreszahl, zweistellig | Beispiele: 99 oder 03
z | Der Tag eines Jahres | 0 bis 365
Z | Offset der Zeitzone in Sekunden. Der Offset für Zeitzone West nach UTC ist immer negativ und für Zeitzone Ost nach UTC immer positiv. | -43200 bis 43200

Nicht erkannte Zeichen werden unverändert ausgegeben. Das Z Format gibt beim Gebrauch von gmdate() immer 0 zurück.

Beispiel 1. date() Beispiel

<?php
// Gibt etwas ähnliches zu Wednesday aus
echo date("l");

// Gibt etwas ähnliches aus wie: Wednesday 15th of January 2003 05:51:38 AM
echo date("l dS of F Y h:i:s A");

// Ausgabe: July 1, 2000 ist ein Saturday
echo "July 1, 2000 ist ein " . date("l", mktime(0, 0, 0, 7, 1, 2000));
?>

Möchten Sie verhindern, dass ein erkanntes Zeichen im Formatstring ersetzt wird, sollten Sie dieses Zeichen mit einem vorangestellten Backslash escapen. Ist das Zeichen mit dem Backslash bereits eine spezielle Zeichenfolge, müssen Sie diesen Backslash ebenso escapen.

Beispiel 2. Escaping von Zeichen in date()

// gibt etwas ähnliches aus wie 'Wednesday the 15th'
echo date("l \\t\h\e jS");

Es ist möglich, date() und mktime() gleichzeitig zu verwenden, um Datumsangaben in der Zukunft/Vergangenheit zu bestimmen.

Beispiel 3. date() und mktime() Beispiele

<?php
$morgen        = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$letztermonat  = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$naechstesjahr = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
?>

Anmerkung: Dieses Vorgehen kann zu verlässlicheren Ergebnissen führen, als simples addieren oder subtrahieren der Anzahl von Sekunden in Tagen oder Monaten zu einem Timestamp, da Sommer- und Winterzeit berücksichtigt werden.

Es folgen einige Beispiele zur date() Formatierung. Beachten Sie, dass Sie alle anderen Zeichen escapen sollten, da alle Zeichen, die im Augenblick eine spezielle Bedeutung haben, unerwünschte Resultate liefern. Bei allen weiteren Zeichen kann es durchaus möglich sein, dass diesen in zukünftigen PHP-Versionen eine Bedeutung zukommt. Beim escapen sollten Sie darauf achten einfache Anführungszeichen zu benutzen, damit Zeichenfolgen wie zum Beispiel \n zu keinem Zeilenumbruch führen.

Beispiel 4. date() Formatierungen

<?php
// Angenommen heute ist March 10th, 2001, 5:16:18 pm

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
$today = date("H:i:s");                         // 17:16:17
?>

Um Datumsangaben in anderen Sprach-/Zeitzonen-Formaten auszugeben, sollten Sie die Funktionen setlocale() und strftime() benutzen.

Siehe auch
getlastmod(),
gmdate(),
mktime(),
strftime()
und time().

Zurück | Zum Anfang | Nach vorne
checkdate | Nach oben | getdate


getdate

(PHP 3, PHP 4 , PHP 5)

getdate -- Gibt Datums- und Zeitinformationen zurück

Beschreibung:

array getdate ( [int Timestamp])

Gibt ein assoziatives array mit Datums- und Zeitangaben des angegebenen Timestamp zurück. Wird kein Timestamp angegeben, wird die lokal gültige Zeit berücksichtigt. Die assoziativen Arrayelemente sind folgende:

Tabelle 1. Schlüsselelemente des zurückgegebenen assoziativen Arrays

Key | Beschreibung | Beispiel für Rückgabewerte
"seconds" | Anzahl der Sekunden | zwischen 0 und 59
"minutes" | Anzahl der Minuten | zwischen 0 und 59
"hours" | Anzahl der Stunden | zwischen 0 und 23
"mday" | Numerischer Tag des Monats | zwischen 1 und 31
"wday" | Numerischer Wochentag | zwischen 0 (für Sonntag) und 6 (für Samstag)
"mon" | Monatszahl | zwischen 1 und 12
"year" | Vierstellige Jahreszahl | Beispiele: 1999 oder 2003
"yday" | Numerischer Tag des Jahres | zwischen 0 und 366
"weekday" | Ausgeschriebener Wochentag | zwischen Sonntag und Samstag
"month" | Ausgeschriebener Monatsname, wie Januar oder März | zwischenJanuar und Dezember
0 | Sekunden seit der Unix Epoche, ähnlich den Werten die von der Funktion time() zurückgegeben und von der date() verwendet werden. | Abhängig vom System, typischerweise ein Wert zwischen -2147483648 und 2147483647.

Beispiel 1. getdate() Beispiel

<?php
$heute = getdate();
print_r($heute);
?>

Das Ergebnis sieht so ähnlich wie folgt aus:

Array
(
    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520
)

Siehe auch date(),
time() und
setlocale().

Zurück | Zum Anfang | Nach vorne
date | Nach oben | gettimeofday


gettimeofday

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

gettimeofday -- Gibt die aktuelle Zeit zurück

Beschreibung:

array gettimeofday ( void )

Es handelt sich um eine Schnittstelle zum Systemaufruf von gettimeofday(2). Die Zeitangaben werden als assoziatives Array zurück gegeben. Folgende Arrayelemente sind vorhanden:

  • "sec" - Sekunden

  • "usec" - Microsekunden

  • "minuteswest" - Minuten westlich von Greenwich

  • "dsttime" - Art der Korrektur der Sommerzeit

Beispiel 1. gettimeofday() Beispiel

<?php
print_r(gettimeofday());
?>

Das Ergebnis sieht so ähnlich wie folgt aus:

Array
(
    [sec] => 1073687692
    [usec] => 934726
    [minuteswest] => -60
    [dsttime] => 0
)

Zurück | Zum Anfang | Nach vorne
getdate | Nach oben | gmdate


gmdate

(PHP 3, PHP 4 , PHP 5)

gmdate -- Formatiert eine GMT/UTC Zeit- Datumsangabe

Beschreibung:

string gmdate ( string Format [, int Timestamp])

Entspricht der date() Funktion, außer dass als Zeitangabe immer Greenwich Mean Time (GMT) zurück gegeben wird. Steht ihr System in Deutschland (GMT + 01:00), wird im Beispiel unten (1. Zeile) "Jan 01 1998 00:00:00" ausgegeben, wogegen die 2. Zeile "Dec 31 1997 23:00:00" zurück gibt.

Beispiel 1. gmdate() Beispiel

<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

Anmerkung: Bei den Microsoft Betriebssystemen ist die Systembibliothek, die diese Funktionalität zur Verfügung stellt, defekt. Das hat zur Folge, dass gmdate() keine negativen Werte für den Parameter Timestamp unterstützt. Weitere Details können Sie folgenden Bugreports entnehmen: #22620, #22457 und #14391.

Bei Unix/Linux Systemen ist dieses Problem nicht vorhanden. Hier funktionieren die Systembibliotheken wie erwartet.

PHP kann keine defekten Systembibliotheken reparieren. Kontaktieren Sie den Hersteller Ihres Betriebssystems und bitten Sie um Reparatur für dieses und ähnliche Probleme.

Siehe auch
date(),
mktime(),
gmmktime() und
strftime().

Zurück | Zum Anfang | Nach vorne
gettimeofday | Nach oben | gmmktime


gmmktime

(PHP 3, PHP 4 , PHP 5)

gmmktime -- Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück

Beschreibung:

int gmmktime ( [int Stunde [, int Minute [, int Sekunde [, int Monat [, int Tag [, int Jahr [, int is_dst]]]]]]])

Identisch zu mktime(). Die angegebenen Parameter werden aber als GMT-Datum/Zeit interpretiert.

Wie bei mktime() können Argumente von rechts nach links weggelassen werden, wobei jedes fehlende Argument auf den gegenwärtigen entsprechenden GMT Wert gesetzt wird.

Zurück | Zum Anfang | Nach vorne
gmdate | Nach oben | gmstrftime


gmstrftime

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

gmstrftime -- Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen

Beschreibung:

string gmstrftime ( string Format [, int Timestamp])

Bewirkt das gleiche wie strftime() mit dem Unterschied, dass die Zeit nach Greenwich Mean Time (GMT) zurückgegeben wird. In Deutschland (GMT + 01:00) wird im folgenden Beispiel bei der ersten Zeile "Dez 31 1998 00:00:00" ausgegeben, dagegen gibt die zweite Zeile "Dec 31 1998 23:00:00" aus.

Beispiel 1. gmstrftime() Beispiel

<?php
setlocale (LC_TIME, 'de_DE');
echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
?>

Siehe auch strftime().

Zurück | Zum Anfang | Nach vorne
gmmktime | Nach oben | idate


idate

(PHP 5)

idate -- Format a local time/date as integer

Description

int idate ( string format [, int timestamp])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
gmstrftime | Nach oben | localtime


localtime

(PHP 4 , PHP 5)

localtime -- Ermittelt die lokalen Zeitwerte

Beschreibung:

array localtime ( [int Timestamp [, bool is_associative]])

Die localtime()-Funktion gibt ein Array zurück, welches hinsichtlich seiner Struktur identisch ist mit dem des Funktionsaufrufs in C. Das erste (optionale) Argument von localtime() ist der UNIX-Zeitstempel (Timestamp). Wird der Timestamp nicht angegeben, wird die aktuelle Zeit wie von der Funktion time() zurückgegeben verwendet. Als zweites wird der Parameter is_associative übergeben. Ist dieser 0 oder nicht gesetzt, wird das Werte-Array als reguläres, numerisch indiziertes Array zurück gegeben. Ist dieser dagegen 1, liefert localtime() ein assoziatives Array zurück, welches alle Elemente der Struktur des localtime-Aufrufs in C enthält. Die Bezeichner der verschiedenen Schlüssel dieses assoziatien Arrays lauten:

  • "tm_sec" - Sekunde

  • "tm_min" - Minute

  • "tm_hour" - Stunde

  • "tm_mday" - Tag des Monats

  • "tm_mon" - Monat des Jahres, beginnt bei 0 für Januar

  • "tm_year" - Jahr seit 1900

  • "tm_wday" - Tag der Woche

  • "tm_yday" - Tag des Jahres

  • "tm_isdst" - für das Datum ist die Sommerzeit zu berücksichtigen

Zurück | Zum Anfang | Nach vorne
idate | Nach oben | microtime


microtime

(PHP 3, PHP 4 , PHP 5)

microtime -- Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück

Beschreibung:

mixed microtime ( [bool get_as_float])

microtime() gibt den aktuellen Unix Timestamp mit Mikrosekunden zurück. Diese Funktion steht nur auf Systemen zur Verfügung, die den Systemaufruf gettimeofday() unterstützen.

Wird diese Funktion ohne den optionalen Parameter aufgerufen, gibt diese die Zeichenkette "msec sec" zurück. Dabei entspricht sec der aktuellen Zeit, ausgedrückt als Anzahl der Sekunden seit Beginn der UNIX-Epoche (0:00:00 January 1, 1970 GMT), msec stellt den Mikrosekunden-Teil dar. Beide Teile des Strings werden in Sekunden zurückgegen.

Wird get_as_float angegeben und als TRUE ausgewertet gibt microtime() eine Fließkommazahl (float) zurück.

Anmerkung: Der Parameter get_as_float wurde in PHP 5.0.0 eingeführt.

Beispiel 1. microtime() Beispiel

<?php
function getmicrotime()
{
    list($usec, $sec) = explode(" ",microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = getmicrotime();

for ($i=0; $i < 1000; $i++) {
    //mach nichts,1000 mal
}

$time_end = getmicrotime();
$time = $time_end - $time_start;

echo "Nichts getan in $time Sekunden\n";

// mit PHP 5 erreichen Sie das Gleich auf folgende Art und Weise:

$time_start = microtime(1);

for ($i=0; $i < 1000; $i++) {
    //mach nichts,1000 mal
}

$time_end = microtime(1);
$time = $time_end - $time_start;

echo "Nichts getan in $time Sekunden\n";

?>

Siehe auch time().

Zurück | Zum Anfang | Nach vorne
localtime | Nach oben | mktime


mktime

(PHP 3, PHP 4 , PHP 5)

mktime -- Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück

Beschreibung:

int mktime ( [int Stunde [, int Minute [, int Sekunde [, int Monat [, int Tag [, int Jahr [, int is_dst]]]]]]])

Warnung: Beachten sie die andersartige Anordnung der Argumente. Diese unterscheidet sich von der Reihenfolge des Unix-Befehls mktime(). Das ist eine häufige Fehlerursache in Scripts.

Gibt den Unix Timestamp/Zeitstempel an Hand der gegebenen Argumente zurück. Der Zeitstempel ist ein long-integer-Wert, der die Anzahl der Sekunden zwischen der UNIX Epoche (January 1 1970) und der angegebenen Zeit enthält.

Einzelne Argumente können von rechts nach links weggelassen werden. Sie werden dann mit den Werten der lokalen Systemzeit bzw. des lokalen Systemdatums ersetzt.

is_dst kann bei Sommerzeit auf 1 gesetzt werden. 0 bedeutet Winter-/Normalzeit, -1 (Vorgabewert) heißt, dass nicht bekannt ist, ob Sommer- oder Winterzeit herrscht. Falls nicht bekannt ist, ob Sommer- oder Winterzeit herrscht, versucht PHP selbst dies herauszufinden. Das kann zu unerwarteten (aber dennoch korrekten) Ergebnissen führen.

Anmerkung: is_dst wurde in 3.0.10. eingeführt.

mktime() ist hilfreich bei Datumsberechnungen und -überprüfungen, da automatisch das korrekte Datum für ungültige Angaben berechnet wird. So wird in den folgenden Beispielen immer die Zeichenkette "Jan-01-1998" ausgegeben.

Beispiel 1. mktime() Beispiel

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>
Das Jahr darf zwei- oder vierstellig angegeben werden. Werte von 0 bis 69 stehen dann für die Jahre 2000 bis 2069, und 70 bis 99 für die Jahre von 1970-1999 (auf Systemen, die time_t als 32Bit-Integer abbilden, was heutzutage gebräuchlich ist, liegt der gültige Bereich für den Parameter Jahr irgendwo zwischen 1901 und 2038).

Windows: Negative Timestampwerte werden von keiner uns bekannten Windowsversion unterstützt. Aus diesem Grund ist der Gültigkeitsbereich für Jahresangaben auf Werte zwischen 1970 und 2038 eingeschränkt.

Der letzte Tag eines gegebenen Monats kann als der Tag "0" des nächsten Monats ausgedrückt werden (nicht als der Tag "-1"). Jedes der folgenden Beispiele gibt die Zeichenkette "Letzter Tag im Feb. 2000 ist der 29." zurück.

Beispiel 2. Letzter Tag des nächsten Monats

<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime ("Letzter Tag im Feb. 2000 ist der %d.", $lastday);

$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime ("Letzter Tag im Feb. 2000 ist der %d.", $lastday);
?>

Datumsangaben, bei denen das Jahr, der Monat und Tag gleich Null sind, werden als ungültig angesehen (ansonsten als 30.11.1999, was nicht gewollt sein kann).

Siehe auch date() und time().

Zurück | Zum Anfang | Nach vorne
microtime | Nach oben | strftime


strftime

(PHP 3, PHP 4 , PHP 5)

strftime -- Formatiert eine Zeit-/Datumsangabe nach den lokalen Einstellungen

Beschreibung:

string strftime ( string format [, int Timestamp])

Gibt einen String zurück, der den angegebenen Formatierungs-Merkmalen entspricht. Dabei wird der gegebene Timestamp/ Zeitstempel oder - falls dieser fehlt - die momentane lokale Zeit benutzt. Der Monats- und Wochentagsname wird entsprechend des per setlocale() eingestellten Wertes gesetzt.

Nachfolgend die im Formatierungsstring gültigen / bekannten Platzhalter:

  • %a - abgekürzter Name des Wochentages, abhängig von der gesetzten Umgebung

  • %A - ausgeschriebener Name des Wochentages, abhängig von der gesetzten Umgebung

  • %b - abgekürzter Name des Monats, abhängig von der gesetzten Umgebung

  • %B - ausgeschriebener Name des Monats, abhängig von der gesetzten Umgebung

  • %c - Wiedergabewerte für Datum und Zeit, abhängig von der gesetzten Umgebung

  • %C - Jahrhundert (Jahr geteilt durch 100, gekürzt auf Integer, Wertebereich 00 bis 99)

  • %d - Tag des Monats als Zahl (Bereich 01 bis 31)

  • %D - so wie %m/%d/%y

  • %e - Tag des Monats als Dezimal-Wert, einstelligen Werten wird ein Leerzeichen voran gestellt (Wertebereich ´ 1´ bis ´31´)

  • %g - wie %G, aber ohne Jahrhundert.

  • %G - Das vierstellige Jahr entsprechend der ISO Wochennummer (siehe %V). Das gleiche Format und der gleiche Wert wie bei %Y. Besonderheit: entspricht die ISO Wochennummer dem vorhergehenden oder folgenden Jahr, wird dieses Jahr verwendet.

  • %h - so wie %b

  • %H - Stunde als Zahl im 24-Stunden-Format (Bereich 00 bis 23)

  • %I - Stunde als Zahl im 12-Stunden-Format (Bereich 01 bis 12)

  • %j - Tag des Jahres als Zahl (Bereich 001 bis 366)

  • %m - Monat als Zahl (Bereich 01 bis 12)

  • %M - Minute als Dezimal-Wert

  • %n - neue Zeile

  • %p - entweder `am' oder `pm' (abhängig von der gesetzten Umgebung) oder die entsprechenden Zeichenketten der gesetzten Umgebung

  • %r - Zeit im Format a.m. oder p.m.

  • %R - Zeit in der 24-Stunden-Formatierung

  • %S - Sekunden als Dezimal-Wert

  • %t - Tabulator

  • %T - aktuelle Zeit, genau wie %H:%M:%S

  • %u - Tag der Woche als Dezimal-Wert [1,7], dabei ist 1 der Montag.

    Warnung

    Sun Solaris scheint mit dem Sonntag als 1 zu starten, obwohl ISO 9889:1999 (der aktuelle C Standard) klar festlegt, dass es der Montag sein sollte.

  • %U - Nummer der Woche des aktuellen Jahres als Dezimal-Wert, beginnend mit dem ersten Sonntag als erstem Tag der ersten Woche.

  • %V - Kalenderwoche (nach ISO 8601:1988) des aktuellen Jahres. Als Dezimal-Zahl mit dem Wertebereich 01 bis 53, wobei die Woche 01 die erste Woche mit mindestens 4 Tagen im aktuellen Jahr ist. Die Woche beginnt montags (nicht sonntags). (Benutzen Sie %G or %g für die Jahreskomponente, die der Wochennummer für den gegebenen Timestamp entspricht.)

  • %w - Wochentag als Dezimal-Wert, Sonntag ist 0

  • %W - Nummer der Woche des aktuellen Jahres, beginnend mit dem ersten Montag als erstem Tag der ersten Woche.

  • %x - bevorzugte Datumswiedergabe (ohne Zeit), abhängig von der gesetzten Umgebung.

  • %X - bevorzugte Zeitwiedergabe (ohne Datum), abhängig von der gesetzten Umgebung.

  • %y - Jahr als 2-stellige-Zahl (Bereich 00 bis 99)

  • %Y - Jahr als 4-stellige-Zahl inklusive des Jahrhunderts

  • %Z - Zeitzone, Name oder eine Abkürzung

  • %% - ein %-Zeichen

Anmerkung: Es ist durchaus möglich, dass Ihre C-Bibliothek nicht alle angegebenen Formatierungszeichen erkennt. In diesem Fall werden diese Zeichen von der PHP-Funktion strftime() nicht unterstützt. Zusätzlich unterstützen nicht alle Plattformen negative Werte eines Timestamps, deshalb könnte der Wertebereich eines Datums durch den Beginn der Unix Epoche begrenzt sein. Das bedeutet, dass z.B. %e, %T, %R und %D (und vielleicht noch weitere) und Zeitangaben vor dem Jan 1, 1970 auf Windowssystemen, einigen Linuxdisrtibutionen und einigen anderen Betriebssytemen nicht funktionieren. Für Windowsbetriebssysteme finden Sie eine komplette Übersicht der gültigen / bekannten Platzhalter im Formatierungsstring auf dieser MSDN Webseite.

Beispiel 1. strftime() locale Beispiel

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");
?>
Dieses Beispiel funktioniert nur, wenn auf Ihrem System die entsprechenden Locale-Codes installiert sind.

Anmerkung: %G und %V basieren auf ISO 8601:1988 Wochennummern und können unerwartete (obwohl korrekte) Ergebnisse liefern, wenn Sie das Nummernsystem nicht gründlich verstehen. Sehen Sie weiter oben bei %V nach und beachten Sie die folgenden Beispiele.

Beispiel 2. ISO 8601:1988 Wochennummer Beispiel

<?php
/*     December 2002 / January 2003
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     16  17  18  19  20  21  22
52     23  24  25  26  27  28  29
1      30  31   1   2   3   4   5
2       6   7   8   9  10  11  12
3      13  14  15  16  17  18  19   */

// Ausgabe: 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Ausgabe: 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Ausgabe: 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Ausgabe: 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";

/*     December 2004 / January 2005
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     13  14  15  16  17  18  19
52     20  21  22  23  24  25  26
53     27  28  29  30  31   1   2
1       3   4   5   6   7   8   9
2      10  11  12  13  14  15  16   */

// Ausgabe: 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Ausgabe: 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Ausgabe: 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Ausgabe: 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

Siehe auch setlocale(), mktime() und die Open Group Spezifikation von strftime().

Zurück | Zum Anfang | Nach vorne
mktime | Nach oben | strtotime


strtotime

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

strtotime -- Wandelt ein beliebiges Datum (englisches Format) in einen UNIX-Zeitstempel (Timestamp) um.

Beschreibung

int strtotime ( string time [, int now])

Diese Funktion erwartet einen String mit einem Datum im englischen Format und versucht diesen in einen Unix-Timestamp umzuwandeln. Versucht wird dies relativ zu dem Timestamp, den Sie mit now angeben. Fehlt diese Angabe, wird die aktuelle Zeit angenommen. Schlägt die Umwandlung fehl, wird -1 zurückgegeben.

Die Funktion strtotime() verhält sich gemäß der Syntax von GNU Date. Daher sollten Sie einen Blick in die GNU Manual Seite Date Input Formats werfen. Dort wird die gültige Syntax für time beschrieben.

Beispiel 1. strtotime()-Beispiele:

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Beispiel 2. Fehlerüberprüfung

<?php
$str = 'Nicht gut';
if (($timestamp = strtotime($str)) === -1) {
    echo "Der String ($str) ist falsch.";
} else {
    echo "$str == " . date('l dS of F Y h:i:s A', $timestamp);
}
?>

Anmerkung: Der gültige Bereich eines Timestamp liegt typischerweise zwischen Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT. (Das sind die Datumsangaben, die dem minimalen und maximalen Wert eines vorzeichenbehafteten 32-bit Integer entsprechen.) Zusätzlich unterstützen nicht alle Plattformen negative Werte eines Timestamps, deshalb könnte der Wertebereich eines Datums durch den Beginn der Unix Epoche begrenzt sein. Das bedeutet, dass z.B. Zeitangaben vor dem Jan 1, 1970 auf Windowssystemen, einigen Linuxdisrtibutionen und einigen anderen Betriebssytemen nicht funktionieren.

Zurück | Zum Anfang | Nach vorne
strftime | Nach oben | time


time

(PHP 3, PHP 4 , PHP 5)

time -- Gibt den gegenwärtigen Unix-Timestamp/Zeitstempel zurück

Beschreibung

int time ( void )

Gibt die seit Beginn der Unix-Epoche (Januar 1 1970 00:00:00 GMT) bis jetzt vergangenen Sekunden zurück.

Siehe auch date() und microtime().

Zurück | Zum Anfang | Nach vorne
strtotime | Nach oben | dBase Funktionen


dBase Funktionen

PHP Handbuch
Zurück Nach vorne

XVIII. dBase Funktionen

Diese Funktionen erlauben ihnen den Zugriff auf Datensätze, die im dBase-Format (also in dBase-Datenbanken) (dbf) vorliegen.

Es gibt keine Unterstützug für Indizes oder Memo-Felder. Auch Sperrfunktionen für Datensätze / -banken sind nicht vorhanden. Zwei gleichzeitig ablaufende Webserver-Prozesse, die die selbe dBase-Datei bearbeiten, werden ihre Datenbank zerstören.

Anders als bei SQL-Datenbanken können in dBase-"Datenbanken" die Felddefinitionen nicht nachträglich geändert werden. Nachdem die dbf-Datei erzeugt wurde, sind die Definitionen festgelegt. Es werden keine Index-Funktionen unterstützt, die Abfragen beschleunigen oder etwa ihre Datenorganisation unterstützen. dBase-Dateien sind einfache sequentielle Dateien mit fester Datensatzlänge. Neue Datensätze werden am Dateiende angehängt und gelöschte Datensätze werden beibehalten, bis sie dbase_pack() aufrufen.

Wir empfehlen, keine Produktions-DBF-Datenbanken zu benutzen. Wählen sie zur Nutzung von Produktions-Daten mit PHP nur echte SQL-Server-Datenbanken; MySQL oder Postgres sind dabei eine gute Wahl. dBase-Unterstützung durch PHP dient hauptsächlich dem Im- und Export von Daten zu oder aus ihrer Web-Datenbank, wobei das DBF-Datei-Format vor allem wegen der Windows-Tabellenkalulationen und -Organizer unterstützt wird. Im- und Export ist der einzige Grund für die dBase-Unterstützung durch PHP.

Inhaltsverzeichnis
dbase_add_record -- Hängt einen neuen Datensatz an eine dBase-Datenbank an
dbase_close -- Schließt eine dBase-Datenbank
dbase_create -- Erzeugt eine dBase-Datenbank
dbase_delete_record -- Markiert einen Datensatz als gelöscht
dbase_get_header_info -- Get the header info of a dBase database
dbase_get_record_with_names -- Gibt einen Datensatz einer dBase-Datenbank als assoziatives Array zurück
dbase_get_record -- Liest einen Datensatz aus einer dBase-Datenbank
dbase_numfields -- Stellt fest, wieviele Felder eine dBase-Datenbank hat
dbase_numrecords -- Ermittelt die Anzahl der Datensätze einer dBase-Datenbank
dbase_open -- Öffnet eine dBase-Datenbank
dbase_pack -- Entfernt die als gelöscht markierten Datensätze aus der Datenbank
dbase_replace_record -- Ersetzt einen Datensatz in einer dBase-Datenbank

Zurück | Zum Anfang | Nach vorne
time | Nach oben | dbase_add_record


dbase_add_record

(PHP 3, PHP 4 , PHP 5)

dbase_add_record -- Hängt einen neuen Datensatz an eine dBase-Datenbank an

Beschreibung:

bool dbase_add_record ( int dbase_identifier, array record)

Hängt den per record definierten Datensatz an die Datenbank an. Wenn die Anzahl der Einträge im angegebenen Record nicht gleich der Anzahl der Felder in der Datenbank ist, wird dieser Befehl scheitern und FALSE / falsch zurück geben.

Zurück | Zum Anfang | Nach vorne
dBase Funktionen | Nach oben | dbase_close


dbase_close

(PHP 3, PHP 4 , PHP 5)

dbase_close -- Schließt eine dBase-Datenbank

Beschreibung:

bool dbase_close ( int dbase_identifier)

Schließt die durch dbase_identifier angegebene Datenbank.

Zurück | Zum Anfang | Nach vorne
dbase_add_record | Nach oben | dbase_create


dbase_create

(PHP 3, PHP 4 , PHP 5)

dbase_create -- Erzeugt eine dBase-Datenbank

Beschreibung:

int dbase_create ( string filename, array fields)

Der fields-Parameter ist ein Array, das aus weiteren Arrays besteht. Jedes Array beschreibt das Format eines Feldes der Datenbank. Jedes Feld-Array besteht aus einem Namen, einem Zeichen zur Festlegung des Feldtyps, der Länge und dem Wert für die Anzahl der Nachkommastellen.

Die verfügbaren Feldtypen sind:

L

Boolean. Diese haben keine Länge oder Nachkommstellen.

M

Memo. (Beachten sie, dass diese von PHP nicht unterstützt werden.) Auch diese haben keine Länge oder Nachkommastellen.

D

Datum (gespeichert als JJJJMMTT). Ebenfalls keine Länge und Nachkommastellen.

N

Zahl. Diese haben sowohl eine Angabe der Länge als auch der Nachkommastellen.

C

Zeichenkette / String / Charakter. Hier ist eine Längenangabe erforderlich.

Konnte die Datenbank erfolgreich erzeugt werden, wird ein dbase_identifier zurück gegeben, anderenfalls FALSE / falsch.

Beispiel 1. Erzeugen einer dBase-Datenbank-Datei

// "Datenbank"-Name
       $dbname = "/tmp/test.dbf";

       // Datenbank-"Definitionen"
       $def =
           array(
             array("Datum",       "D"),
             array("Name",        "C",  50),
             array("Alter",       "N",   3, 0),
             array("Email",       "C", 128),
             array("IstMitglied", "L")
           );

       // Erzeugung
       if (!dbase_create($dbname, $def))
         print "<strong>Error!</strong>";

Zurück | Zum Anfang | Nach vorne
dbase_close | Nach oben | dbase_delete_record


dbase_delete_record

(PHP 3, PHP 4 , PHP 5)

dbase_delete_record -- Markiert einen Datensatz als gelöscht

Bschreibung:

bool dbase_delete_record ( int dbase_identifier, int record)

Markiert den Datensatz record in der Datenbank als gelöscht. Um ihn wirklich (physisch) zu entfernen, müssen sie noch die Funktion dbase_pack() aufrufen.

Zurück | Zum Anfang | Nach vorne
dbase_create | Nach oben | dbase_get_header_info


dbase_get_header_info

(PHP 5)

dbase_get_header_info -- Get the header info of a dBase database

Description

array dbase_get_header_info ( int dbase_identifier)

Returns information on the column structure of the database referenced by dbase_identifier. For each column in the database, there is an entry in a numerically-indexed array. The array index starts at 0. Each array element contains an associative array of column information. If the database header information cannot be read, FALSE is returned.

The array elements are:

name

The name of the column

type

The human-readable name for the dbase type of the column (i.e. date, boolean, etc)

length

The number of bytes this column can hold

precision

The number of digits of decimal precision for the column

format

A suggested printf() format specifier for the column

offset

The byte offset of the column from the start of the row

Beispiel 1. Showing header information for a dBase database file

<?php
// Path to dbase file
$db_path = "/tmp/test.dbf";

// Open dbase file
$dbh = dbase_open($db_path)
    or die("Error! Could not open dbase database file '$db_path'.");

// Get column information
$column_info = dbase_get_header_info($dbh);

// Display information
print_r($column_info);
?>

Zurück | Zum Anfang | Nach vorne
dbase_delete_record | Nach oben | dbase_get_record_with_names


dbase_get_record_with_names

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

dbase_get_record_with_names -- Gibt einen Datensatz einer dBase-Datenbank als assoziatives Array zurück

Beschreibung:

array dbase_get_record_with_names ( int dbase_identifier, int record)

Gibt die Daten von record in einem assoziativen Array zurück. Das Array enthält auch einen assoziativen Bereich, der 'deleted' heisst und auf 1 steht, wenn der Datensatz als gelöscht markiert ist (siehe dbase_delete_record()).

Jedes Feld wird in den entsprechenden PHP-Typ konvertiert (Datumsangaben werden zu Zeichenketten / Strings).

Zurück | Zum Anfang | Nach vorne
dbase_get_header_info | Nach oben | dbase_get_record


dbase_get_record

(PHP 3, PHP 4 , PHP 5)

dbase_get_record -- Liest einen Datensatz aus einer dBase-Datenbank

Beschreibung:

array dbase_get_record ( int dbase_identifier, int record)

Gibt die Daten von record in einem Array zurück. Das Array hat einen bei 0 beginnenden Index und enthält einen zusätzlichen Bereich der mit 'deleted' bezeichnet wird. Dieser ist auf 1 gesetzt, wenn der Datensatz als gelöscht markiert ist (siehe dbase_delete_record()).

Jedes Feld wird in den entsprechenden PHP-Typ umgesetzt (Datumsangaben werden zu Zeichenketten / Strings).

Zurück | Zum Anfang | Nach vorne
dbase_get_record_with_names | Nach oben | dbase_numfields


dbase_numfields

(PHP 3, PHP 4 , PHP 5)

dbase_numfields -- Stellt fest, wieviele Felder eine dBase-Datenbank hat

Beschreibung:

int dbase_numfields ( int dbase_identifier)

Gibt die Anzahl der Datenfelder (Spalten) in der angegebenen Datenbank zurück. Feld-Nummern sind Werte zwischen 0 und dbase_numfields($db)-1, wogegen die Datensatz-Werte zwischen 1 und dbase_numrecords($db) sein können.

Beispiel 1. Gebrauch von dbase_numfields()

$rec = dbase_get_record($db, $recno);
       $nf  = dbase_numfields($db);
       for ($i=0; $i < $nf; $i++) {
         print $rec[$i]."<br>\n";
       }

Zurück | Zum Anfang | Nach vorne
dbase_get_record | Nach oben | dbase_numrecords


dbase_numrecords

(PHP 3, PHP 4 , PHP 5)

dbase_numrecords -- Ermittelt die Anzahl der Datensätze einer dBase-Datenbank

Beschreibung:

int dbase_numrecords ( int dbase_identifier)

Gibt die Anzahl der Datensätze (Zeilen) in der angegebenen Datenbank zurück. Datensatz-Nummern können Werte zwischen 1 und dbase_numrecords($db) sein, wogegen Feld-Werte zwischen 0 und dbase_numfields($db)-1 sein können.

Zurück | Zum Anfang | Nach vorne
dbase_numfields | Nach oben | dbase_open


dbase_open

(PHP 3, PHP 4 , PHP 5)

dbase_open -- Öffnet eine dBase-Datenbank

Beschreibung:

int dbase_open ( string filename, int flags)

Die Flags entsprechen denen des open()-Systemaufrufs (normalerweise bedeutet 0 Nur-Lesen, 1 Nur-Schreiben und 2 Lesen und Schreiben).

Gibt einen dbase_identifier für die geöffnete Datenbank zurück oder FALSE / falsch, wenn die Datenbank nicht geöffnet werden konnte.

Zurück | Zum Anfang | Nach vorne
dbase_numrecords | Nach oben | dbase_pack


dbase_pack

(PHP 3, PHP 4 , PHP 5)

dbase_pack -- Entfernt die als gelöscht markierten Datensätze aus der Datenbank

Beschreibung:

bool dbase_pack ( int dbase_identifier)

Entfernt die in der angegebenen Datenbank als gelöscht markierten Datensätze endgültig (physisch). Betroffen sind alle vorher per dbase_delete_record() als gelöscht markierten Datensätze.

Zurück | Zum Anfang | Nach vorne
dbase_open | Nach oben | dbase_replace_record


dbase_replace_record

(PHP 3>= 3.0.11, PHP 4 , PHP 5)

dbase_replace_record -- Ersetzt einen Datensatz in einer dBase-Datenbank

Beschreibung:

bool dbase_replace_record ( int dbase_identifier, array record, int dbase_record_number)

Überschreibt die Daten des Datensatzes record_number mit den Daten aus record in der Datenbank. Falls die Anzahl der definierten Einträge ungleich der Anzahl der Datenfelder in dem angesprochenen Datensatz ist, wird die Ausführung dieses Befehls abgewiesen und FALSE / falsch zurück gegeben.

dbase_record_number ist ein Integer-Wert, der von 1 bis zur Anzahl der Datensatz-Anzahl der Datenbank reicht (wie er bei Aufruf der Funktion dbase_numrecords() zurück gegeben wird).

Zurück | Zum Anfang | Nach vorne
dbase_pack | Nach oben | DBM Datenbankfunktionen


DBM Datenbankfunktionen

PHP Handbuch
Zurück Nach vorne

XIX. DBM Datenbankfunktionen

Diese Funktionen erlauben Ihnen den Zugriff auf Datensätze die im DBM-Format vorliegen. Im Gegensatz zu den relationalen Datenbanken (mySQL, etc.) werden die Datensätze in Form von ISAM-Sätzen gespeichert. DBM Datenbanken werden von verschiedenen Systemfunktionen als interne Arbeitsbibliothek benützt. Diese Datenbank-Art wird auch von der Berkeley DB und GDBM verwendet.

Beispiel 1. Beispiel für ein DBM Script

$dbm = dbmopen ("lastseen", "w");
if (dbmexists ($dbm, $userid)) {
    $last_seen = dbmfetch ($dbm, $userid);
} else {
    dbminsert ($dbm, $userid, time());
}
do_stuff();
dbmreplace ($dbm, $userid, time());
dbmclose ($dbm);

Inhaltsverzeichnis
dblist -- Liefert eine Beschreibung, welches DBM-Format verwendet wird.
dbmclose -- Schließen einer DBM Datenbank
dbmdelete -- Löscht einen Datensatz mit dem angegebenen Schlüssel aus der DBM Datenbank.
dbmexists -- Prüft, ob ein Eintrag für den angegebenen Schlüssel in der DBM Datenbank vorhanden ist.
dbmfetch -- Holt einen Datensatz mit dem angegebenen Schlüssel aus der DBM Datenbank.
dbmfirstkey -- Gibt den ersten Schlüssel der DBM Datenbank zurück.
dbminsert -- Schreibt einen Datensatz mit dem angegebenen Schlüssel in die DBM Datenbank.
dbmnextkey -- Stellt den nächsten Schlüssel aus den Datenbank zur Verfügung.
dbmopen -- Öffnen einer DBM Datenbank
dbmreplace -- Ersetzt einen Datensatz mit dem angegebenen Schlüssel in der DBM Datenbank.

Zurück | Zum Anfang | Nach vorne
dbase_replace_record | Nach oben | dblist


dblist

(PHP 3, PHP 4 )

dblist -- Liefert eine Beschreibung, welches DBM-Format verwendet wird.

Beschreibung

string dblist ( void )

Zurück | Zum Anfang | Nach vorne
DBM Datenbankfunktionen | Nach oben | dbmclose


dbmclose

(PHP 3, PHP 4 )

dbmclose -- Schließen einer DBM Datenbank

Beschreibung

bool dbmclose ( int dbm_identifier)

Gibt Zugiffssperren auf Datensätze frei und schließt die angegebene DBM Datenbank.

Liefert TRUE bei Erfolg bzw. FALSE bei Fehler.

Zurück | Zum Anfang | Nach vorne
dblist | Nach oben | dbmdelete


dbmdelete

(PHP 3, PHP 4 )

dbmdelete -- Löscht einen Datensatz mit dem angegebenen Schlüssel aus der DBM Datenbank.

Beschreibung

bool dbmdelete ( int dbm_identifier, string key)

Löscht einen vorhanden Datensatz, der dem key entspricht, aus der Datenbank.

Wenn kein Datensatz zum Löschen gefunden wurde, wird der Returncode FALSE zurückgegeben.

Zurück | Zum Anfang | Nach vorne
dbmclose | Nach oben | dbmexists


dbmexists

(PHP 3, PHP 4 )

dbmexists -- Prüft, ob ein Eintrag für den angegebenen Schlüssel in der DBM Datenbank vorhanden ist.

Beschreibung

bool dbmexists ( int dbm_identifier, string key)

Wenn in der DBM Datenbank ein Eintrag mit dem angegebenen Schlüssel key vorhanden ist, wird als Ergebnis TRUE zurückgegeben.

Zurück | Zum Anfang | Nach vorne
dbmdelete | Nach oben | dbmfetch


dbmfetch

(PHP 3, PHP 4 )

dbmfetch -- Holt einen Datensatz mit dem angegebenen Schlüssel aus der DBM Datenbank.

Beschreibung

string dbmfetch ( int dbm_identifier, string key)

Liefert den Datensatz, der dem key in der DBM Datenbank entspricht.

Zurück | Zum Anfang | Nach vorne
dbmexists | Nach oben | dbmfirstkey


dbmfirstkey

(PHP 3, PHP 4 )

dbmfirstkey -- Gibt den ersten Schlüssel der DBM Datenbank zurück.

Beschreibung

string dbmfirstkey ( int dbm_identifier)

Gibt den ersten Schlüssel der DBM Datenbank zurück.

Anmerkung: Achtung: Es gibt keine Garantie für eine bestimmte Reihenfolge innerhalb der Datenbank, da die Datenbank auf einen Hash-Algorithmus aufgebaut ist.

Zurück | Zum Anfang | Nach vorne
dbmfetch | Nach oben | dbminsert


dbminsert

(PHP 3, PHP 4 )

dbminsert -- Schreibt einen Datensatz mit dem angegebenen Schlüssel in die DBM Datenbank.

Beschreibung

int dbminsert ( int dbm_identifier, string key, string value)

Schreibt den Datensatz mit angegebenen Schlüssel in die Datenbank.

Ergebniswerte:

-1

nur Leseberechtigung.

0

Aktion erfolgreich beendet.

1

Ein Eintrag mit dem angegebenen Schlüssel existiert bereits in der Datenbank.

Zurück | Zum Anfang | Nach vorne
dbmfirstkey | Nach oben | dbmnextkey


dbmnextkey

(PHP 3, PHP 4 )

dbmnextkey -- Stellt den nächsten Schlüssel aus den Datenbank zur Verfügung.

Beschreibung

string dbmnextkey ( int dbm_identifier, string key)

Gibt den auf key folgenden Schlüssel an den Aufrufer zurück. Um alle Schlüssel einer DBM Datenbank auszulesen, wird dbmfirstkey(), gefolgt von wiederholten Aufrufen von dbmnextkey() verwendet, wie im folgenden Script:

Beispiel 1. Ausgeben aller Schlüssel mit Datensätzen einer DBM Datenbank

$key = dbmfirstkey ($dbm_id);
while ($key) {
    echo "$key = " . dbmfetch ($dbm_id, $key) . "\n";
    $key = dbmnextkey ($dbm_id, $key);
}

Zurück | Zum Anfang | Nach vorne
dbminsert | Nach oben | dbmopen


dbmopen

(PHP 3, PHP 4 )

dbmopen -- Öffnen einer DBM Datenbank

Beschreibung

int dbmopen ( string filename, string flags)

Das erste Argument ist der vollqualifizierte Dateiname der DBM Datenbank, die geöffnet werden soll. Das zweite Argument ist der Modus, mit dem die DBM Datenbank geöffnet werden soll. Es gibt 4 Möglichkeiten, eine DBM Datenbank zu öffnen:

"r" (read-only)

Eine existierende Datenbank soll nur lesend geöffnet werden.

"n" (new)

Eine neue Datenbank soll angelegt werden. Diese wird automatisch als read-write geöffnet. Eine existierende Datenbank wird inhaltlich gelöscht.

"c" (create)

Eine neue Datenbank soll angelegt werden. Diese wird automatisch als read-write geöffnet. Im Gegensatz zu "n" wird eine bereits existierende Datenbank inhaltlich nicht gelöscht, sondern nur "read-writeable" geöffnet.

"w" (read-write)

Eine existierende Datenbank soll lesend und schreibend geöffnet werden.

Wenn die angegebene DBM Datenbank geöffnet werden konnte, wird ein Identifier zurückgegeben. Dieser Identifier muss für alle weiteren Aufrufe, die an die DBM Datenbank getätigt werden, mitgegeben werden. Wenn das Öffenen der DBM Datenbank fehlgeschlagen ist, wird das Ergebnis FALSE zurückgegeben.

Wenn die NDBM Unterstützung aktiviert wird, werden jeweils zwei Dateien filename.dir und filename.pag erzeugt. GDBM, ebenso wie der interne "Flat-File" Mechanismus und die Berkeley DB, verwenden nur eine Datei (und diese heisst bei der Berkeley DB filename.db). Bitte beachten Sie, dass PHP seine Dateisperren zusätzlich zu den vorhanden DBM-Bibliothekseigenen Routinen verwendet. PHP löscht auch die .lck Dateien nicht wieder. Es verwendet diese Datei nur als zusätzliches Mittel für Dateilocking. Wenn Sie mehr über DBM-Datenbanken wissen wollen, sehen Sie in den UNIX-Manualseiten nach, oder schauen bei GNU's GDBM nach.

Zurück | Zum Anfang | Nach vorne
dbmnextkey | Nach oben | dbmreplace


dbmreplace

(PHP 3, PHP 4 )

dbmreplace -- Ersetzt einen Datensatz mit dem angegebenen Schlüssel in der DBM Datenbank.

Beschreibung

bool dbmreplace ( int dbm_identifier, string key, string value)

Schreibt einen Datensatz mit dem angegebenen Satzschlüssel in die Datenbank bzw. ersetzt ihn.

Wenn ein Eintrag mit den angegebenen Schlüssel vorhanden ist, wird dieser überschrieben. Ansonsten wird ein Datensatz mit mit den Schlüssel neu angelegt.

Zurück | Zum Anfang | Nach vorne
dbmopen | Nach oben | dbx Funktionen


dbx Funktionen

PHP Handbuch
Zurück Nach vorne

XX. dbx Funktionen

Einführung

Das dbx Modul ist eine Datenbank-Abstraktionsschicht (db 'X', wobei 'X' eine unterstützte Datenbank ist). Die dbx Funktionen ermöglichen Ihnen den Zugriff auf alle unterstützten Datenbanken mit einer einzigen Aufrufkonvention. Die dbx Funktionen stellen selbst keinen direkten Kontakt zu den Datenbanken her, sondern benutzen dafür jene Module, welche die jeweilige Datenbank unterstützen.

Anforderungen

Um eine Datenbank mit dem dbx-Modul verwenden zu können, muss das Modul entweder gelinkt oder in PHP geladen sein, und das Datenbankmodul muss von dem dbx-Modul unterstützt werden. Derzeit werden folgende Datenbanken unterstützt, und weitere werden folgen:

  • FrontBase (verfügbar seit PHP 4.1.0).

  • Microsoft SQL Server

  • MySQL

  • ODBC

  • PostgreSQL

  • Sybase-CT (verfügbar seit PHP 4.2.0).

  • Oracle (oci8) (verfügbar seit PHP 4.3.0).

Eine Dokumentation, wie dbx weitere Datenbankunterstützung hinzugefügt werden kann, finden Sie unter http://www.guidance.nl/php/dbx/doc/.

Installation

In order to have these functions available, you must compile PHP with dbx support by using the --enable-dbx option and all options for the databases that will be used, e.g. for MySQL you must also specify --with-mysql=[DIR]. To get other supported databases to work with the dbx-module refer to their specific documentation.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. DBX Configuration Options

Name | Default | Changeable
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Anmerkung: This ini-option is available available from PHP 4.3.0.

Hier eine kurze Erklärung der Konfigurationsoptionen:

dbx.colnames_case string

Columns names can be returned "unchanged" or converted to "uppercase" or "lowercase". This directive can be overridden with a flag to dbx_query().

Resource Typen

Im dbx-Modul werden zwei Resourcetypen verwendet. Der erste ist ein Link-Objekt für eine Datenbankverbindung, der zweite ist ein Result-Objekt, welches das Ergebnis einer Abfrage enthält.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

DBX_MYSQL (integer)

DBX_ODBC (integer)

DBX_PGSQL (integer)

DBX_MSSQL (integer)

DBX_FBSQL (integer)

DBX_OCI8 (integer) (available from PHP 4.3.0)

DBX_SYBASECT (integer)

DBX_SQLITE (integer) (CVS only)

DBX_PERSISTENT (integer)

DBX_RESULT_INFO (integer)

DBX_RESULT_INDEX (integer)

DBX_RESULT_ASSOC (integer)

DBX_RESULT_UNBUFFERED (integer) (CVS only)

DBX_COLNAMES_UNCHANGED (integer) (available from PHP 4.3.0)

DBX_COLNAMES_UPPERCASE (integer) (available from PHP 4.3.0)

DBX_COLNAMES_LOWERCASE (integer) (available from PHP 4.3.0)

DBX_CMP_NATIVE (integer)

DBX_CMP_TEXT (integer)

DBX_CMP_NUMBER (integer)

DBX_CMP_ASC (integer)

DBX_CMP_DESC (integer)

Inhaltsverzeichnis
dbx_close -- Schließt eine offene Verbindung/Datenbank
dbx_compare -- Vergleicht zwei Reihen für Sortierzwecke
dbx_connect -- Öffnet eine Verbindung/Datenbank
dbx_error -- Liefert die Fehlermeldung des letzten Funktionsaufrufes in dem Modul (nicht nur in der Verbindung).
dbx_escape_string -- Escape a string so it can safely be used in an sql-statement.
dbx_fetch_row -- Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set
dbx_query -- Sendet eine Abfrage und holt alle Ergebnisse (falls vorhanden)
dbx_sort -- Sortiert das Ergebnis einer dbx-Abfrage mittels einer Benutzerfunktion

Zurück | Zum Anfang | Nach vorne
dbmreplace | Nach oben | dbx_close


dbx_close

(PHP 4 >= 4.0.6, PHP 5)

dbx_close -- Schließt eine offene Verbindung/Datenbank

Beschreibung

bool dbx_close ( object link_identifier)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. dbx_close()

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die ("Fehler beim Verbinden");

print("Verbindung hergestellt");
dbx_close($link);
?>

Anmerkung: Konsultieren Sie bitte auch die modulspezifische Dokumentation.

Siehe auch dbx_connect().

Zurück | Zum Anfang | Nach vorne
dbx Funktionen | Nach oben | dbx_compare


dbx_compare

(PHP 4 >= 4.1.0, PHP 5)

dbx_compare -- Vergleicht zwei Reihen für Sortierzwecke

Beschreibung

int dbx_compare ( array row_a, array row_b, string column_key [, int flags])

dbx_compare() gibt 0 zurück, wenn row_a[$column_key] gleich row_b[$column_key] ist. Ist der erste Wert größer oder kleiner als der zweite, wird 1 bzw. -1 zurückgegeben (oder umgekehrt, wenn der Parameter flag auf DBX_CMP_DESC gesetzt ist). dbx_compare() ist eine Hilfsfunktion für dbx_sort(), um das Erstellen bzw. Verwenden der Benutzerfunktion zu vereinfachen.

Der Parameter flags spezifiziert die Vergleichsrichtung:

  • DBX_CMP_ASC - aufsteigende Reihenfolge

  • DBX_CMP_DESC - absteigende Reihenfolge

und den bevorzugten Vergleichstyp:

  • DBX_CMP_NATIVE - keine Typenkonvertierung

  • DBX_CMP_TEXT - vergleicht die Werte als Strings

  • DBX_CMP_NUMBER - vergleicht die Werte numerisch

Eine der Vergleichs-, und eine der Typkonstanten können mit dem Bit-Operator OR (|) kombiniert werden. Die Standardwerte für flags sind DBX_CMP_ASC | DBX_CMP_NATIVE.

Beispiel 1. dbx_compare()

<?php
function user_re_order ($a, $b) {
    $rv = dbx_compare ($a, $b, "parentid", DBX_CMP_DESC);
    if ( !$rv ) {
        $rv = dbx_compare ($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect (DBX_ODBC, "", "db", "username", "password")
    or die ("Fehler beim Verbinden");

$result = dbx_query ($link, "SELECT id, parentid, description FROM table ORDER BY id");
    // die Daten in $result sind nun nach id gereiht

dbx_sort ($result, "user_re_order");
    // die Daten in $result sind nun nach parentid (absteigend) gereiht,
    // und dann nach id

dbx_close ($link);
?>

Siehe auch dbx_sort().

Zurück | Zum Anfang | Nach vorne
dbx_close | Nach oben | dbx_connect


dbx_connect

(PHP 4 >= 4.0.6, PHP 5)

dbx_connect -- Öffnet eine Verbindung/Datenbank

Beschreibung

object dbx_connect ( mixed module, string host, string database, string username, string password [, int persistent])

dbx_connect() gibt bei Erfolg ein Objekt, oder im Fehlerfall FALSE zurück. Konnte eine Verbindung hergestellt, jedoch keine Datenbank ausgewählt werden, wird die Verbindung wieder geschlossen, und FALSE zurückgegeben. Wird der Parameter persistent auf DBX_PERSISTENT gesetzt, wird eine persistente Verbindung hergestellt.

Der Parameter module kann entweder einen String, oder eine Konstante enthalten, auch wenn letzteres vorgezogen wird. Die möglichen Werte sind nachstehend aufgelistet, aber bedenken Sie bitte, dass diese nur funktionieren, wenn das Modul gerade geladen ist.

  • DBX_MYSQL oder "mysql"

  • DBX_ODBC oder "odbc"

  • DBX_PGSQL oder "pgsql"

  • DBX_MSSQL oder "mssql"

  • DBX_FBSQL oder "fbsql" (seit PHP 4.1.0 verfügbar)

  • DBX_SYBASECT oder "sybase_ct" (seit PHP 4.2.0 verfügbar)

  • DBX_OCI8 oder "oci8" (seit PHP 4.3.0 verfügbar)

Die Parameter host, database, username und password werden erwartet, werden aber abhängig von den Verbindungsfunktionen für das abstrahierte Modul nicht immer verwendet.

Das zurückgegebene Objekt hat drei Eigenschaften:

database

Das ist der Name der derzeit ausgewählten Datenbank.

handle

Das ist ein gültiges Handle für die verbundene Datenbank, und als solche kann es wenn nötig auch in modulspezifischen Funktionen verwendet werden.

$link = dbx_connect (DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close ($link->handle); // dbx_close($link) wäre hier besser

module

Dies ist die oben erwähnte Modulnummer, und wird nur dbx-intern verwendet.

Beispiel 1. dbx_connect()

<?php
$link = dbx_connect (DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
    or die ("Fehler beim Verbinden");

print ("Verbindung hergestellt");
dbx_close ($link);
?>

Anmerkung: Konsultieren Sie bitte auch die modulspezifische Dokumentation.

Siehe auch dbx_close().

Zurück | Zum Anfang | Nach vorne
dbx_compare | Nach oben | dbx_error


dbx_error

(PHP 4 >= 4.0.6, PHP 5)

dbx_error -- Liefert die Fehlermeldung des letzten Funktionsaufrufes in dem Modul (nicht nur in der Verbindung).

Beschreibung

string dbx_error ( object link_identifier)

dbx_error() gibt eine Zeichenkette mit der Fehlermeldung des letzten Funktionsaufrufes von dem abstrahierten Modul (z.B. MySQL-Modul) zurück. Bestehen mehrere Verbindungen zu dem gleichen Modul, wird nur der letzte Fehler zurückgegeben. Bestehen Verbindungen zu verschiedenen Modulen, wird der letzte Fehler von dem im Parameter link_identifier angegebenen Modul zurückgegeben.

Beispiel 1. dbx_error()

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die ("Fehler beim Verbinden");

$result = dbx_query($link, "select id from non_existing_table");
if ( $result == 0 ) {
    echo dbx_error ($link);
}
dbx_close ($link);
?>

Anmerkung: Konsultieren Sie bitte auch die modulspezifische Dokumentation.

Die Fehlermeldung des Microsoft SQL Server ist übrigens das Ergebnis der Funktion mssql_get_last_message().

Die Fehlermeldung für Oracle (oci8) ist (dzt. noch) nicht implementiert.

Zurück | Zum Anfang | Nach vorne
dbx_connect | Nach oben | dbx_escape_string


dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5)

dbx_escape_string -- Escape a string so it can safely be used in an sql-statement.

Description

string dbx_escape_string ( object link_identifier, string text)

dbx_escape_string() returns the text, escaped where necessary (such as quotes, backslashes etc). It returns NULL on error.

Beispiel 1. dbx_escape_string() example

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

$text = dbx_escape_string($link, "It\'s quoted and backslashed (\\).");
$result = dbx_query($link, "insert into tbl (txt) values ('" . $text . "')");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

See also dbx_query().

Zurück | Zum Anfang | Nach vorne
dbx_error | Nach oben | dbx_fetch_row


dbx_fetch_row

(PHP 5)

dbx_fetch_row -- Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set

Description

object dbx_fetch_row ( object result_identifier)

dbx_fetch_row() returns a row on success, and 0 on failure (e.g. when no more rows are available). When the DBX_RESULT_UNBUFFERED is not set in the query, dbx_fetch_row() will fail as all rows have already been fetched into the results data property.

As a side effect, the rows property of the query-result object is incremented for each successful call to dbx_fetch_row().

Beispiel 1. How to handle the returned value

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

The result_identifier parameter is the result object returned by a call to dbx_query().

The returned array contains the same information as any row would have in the dbx_query result data property, including columns accessible by index or fieldname when the flags for dbx_guery were set that way.

See also dbx_query().

Zurück | Zum Anfang | Nach vorne
dbx_escape_string | Nach oben | dbx_query


dbx_query

(PHP 4 >= 4.0.6, PHP 5)

dbx_query -- Sendet eine Abfrage und holt alle Ergebnisse (falls vorhanden)

Beschreibung

object dbx_query ( object link_identifier, string sql_statement [, long flags])

dbx_query() gibt bei Erfolg ein Objekt oder 1 zurück, oder 0 im Fehlerfall. Das Objekt wird nur zurückgegeben, wenn die in sql_statement angegebene Abfrage eine Ergebnisliste liefert.

Beispiel 1. Wie mit dem gelieferten Wert umgegangen wird

<?php
$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Fehler beim Verbinden");

$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

if ( is_object($result) ) {
    // ... tue hier irgendetwas, detaillierte Beispiele siehe unten ...
    // erst die Ausgabe der Feldnamen und Typen
    // dann die Ausgabe einer Tabelle mit den gelieferten Werten
}
else if ( $result == 1 ) {
    echo("Abfrage wurde erfolgreich ausgeführt, jedoch keine Ergebnisse");
}
else {
    exit("Fehler bei Abfrage");
}

dbx_close($link);
?>

Der Parameter flags wird verwendet, um die Menge der zu liefernden Informationen zu steuern. Die folgenden Konstanten können mit dem Bit-Operator (|) beliebig kombiniert werden. Die Flags DBX_COLNAMES_* heben die Einstellungen dbx.colnames_case in der php.ini auf.

DBX_RESULT_INDEX

Dieser Flag ist immer gesetzt, d.h. dass zurückgegebene Objekt hat eine Eigenschaft data, welche aus einem zweidimensionalen, numerisch indizierten Array besteht. Zum Beispiel steht in data[2][3] die 2 für die Reihen- (bzw. Datensatz-) Nummer, und 3 steht für die Spalten- (bzw. Feld- Nummer). Die erste Reihe und Spalte haben den Index 0.

Ist DBX_RESULT_ASSOC ebenfalls angegeben, so enthält das zurückgegebene Objekt auch Informationen im Zusammenhang mit DBX_RESULT_INFO, selbst wenn es nicht angegeben wurde.

DBX_RESULT_INFO

Liefert Informationen über Spalten, wie Feldnamen und Feldtypen.

DBX_RESULT_ASSOC

Dies bewirkt, dass in der data Eigenschaft des zurückgegebenen Objektes auf die Werte eines Feldes mit den entsprechenden Spaltennamen als Schlüssel zugegriffen werden kann.

Assoziierte Ergebnisse sind eigentlich Referenzen zu den numerisch indizierten Daten, weshalb eine Änderung von data[0][0] auch den Inhalt von data[0]['feldname_für_erste_spalte'] betrifft.

DBX_COLNAMES_UNCHANGED (available from PHP 4.3.0)

The case of the returned column names will not be changed.

DBX_COLNAMES_UPPERCASE (available from PHP 4.3.0)

The case of the returned column names will be changed to uppercase.

DBX_COLNAMES_LOWERCASE (available from PHP 4.3.0)

The case of the returned column names will be changed to lowercase.

Beachten Sie, dass DBX_RESULT_INDEX unabhängig von dem aktuell verwendeten Wert des Parameters flags immer verwendet wird. Das heißt, dass es effektiv nur die folgenden Kombinationen gibt:

  • DBX_RESULT_INDEX

  • DBX_RESULT_INDEX | DBX_RESULT_INFO

  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - dies ist Standard, wenn flags nicht angegeben ist.

Das zurückgegebene Objekt hat abhängig von flags vier oder fünf Eigenschaften:

handle

Das ein gültiges Handle für die verbundene Datenbank, und als solche kann es (wenn nötig) auch in modulspezifischen Funktionen verwendet werden.

$result = dbx_query ($link, "SELECT id FROM table");
mysql_field_len ($result->handle, 0);

cols und rows

Diese enthalten die Anzahl der Spalten (oder Felder) bzw. Reihen (oder Datensätze).

$result = dbx_query ($link, 'SELECT id FROM table');
echo $result->rows; // Anzahl der Datensätze
echo $result->cols; // Anzahl der Felder

info (optional)

Dies wird nur zurückgegeben, wenn im Parameter flags entweder DBX_RESULT_INFO oder DBX_RESULT_ASSOC spezifiziert sind. Es ist ein zweidimensionales Array mit zwei Reihen (name und type), welches die Spalteninformationen enthält.

Beispiel 2. Auflistung von Name und Typ jedes Feldes

$result = dbx_query ($link, 'SELECT id FROM table',
                     DBX_RESULT_INDEX | DBX_RESULT_INFO);

for ($i = 0; $i < $result->cols; $i++ ) {
    echo $result->info['name'][$i] . "\n";
    echo $result->info['type'][$i] . "\n";
}
data

Diese Eigenschaft enthält die aktuellen Ergebnisdaten, möglicherweise auch mit den Spaltennamen assoziiert, was jedoch vom Parameter flags abhängig ist. Wenn DBX_RESULT_ASSOC gesetzt ist, können Sie $result->data[2]["feldname"] verwenden.

Beispiel 3. Ausgabe des Inhaltes der data Eigenschaft in eine HTML Tabelle

$result = dbx_query ($link, 'SELECT id, parentid, description FROM table');

echo "<table>\n";
foreach ( $result->data as $row ) {
    echo "<tr>\n";
    foreach ( $row as $field ) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";

Anmerkung: Konsultieren Sie bitte auch die modulspezifische Dokumentation.

Spaltennamen für Abfragen an einer Oracle Datenbank werden in Kleinbuchstaben zurückgegeben.

Siehe auch dbx_escape_string() und dbx_connect().

Zurück | Zum Anfang | Nach vorne
dbx_fetch_row | Nach oben | dbx_sort


dbx_sort

(PHP 4 >= 4.0.6, PHP 5)

dbx_sort -- Sortiert das Ergebnis einer dbx-Abfrage mittels einer Benutzerfunktion

Beschreibung

bool dbx_sort ( object result, string user_compare_function)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Wenn möglich ist es besser, die ORDER BY SQL Klausel anstatt von dbx_sort() zu verwenden.

Beispiel 1. dbx_sort()

<?php
function user_re_order ($a, $b) {
    $rv = dbx_compare ($a, $b, "parentid", DBX_CMP_DESC);
    if ( !$rv ) {
        $rv = dbx_compare ($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect (DBX_ODBC, "", "db", "username", "password")
    or die ("Fehler beim Verbinden");

$result = dbx_query ($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
    // Die Daten in $result sind nun nach id geordnet

dbx_sort ($result, "user_re_order");
    // Die Daten in $result sind nun nach parentid (absteigend) geordnet,
    // dann nach id

dbx_close ($link);
?>

Siehe auch dbx_compare().

Zurück | Zum Anfang | Nach vorne
dbx_query | Nach oben | DB++ Functions


DB++ Functions

PHP Handbuch
Zurück Nach vorne

XXI. DB++ Functions

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Einführung

db++, made by the German company Concept asa, is a relational database system with high performance and low memory and disk usage in mind. While providing SQL as an additional language interface, it is not really a SQL database in the first place but provides its own AQL query language which is much more influenced by the relational algebra then SQL is.

Concept asa always had an interest in supporting open source languages, db++ has had Perl and Tcl call interfaces for years now and uses Tcl as its internal stored procedure language.

Anforderungen

This extension relies on external client libraries so you have to have a db++ client installed on the system you want to use this extension on.

Concept asa provides db++ Demo versions and documentation for Linux, some other Unix versions. There is also a Windows version of db++, but this extension doesn't support it (yet).

Installation

In order to build this extension yourself you need the db++ client libraries and header files to be installed on your system (these are included in the db++ installation archives by default). You have to run configure with option --with-dbplus to build this extension.

configure looks for the client libraries and header files under the default paths /usr/dbplus, /usr/local/dbplus and /opt/dblus. If you have installed db++ in a different place you have add the installation path to the configure option like this: --with-dbplus=/your/installation/path.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

dbplus_relation

Most db++ functions operate on or return dbplus_relation resources. A dbplus_relation is a handle to a stored relation or a relation generated as the result of a query.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

db++ error codes

Tabelle 1. DB++ Error Codes

PHP Constant | db++ constant | meaning
DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Null error condition
DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | Tried to insert a duplicate tuple
DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | End of scan from rget()
DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | Relation is empty (server)
DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | The server can't close
DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | The record is write locked
DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | Relation was already locked
DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | Relation cannot be locked
DBPLUS_ERR_READ (integer) | ERR_READ | Read error on relation
DBPLUS_ERR_WRITE (integer) | ERR_WRITE | Write error on relation
DBPLUS_ERR_CREATE (integer) | ERR_CREATE | Create() system call failed
DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | Lseek() system call failed
DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | Tuple exceeds maximum length
DBPLUS_ERR_OPEN (integer) | ERR_OPEN | Open() system call failed
DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | Relation already opened for writing
DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | File is not a relation
DBPLUS_ERR_VERSION (integer) | ERR_VERSION | File is a very old relation
DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | Relation uses a different page size
DBPLUS_ERR_CRC (integer) | ERR_CRC | Invalid crc in the superpage
DBPLUS_ERR_PIPE (integer) | ERR_PIPE | Piped relation requires lseek()
DBPLUS_ERR_NIDX (integer) | ERR_NIDX | Too many secondary indices
DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | Malloc() call failed
DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | Error use of max users
DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | Caused by invalid usage
DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | Caused by a signal
DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | Error in the preprocessor
DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | Error in the parser
DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | Run error in db
DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | Exit condition caused by prexit() * procedure
DBPLUS_ERR_WAIT (integer) | ERR_WAIT | Wait a little (Simple only)
DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | A client sent a corrupt tuple
DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | The Simple routines encountered a non fatal error which was corrected
DBPLUS_ERR_PANIC (integer) | ERR_PANIC | The server should not really die but after a disaster send ERR_PANIC to all its clients
DBPLUS_ERR_FIFO (integer) | ERR_FIFO | Can't create a fifo
DBPLUS_ERR_PERM (integer) | ERR_PERM | Permission denied
DBPLUS_ERR_TCL (integer) | ERR_TCL | TCL_error
DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | Only two users
DBPLUS_ERR_USER (integer) | ERR_USER | An error in the use of the library by an application programmer
DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |

Inhaltsverzeichnis
dbplus_add -- Add a tuple to a relation
dbplus_aql -- Perform AQL query
dbplus_chdir -- Get/Set database virtual current directory
dbplus_close -- Close a relation
dbplus_curr -- Get current tuple from relation
dbplus_errcode -- Get error string for given errorcode or last error
dbplus_errno -- Get error code for last operation
dbplus_find -- Set a constraint on a relation
dbplus_first -- Get first tuple from relation
dbplus_flush -- Flush all changes made on a relation
dbplus_freealllocks -- Free all locks held by this client
dbplus_freelock -- Release write lock on tuple
dbplus_freerlocks -- Free all tuple locks on given relation
dbplus_getlock -- Get a write lock on a tuple
dbplus_getunique -- Get an id number unique to a relation
dbplus_info -- ???
dbplus_last -- Get last tuple from relation
dbplus_lockrel -- Request write lock on relation
dbplus_next -- Get next tuple from relation
dbplus_open -- Open relation file
dbplus_prev -- Get previous tuple from relation
dbplus_rchperm -- Change relation permissions
dbplus_rcreate -- Creates a new DB++ relation
dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices
dbplus_rcrtlike -- Creates an empty copy of a relation with default indices
dbplus_resolve -- Resolve host information for relation
dbplus_restorepos -- ???
dbplus_rkeys -- Specify new primary key for a relation
dbplus_ropen -- Open relation file local
dbplus_rquery -- Perform local (raw) AQL query
dbplus_rrename -- Rename a relation
dbplus_rsecindex -- Create a new secondary index for a relation
dbplus_runlink -- Remove relation from filesystem
dbplus_rzap -- Remove all tuples from relation
dbplus_savepos -- ???
dbplus_setindex -- ???
dbplus_setindexbynumber -- ???
dbplus_sql -- Perform SQL query
dbplus_tcl -- Execute TCL code on server side
dbplus_tremove -- Remove tuple and return new current tuple
dbplus_undo -- ???
dbplus_undoprepare -- ???
dbplus_unlockrel -- Give up write lock on relation
dbplus_unselect -- Remove a constraint from relation
dbplus_update -- Update specified tuple in relation
dbplus_xlockrel -- Request exclusive lock on relation
dbplus_xunlockrel -- Free exclusive lock on relation

Zurück | Zum Anfang | Nach vorne
dbx_sort | Nach oben | dbplus_add


dbplus_add

(4.1.0 - 4.2.3 only)

dbplus_add -- Add a tuple to a relation

Description

int dbplus_add ( resource relation, array tuple)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

This function will add a tuple to a relation. The tuple data is an array of attribute/value pairs to be inserted into the given relation. After successful execution the tuple array will contain the complete data of the newly created tuple, including all implicitly set domain fields like sequences.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Zurück | Zum Anfang | Nach vorne
DB++ Functions | Nach oben | dbplus_aql


dbplus_aql

(4.1.0 - 4.2.3 only)

dbplus_aql -- Perform AQL query

Description

resource dbplus_aql ( string query [, string server [, string dbpath]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_aql() will execute an AQL query on the given server and dbpath.

On success it will return a relation handle. The result data may be fetched from this relation by calling dbplus_next() and dbplus_current(). Other relation access functions will not work on a result relation.

Further information on the AQL A... Query Language is provided in the original db++ manual.

Zurück | Zum Anfang | Nach vorne
dbplus_add | Nach oben | dbplus_chdir


dbplus_chdir

(4.1.0 - 4.2.3 only)

dbplus_chdir -- Get/Set database virtual current directory

Description

string dbplus_chdir ( [string newdir])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_chdir() will change the virtual current directory where relation files will be looked for by dbplus_open(). dbplus_chdir() will return the absolute path of the current directory. Calling dbplus_chdir() without giving any newdir may be used to query the current working directory.

Zurück | Zum Anfang | Nach vorne
dbplus_aql | Nach oben | dbplus_close


dbplus_close

(4.1.0 - 4.2.3 only)

dbplus_close -- Close a relation

Description

int dbplus_close ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Calling dbplus_close() will close a relation previously opened by dbplus_open().

Zurück | Zum Anfang | Nach vorne
dbplus_chdir | Nach oben | dbplus_curr


dbplus_curr

(4.1.0 - 4.2.3 only)

dbplus_curr -- Get current tuple from relation

Description

int dbplus_curr ( resource relation, array tuple)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_curr() will read the data for the current tuple for the given relation and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Zurück | Zum Anfang | Nach vorne
dbplus_close | Nach oben | dbplus_errcode


dbplus_errcode

(4.1.0 - 4.2.3 only)

dbplus_errcode -- Get error string for given errorcode or last error

Description

string dbplus_errcode ( int errno)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_errcode() returns a cleartext error string for the error code passed as errno of for the result code of the last db++ operation if no parameter is given.

Zurück | Zum Anfang | Nach vorne
dbplus_curr | Nach oben | dbplus_errno


dbplus_errno

(4.1.0 - 4.2.3 only)

dbplus_errno -- Get error code for last operation

Description

int dbplus_errno ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_errno() will return the error code returned by the last db++ operation.

See also dbplus_errcode().

Zurück | Zum Anfang | Nach vorne
dbplus_errcode | Nach oben | dbplus_find


dbplus_find

(4.1.0 - 4.2.3 only)

dbplus_find -- Set a constraint on a relation

Description

int dbplus_find ( resource relation, array constraints, mixed tuple)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_find() will place a constraint on the given relation. Further calls to functions like dbplus_curr() or dbplus_next() will only return tuples matching the given constraints.

Constraints are triplets of strings containing of a domain name, a comparison operator and a comparison value. The constraints parameter array may consist of a collection of string arrays, each of which contains a domain, an operator and a value, or of a single string array containing a multiple of three elements.

The comparison operator may be one of the following strings: '==', '>', '>=', '<', '<=', '!=', '~' for a regular expression match and 'BAND' or 'BOR' for bitwise operations.

See also dbplus_unselect().

Zurück | Zum Anfang | Nach vorne
dbplus_errno | Nach oben | dbplus_first


dbplus_first

(4.1.0 - 4.2.3 only)

dbplus_first -- Get first tuple from relation

Description

int dbplus_first ( resource relation, array tuple)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_curr() will read the data for the first tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_curr(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Zurück | Zum Anfang | Nach vorne
dbplus_find | Nach oben | dbplus_flush


dbplus_flush

(4.1.0 - 4.2.3 only)

dbplus_flush -- Flush all changes made on a relation

Description

int dbplus_flush ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_flush() will write all changes applied to relation since the last flush to disk.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Zurück | Zum Anfang | Nach vorne
dbplus_first | Nach oben | dbplus_freealllocks


dbplus_freealllocks

(4.1.0 - 4.2.3 only)

dbplus_freealllocks -- Free all locks held by this client

Description

int dbplus_freealllocks ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_freealllocks() will free all tuple locks held by this client.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freerlocks().

Zurück | Zum Anfang | Nach vorne
dbplus_flush | Nach oben | dbplus_freelock


dbplus_freelock

(4.1.0 - 4.2.3 only)

dbplus_freelock -- Release write lock on tuple

Description

int dbplus_freelock ( resource relation, string tname)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_freelock() will release a write lock on the given tuple previously obtained by dbplus_getlock().

See also dbplus_getlock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Zurück | Zum Anfang | Nach vorne
dbplus_freealllocks | Nach oben | dbplus_freerlocks


dbplus_freerlocks

(4.1.0 - 4.2.3 only)

dbplus_freerlocks -- Free all tuple locks on given relation

Description

int dbplus_freerlocks ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_freerlocks() will free all tuple locks held on the given relation.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freealllocks().

Zurück | Zum Anfang | Nach vorne
dbplus_freelock | Nach oben | dbplus_getlock


dbplus_getlock

(4.1.0 - 4.2.3 only)

dbplus_getlock -- Get a write lock on a tuple

Description

int dbplus_getlock ( resource relation, string tname)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_getlock() will request a write lock on the specified tuple. It will return zero on success or a non-zero error code, especially DBPLUS_ERR_WLOCKED, on failure.

See also dbplus_freelock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Zurück | Zum Anfang | Nach vorne
dbplus_freerlocks | Nach oben | dbplus_getunique


dbplus_getunique

(4.1.0 - 4.2.3 only)

dbplus_getunique -- Get an id number unique to a relation

Description

int dbplus_getunique ( resource relation, int uniqueid)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_getunique() will obtain a number guaranteed to be unique for the given relation and will pass it back in the variable given as uniqueid.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Zurück | Zum Anfang | Nach vorne
dbplus_getlock | Nach oben | dbplus_info


dbplus_info

(4.1.0 - 4.2.3 only)

dbplus_info -- ???

Description

int dbplus_info ( resource relation, string key, array &result)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Not implemented yet.

Zurück | Zum Anfang | Nach vorne
dbplus_getunique | Nach oben | dbplus_last


dbplus_last

(4.1.0 - 4.2.3 only)

dbplus_last -- Get last tuple from relation

Description

int dbplus_last ( resource relation, array tuple)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_curr() will read the data for the last tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_next().

Zurück | Zum Anfang | Nach vorne
dbplus_info | Nach oben | dbplus_lockrel


dbplus_lockrel

(no version information, might be only in CVS)

dbplus_lockrel -- Request write lock on relation

Description

int dbplus_lockrel ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_lockrel() will request a write lock on the given relation. Other clients may still query the relation, but can't alter it while it is locked.

Zurück | Zum Anfang | Nach vorne
dbplus_last | Nach oben | dbplus_next


dbplus_next

(4.1.0 - 4.2.3 only)

dbplus_next -- Get next tuple from relation

Description

int dbplus_next ( resource relation, array &tuple)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_curr() will read the data for the next tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_last().

Zurück | Zum Anfang | Nach vorne
dbplus_lockrel | Nach oben | dbplus_open


dbplus_open

(4.1.0 - 4.2.3 only)

dbplus_open -- Open relation file

Description

resource dbplus_open ( string name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

The relation file name will be opened. name can be either a file name or a relative or absolute path name. This will be mapped in any case to an absolute relation file path on a specific host machine and server.

On success a relation file resource (cursor) is returned which must be used in any subsequent commands referencing the relation. Failure leads to a zero return value, the actual error code may be asked for by calling dbplus_errno().

Zurück | Zum Anfang | Nach vorne
dbplus_next | Nach oben | dbplus_prev


dbplus_prev

(4.1.0 - 4.2.3 only)

dbplus_prev -- Get previous tuple from relation

Description

int dbplus_prev ( resource relation, array tuple)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_curr() will read the data for the previous tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_next(), and
dbplus_last().

Zurück | Zum Anfang | Nach vorne
dbplus_open | Nach oben | dbplus_rchperm


dbplus_rchperm

(4.1.0 - 4.2.3 only)

dbplus_rchperm -- Change relation permissions

Description

int dbplus_rchperm ( resource relation, int mask, string user, string group)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_rchperm() will change access permissions as specified by mask, user and group. The values for these are operating system specific.

Zurück | Zum Anfang | Nach vorne
dbplus_prev | Nach oben | dbplus_rcreate


dbplus_rcreate

(4.1.0 - 4.2.3 only)

dbplus_rcreate -- Creates a new DB++ relation

Description

resource dbplus_rcreate ( string name, mixed domlist [, bool overwrite])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_rcreate() will create a new relation named name. An existing relation by the same name will only be overwritten if the relation is currently not in use and overwrite is set to TRUE.

domlist should contain the domain specification for the new relation within an array of domain description strings. ( dbplus_rcreate() will also accept a string with space delimited domain description strings, but it is recommended to use an array). A domain description string consists of a domain name unique to this relation, a slash and a type specification character. See the db++ documentation, especially the dbcreate(1) manpage, for a description of available type specifiers and their meanings.

Zurück | Zum Anfang | Nach vorne
dbplus_rchperm | Nach oben | dbplus_rcrtexact


dbplus_rcrtexact

(4.1.0 - 4.2.3 only)

dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices

Description

resource dbplus_rcrtexact ( string name, resource relation, bool overwrite)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_rcrtexact() will create an exact but empty copy of the given relation under a new name. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Zurück | Zum Anfang | Nach vorne
dbplus_rcreate | Nach oben | dbplus_rcrtlike


dbplus_rcrtlike

(4.1.0 - 4.2.3 only)

dbplus_rcrtlike -- Creates an empty copy of a relation with default indices

Description

resource dbplus_rcrtlike ( string name, resource relation, int flag)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_rcrtexact() will create an empty copy of the given relation under a new name, but with default indices. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Zurück | Zum Anfang | Nach vorne
dbplus_rcrtexact | Nach oben | dbplus_resolve


dbplus_resolve

(4.1.0 - 4.2.3 only)

dbplus_resolve -- Resolve host information for relation

Description

int dbplus_resolve ( string relation_name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_resolve() will try to resolve the given relation_name and find out internal server id, real hostname and the database path on this host. The function will return an array containing these values under the keys 'sid', 'host' and 'host_path' or FALSE on error.

See also dbplus_tcl().

Zurück | Zum Anfang | Nach vorne
dbplus_rcrtlike | Nach oben | dbplus_restorepos


dbplus_restorepos

(4.1.0 - 4.2.3 only)

dbplus_restorepos -- ???

Description

int dbplus_restorepos ( resource relation, array tuple)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Not implemented yet.

Zurück | Zum Anfang | Nach vorne
dbplus_resolve | Nach oben | dbplus_rkeys


dbplus_rkeys

(4.1.0 - 4.2.3 only)

dbplus_rkeys -- Specify new primary key for a relation

Description

resource dbplus_rkeys ( resource relation, mixed domlist)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_rkeys() will replace the current primary key for relation with the combination of domains specified by domlist.

domlist may be passed as a single domain name string or as an array of domain names.

Zurück | Zum Anfang | Nach vorne
dbplus_restorepos | Nach oben | dbplus_ropen


dbplus_ropen

(4.1.0 - 4.2.3 only)

dbplus_ropen -- Open relation file local

Description

resource dbplus_ropen ( string name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_ropen() will open the relation file locally for quick access without any client/server overhead. Access is read only and only dbplus_current() and dbplus_next() may be applied to the returned relation.

Zurück | Zum Anfang | Nach vorne
dbplus_rkeys | Nach oben | dbplus_rquery


dbplus_rquery

(4.1.0 - 4.2.3 only)

dbplus_rquery -- Perform local (raw) AQL query

Description

int dbplus_rquery ( string query, string dbpath)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_rquery() performs a local (raw) AQL query using an AQL interpreter embedded into the db++ client library. dbplus_rquery() is faster than dbplus_aql() but will work on local data only.

Zurück | Zum Anfang | Nach vorne
dbplus_ropen | Nach oben | dbplus_rrename


dbplus_rrename

(4.1.0 - 4.2.3 only)

dbplus_rrename -- Rename a relation

Description

int dbplus_rrename ( resource relation, string name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_rrename() will change the name of relation to name.

Zurück | Zum Anfang | Nach vorne
dbplus_rquery | Nach oben | dbplus_rsecindex


dbplus_rsecindex

(4.1.0 - 4.2.3 only)

dbplus_rsecindex -- Create a new secondary index for a relation

Description

resource dbplus_rsecindex ( resource relation, mixed domlist, int type)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_rsecindex() will create a new secondary index for relation with consists of the domains specified by domlist and is of type type

domlist may be passed as a single domain name string or as an array of domain names.

Zurück | Zum Anfang | Nach vorne
dbplus_rrename | Nach oben | dbplus_runlink


dbplus_runlink

(4.1.0 - 4.2.3 only)

dbplus_runlink -- Remove relation from filesystem

Description

int dbplus_runlink ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_unlink() will close and remove the relation.

Zurück | Zum Anfang | Nach vorne
dbplus_rsecindex | Nach oben | dbplus_rzap


dbplus_rzap

(4.1.0 - 4.2.3 only)

dbplus_rzap -- Remove all tuples from relation

Description

int dbplus_rzap ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_rzap() will remove all tuples from relation.

Zurück | Zum Anfang | Nach vorne
dbplus_runlink | Nach oben | dbplus_savepos


dbplus_savepos

(4.1.0 - 4.2.3 only)

dbplus_savepos -- ???

Description

int dbplus_savepos ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Not implemented yet.

Zurück | Zum Anfang | Nach vorne
dbplus_rzap | Nach oben | dbplus_setindex


dbplus_setindex

(4.1.0 - 4.2.3 only)

dbplus_setindex -- ???

Description

int dbplus_setindex ( resource relation, string idx_name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Not implemented yet.

Zurück | Zum Anfang | Nach vorne
dbplus_savepos | Nach oben | dbplus_setindexbynumber


dbplus_setindexbynumber

(4.1.0 - 4.2.3 only)

dbplus_setindexbynumber -- ???

Description

int dbplus_setindexbynumber ( resource relation, int idx_number)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Not implemented yet.

Zurück | Zum Anfang | Nach vorne
dbplus_setindex | Nach oben | dbplus_sql


dbplus_sql

(4.1.0 - 4.2.3 only)

dbplus_sql -- Perform SQL query

Description

resource dbplus_sql ( string query, string server, string dbpath)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Not implemented yet.

Zurück | Zum Anfang | Nach vorne
dbplus_setindexbynumber | Nach oben | dbplus_tcl


dbplus_tcl

(4.1.0 - 4.2.3 only)

dbplus_tcl -- Execute TCL code on server side

Description

int dbplus_tcl ( int sid, string script)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

A db++ server will prepare a TCL interpreter for each client connection. This interpreter will enable the server to execute TCL code provided by the client as a sort of stored procedures to improve the performance of database operations by avoiding client/server data transfers and context switches.

dbplus_tcl() needs to pass the client connection id the TCL script code should be executed by. dbplus_resolve() will provide this connection id. The function will return whatever the TCL code returns or a TCL error message if the TCL code fails.

See also dbplus_resolve().

Zurück | Zum Anfang | Nach vorne
dbplus_sql | Nach oben | dbplus_tremove


dbplus_tremove

(4.1.0 - 4.2.3 only)

dbplus_tremove -- Remove tuple and return new current tuple

Description

int dbplus_tremove ( resource relation, array tuple [, array current])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_tremove() removes tuple from relation if it perfectly matches a tuple within the relation. current, if given, will contain the data of the new current tuple after calling dbplus_tremove().

Zurück | Zum Anfang | Nach vorne
dbplus_tcl | Nach oben | dbplus_undo


dbplus_undo

(4.1.0 - 4.2.3 only)

dbplus_undo -- ???

Description

int dbplus_undo ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Not implemented yet.

Zurück | Zum Anfang | Nach vorne
dbplus_tremove | Nach oben | dbplus_undoprepare


dbplus_undoprepare

(4.1.0 - 4.2.3 only)

dbplus_undoprepare -- ???

Description

int dbplus_undoprepare ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Not implemented yet.

Zurück | Zum Anfang | Nach vorne
dbplus_undo | Nach oben | dbplus_unlockrel


dbplus_unlockrel

(4.1.0 - 4.2.3 only)

dbplus_unlockrel -- Give up write lock on relation

Description

int dbplus_unlockrel ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_unlockrel() will release a write lock previously obtained by dbplus_lockrel().

Zurück | Zum Anfang | Nach vorne
dbplus_undoprepare | Nach oben | dbplus_unselect


dbplus_unselect

(4.1.0 - 4.2.3 only)

dbplus_unselect -- Remove a constraint from relation

Description

int dbplus_unselect ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Calling dbplus_unselect() will remove a constraint previously set by dbplus_find() on relation.

Zurück | Zum Anfang | Nach vorne
dbplus_unlockrel | Nach oben | dbplus_update


dbplus_update

(4.1.0 - 4.2.3 only)

dbplus_update -- Update specified tuple in relation

Description

int dbplus_update ( resource relation, array old, array new)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_update() replaces the tuple given by old with the data from new if and only if old completely matches a tuple within relation.

Zurück | Zum Anfang | Nach vorne
dbplus_unselect | Nach oben | dbplus_xlockrel


dbplus_xlockrel

(4.1.0 - 4.2.3 only)

dbplus_xlockrel -- Request exclusive lock on relation

Description

int dbplus_xlockrel ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_xlockrel() will request an exclusive lock on relation preventing even read access from other clients.

See also dbplus_xunlockrel().

Zurück | Zum Anfang | Nach vorne
dbplus_update | Nach oben | dbplus_xunlockrel


dbplus_xunlockrel

(4.1.0 - 4.2.3 only)

dbplus_xunlockrel -- Free exclusive lock on relation

Description

int dbplus_xunlockrel ( resource relation)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

dbplus_xunlockrel() will release an exclusive lock on relation previously obtained by dbplus_xlockrel().

Zurück | Zum Anfang | Nach vorne
dbplus_xlockrel | Nach oben | Direkte Ein-/Ausgabe Funktionen


PHP Handbuch
Zurück Nach vorne

XXII. Direkte Ein-/Ausgabe Funktionen

Direkte Ein-/Ausgabe Funktionen

PHP unterstützt die direkte Ein-/Ausgabe-Funktionen, beschrieben im Posix Standard (Kapitel 6) für die Ein- und Ausgabe auf einer niederen Ebene als die standardmässig verwendeten C-Funktionen (fopen(), fread(),..). Die Verwendung der DIO Funktionen sollten Sie nur in Erwägung ziehen, wenn Sie die direkte Kontrolle über ein Gerät benötigen. In allen anderen Fällen sind die Standard filesystem-Funktionen mehr als ausreichend.

Anmerkung: This extension is not available on Windows platforms.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Um die DIO Funktionen benutzen zu können, muss PHP mit der Option --enable-dio konfiguriert werden.

Resource Typen

Eine Resource wird bei dieser Erweiterung verwendet: ein Dateizeiger der von der Funktion dio_open() zurück gegeben wird.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
dio_close -- Schliesst die Datei
dio_fcntl -- Ändert den Dateideskriptor
dio_open -- Öffnet eine Datei mit den angegebenen Rechten
dio_read -- Liest n Bytes und gibt sie zurück, ist n nicht angegeben wird ein 1K Block gelesen
dio_seek -- Setzt den Dateizeiger
dio_stat -- Liefert Statusinformationen über eine Datei
dio_tcsetattr -- Sets terminal attributes and baud rate for a serial port
dio_truncate -- Schneidet eine Datei ab
dio_write -- Schreibt Daten in eine Datei

Zurück | Zum Anfang | Nach vorne
dbplus_xunlockrel | Nach oben | dio_close


dio_close

(PHP 4 >= 4.2.0, PHP 5)

dio_close -- Schliesst die Datei

Beschreibung

void dio_close ( resource fd)

Die Funktion dio_close() schliesst die Datei fd.

Zurück | Zum Anfang | Nach vorne
Direkte Ein-/Ausgabe Funktionen | Nach oben | dio_fcntl


dio_fcntl

(PHP 4 >= 4.2.0, PHP 5)

dio_fcntl -- Ändert den Dateideskriptor

Beschreibung

mixed dio_fcntl ( resource fd, int cmd [, mixed arg])

Die Funktion dio_fcntl() führt eine Aktion cmd an der Datei fd aus. Einige Aktionen cmd benötigen das zusätzliche Argument args.

arg ist ein assoziatives Array, wenn cmd F_SETLK oder F_SETLLW ist. Es hat folgende Einträge:

  • "start" - offset an dem der Lock beginnt

  • "length" - Länge des gelockten Bereichs

  • "wenth" - Relative Position von start. Kann folgende Werte annehmen: SEEK_SET, SEEK_END and SEEK_CUR

  • "type" - Locktyp: F_RDLCK (read lock), F_WRLCK (write lock) oder F_UNLCK (unlock)

cmd ist einer der folgenden Konstanten:

  • F_SETLK - Setzt oder löscht einen Lock. Ist der Bereich bereits von einem anderen Prozess gelockt, so liefert die Funktion dio_fcntl() -1 zurück.

  • F_SETLKW - wie F_SETLK, jedoch im Falle, dass der Bereich von einem anderen Prozess gelockt wird, wartet dio_fcntl() auf die Freigabe des Locks.

  • F_GETLK - dio_fcntl() liefert ein assioziatives Array zurück (Beschreibung siehe oben), falls ein anderer Prozess den Bereich gelockt hat.

Zurück | Zum Anfang | Nach vorne
dio_close | Nach oben | dio_open


dio_open

(PHP 4 >= 4.2.0, PHP 5)

dio_open -- Öffnet eine Datei mit den angegebenen Rechten

Beschreibung

resource dio_open ( string filename, int flags [, int mode])

dio_open() öffnet eine Datei und liefert einen Dateizeiger zurück. Im Fehlerfall liefert dio_open() -1 zurück. Ist der Parameter flags O_CREAT, so gibt der optionale Parameter mode die Dateirechte an. Der Parameter flags kann eine der folgenden Zugriffsmethoden sein:

  • O_RDONLY - öffnet die Datei für Lesezugriff

  • O_WRONLY - öffnet die Datei für Schreibzugriff

  • O_RDWR - öffnet die Datei für Schreib- und Lesezugriff

Diese Zugriffsmethoden können mit folgenden Attributen kombiniert werden:

  • O_CREAT - erzeugt die Datei, falls diese nicht existiert

  • O_EXCL - in Kombination mit O_CREAT wird ein Fehler (-1) zurückgegeben, wenn die Datei bereits existiert

  • O_TRUNC - falls die Datei bereits existiert, und sie für Schreibzugriff geöffnet wird, wird diese auf die Grösse 0 zurückgesetzt

  • O_APPEND - setzt den Zeiger für Schreiboperationen an das Ende der Datei

  • O_NONBLOCK - Setzt den Modus auf "nonblocking"

Zurück | Zum Anfang | Nach vorne
dio_fcntl | Nach oben | dio_read


dio_read

(PHP 4 >= 4.2.0, PHP 5)

dio_read -- Liest n Bytes und gibt sie zurück, ist n nicht angegeben wird ein 1K Block gelesen

Beschreibung

string dio_read ( resource fd [, int n])

Die Funktion dio_read() liest n Bytes aus der Datei fd und gibt diese zurück. Wird der optionale Parameter n nicht angegeben, wird standardmässig ein 1K Block gelesen und zurückgegeben.

Zurück | Zum Anfang | Nach vorne
dio_open | Nach oben | dio_seek


dio_seek

(PHP 4 >= 4.2.0, PHP 5)

dio_seek -- Setzt den Dateizeiger

Beschreibung

int dio_seek ( resource fd, int pos, int whence)

Die Funktion dio_seek() setzt den Dateizeiger der Datei fd. Der whence gibt dabei an, wie die Position pos interpretiert werden soll:

  • SEEK_SET - gibt an, dass pos die Position vom Anfang der Datei ist

  • SEEK_CUR - gibt an, dass pos die Position relativ von der momentanen Dateizeigerposition ist.

  • SEEK_END - gibt an, dass pos die Position relativ zum Dateiende ist. Eine negative Zahl setzt den Dateizeiger innerhalb der Datei, ein positvier Wert bewirkt, dass die Datei vom Ende bis zur neuen Position mit Nullen aufgefüllt wird.

Zurück | Zum Anfang | Nach vorne
dio_read | Nach oben | dio_stat


dio_stat

(PHP 4 >= 4.2.0, PHP 5)

dio_stat -- Liefert Statusinformationen über eine Datei

Beschreibung

array dio_stat ( resource fd)

Die Funktion fstat() gibts ein assoziatives Array zurück, welches Informationen über die Datei fd enthält. Das Array enthält folgende Einträge:

  • "device" - Device

  • "inode" - Inode

  • "mode" - Modus

  • "nlink" - Anzahl Links

  • "uid" - Benutzer Id

  • "gid" - Gruppentyp

  • "device_type" - Device Typ

  • "size" - Grösse in Bytes

  • "blocksize" - Blockgrösse

  • "blocks" - Anzahl allocierter Blöcke

  • "atime" - Letzter Zugriff

  • "mtime" - Letze Modifikation

  • "ctime" - Letzte Änderung

Im Fehlerfall liefert dio_stat() NULL zurück.

Zurück | Zum Anfang | Nach vorne
dio_seek | Nach oben | dio_tcsetattr


dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5)

dio_tcsetattr -- Sets terminal attributes and baud rate for a serial port

Description

void dio_tcsetattr ( resource fd, array options)

The function dio_tcsetattr() sets the terminal attributes and baud rate of the open resource. The currently available options are

  • 'baud' - baud rate of the port - can be 38400,19200,9600,4800,2400,1800, 1200,600,300,200,150,134,110,75 or 50, default value is 9600.

  • 'bits' - data bits - can be 8,7,6 or 5. Default value is 8.

  • 'stop' - stop bits - can be 1 or 2. Default value is 1.

  • 'parity' - can be 0,1 or 2. Default value is 0.

Beispiel 1. Setting the baud rate on a serial port

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_fcntl($fd, F_SETFL, O_SYNC);

dio_tcsetattr($fd, array(
  'baud' => 9600,
  'bits' => 8,
  'stop'  => 1,
  'parity' => 0
));

while (1) {

  $data = dio_read($fd, 256);

  if ($data) {
      echo $data;
  }
}

?>

Zurück | Zum Anfang | Nach vorne
dio_stat | Nach oben | dio_truncate


dio_truncate

(PHP 4 >= 4.2.0, PHP 5)

dio_truncate -- Schneidet eine Datei ab

Beschreibung

bool dio_truncate ( resource fd, int offset)

Die Funktion dio_truncate() schneidet die Datei fd nach offset ab. War die Datei ursprünglich grösser, so gehen die Daten verloren. War sie kleiner so wird sie mit Nullen aufgefüllt.

Zurück | Zum Anfang | Nach vorne
dio_tcsetattr | Nach oben | dio_write


dio_write

(PHP 4 >= 4.2.0, PHP 5)

dio_write -- Schreibt Daten in eine Datei

Beschreibung

int dio_write ( resource fd, string data [, int len])

Die Funktion dio_write() schreibt bis zu len Bytes an Daten data in die Datei fd. Wird der optionale Parameter len nicht angegeben, so werden alle Daten data in die Datei geschrieben. dio_write() liefert die Anzahl der Bytes zurück, die in die Datei geschrieben wurden.

Zurück | Zum Anfang | Nach vorne
dio_truncate | Nach oben | Verzeichnis-Funktionen


Verzeichnis-Funktionen

PHP Handbuch
Zurück Nach vorne

XXIII. Verzeichnis-Funktionen

Inhaltsverzeichnis
chdir -- Wechseln des Verzeichnisses
chroot -- Change the root directory
dir -- Verzeichnis-Klasse
closedir -- Beenden eines Verzeichnis-Handles
getcwd -- Ermittelt das aktuelle Arbeitsverzeichnis
opendir -- Öffnen eines Verzeichnis-Handles
readdir -- Liest den Eintrag eines Verzeichnis-Handles
rewinddir -- Zurücksetzen des Verzeichnis-Handles
scandir -- List files and directories inside the specified path

Zurück | Zum Anfang | Nach vorne
dio_write | Nach oben | chdir


chdir

(PHP 3, PHP 4 , PHP 5)

chdir -- Wechseln des Verzeichnisses

Beschreibung:

int chdir ( string directory)

Wechsel des aktuellen PHP-Verzeichnisses in das durch directory angegebene Verzeichnis. Gibt FALSE zurück, wenn der Wechsel nicht möglich war, sonst TRUE.

Zurück | Zum Anfang | Nach vorne
Verzeichnis-Funktionen | Nach oben | chroot


chroot

(PHP 4 >= 4.0.5, PHP 5)

chroot -- Change the root directory

Description

bool chroot ( string directory)

Changes the root directory of the current process to directory. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

This function is only available if your system supports it and you're using the CLI, CGI or Embed SAPI.

Anmerkung: chroot() requires root privileges.

Anmerkung: Diese Funktion ist auf Windows-Plattformen nicht implementiert.

Zurück | Zum Anfang | Nach vorne
chdir | Nach oben | dir


dir

dir -- Verzeichnis-Klasse

Beschreibung:

class dir {

dir ( string directory)

string path

resource handle

string read ( void )

void rewind ( void )

void close ( void )

}

Ein Pseudo-Objekt-Orientierter Mechanismus zum Lesen eines Verzeichnisses. Das per directory angegebene Verzeichnis wird geöffnet. Sobald das Verzeichnis geöffnet ist, stehen 2 Eigenschaften zur Verfügung. Die Eigenschaft Handle kann mit anderen Verzeichnis-Funktionen wie readdir(), rewinddir() und closedir() benutzt werden (Handles sind Verweise auf Einträge in einer internen Tabelle zur Verwaltung von Objekten). Die Eigenschaft Path enthält die Pfadangabe des geöffneten Verzeichnisses. Es sind 3 Methoden verfügbar: read, rewind und close.

Beachten Sie im nachfolgenden Beispiel, wie der Rückgabewert der Funktion dir() überprüft wird. Es wird explizit getestet, ob der Rückgabewert identisch (den gleichen Wert und Datentyp hat, siehe Vergleichs-0peratoren) mit FALSE ist, weil sonst jeder Verzeichniseintrag, der zu FALSE ausgewertet wird, die Schleife abbricht.

Beispiel 1. dir()-Beispiel:

<?php
$d = dir("/etc");
echo "Handle: " . $d->handle . "<br />\n";
echo "Path: " . $d->path . "<br />\n";
while (false !== ($entry = $d->read())) {
   echo $entry."<br />\n";
}
$d->close();
?>

Anmerkung: Die Reihenfolge der Verzeichniseinträge, die von der read-Methode zurückgegeben werden, ist systemabhängig.

Anmerkung: Hierdurch wird die interne Klasse Directory definiert, was bedeutet, dass Sie keine eigenen Klassen mit diesem Namen definieren können. Eine vollständige Liste der vordefinierten Klassen in PHP gibt es unter Vordefinierte Klassen.

Zurück | Zum Anfang | Nach vorne
chroot | Nach oben | closedir


closedir

(PHP 3, PHP 4 , PHP 5)

closedir -- Beenden eines Verzeichnis-Handles

Beschreibung:

void closedir ( int dir_handle)

Beendet den mit dir_handle angegebenen Verzeichnis-Stream (Ein-/Ausgabe-Kanal für Verzeichnis-Objekte). Dieser muss vorher durch opendir() geöffnet worden sein.

Zurück | Zum Anfang | Nach vorne
dir | Nach oben | getcwd


getcwd

(PHP 4 , PHP 5)

getcwd -- Ermittelt das aktuelle Arbeitsverzeichnis

Beschreibung:

string getcwd ( void )

Gibt das gegenwärtige Arbeitsverzeichnis zurück.

Zurück | Zum Anfang | Nach vorne
closedir | Nach oben | opendir


opendir

(PHP 3, PHP 4 , PHP 5)

opendir -- Öffnen eines Verzeichnis-Handles

Beschreibung:

int opendir ( string path)

Gibt ein Verzeichnis-Handle zurück, das in späteren Aufrufen von closedir(), readdir() und rewinddir() gebraucht werden kann.

Zurück | Zum Anfang | Nach vorne
getcwd | Nach oben | readdir


readdir

(PHP 3, PHP 4 , PHP 5)

readdir -- Liest den Eintrag eines Verzeichnis-Handles

Beschreibung:

string readdir ( int dir_handle)

Ermittelt den nächsten Dateinamen im Verzeichnis. Die Dateinamen werden ungeordnet zurück gegeben.

Beispiel 1. Liste alle Dateien des aktuellen Verzeichnisses auf

<?php
$handle=opendir ('.');
echo "Verzeichnis-Handle: $handle\n";
echo "Dateien:\n";
while (false !== ($file = readdir ($handle))) {
    echo "$file\n";
}
closedir($handle);
?>

Beachten sie, dass readdir() auch die Einträge "." und ".." zurück gibt. Wollen sie das nicht, müssen sie diese ausschliessen:

Beispiel 2. Liste alle Dateien des aktuellen Verzeichnisses unter Ausschluss von "." und ".." auf

<?php
$handle=opendir('.');
while ($file = readdir ($handle)) {
    if ($file != "." && $file != "..") {
        echo "$file\n";
    }
}
closedir($handle);
?>

Zurück | Zum Anfang | Nach vorne
opendir | Nach oben | rewinddir


rewinddir

(PHP 3, PHP 4 , PHP 5)

rewinddir -- Zurücksetzen des Verzeichnis-Handles

Beschreibung:

void rewinddir ( int dir_handle)

Setzt den mit dir_handle angegebenen Verzeichnis-Stream auf den Anfang zurück (Reset).

Zurück | Zum Anfang | Nach vorne
readdir | Nach oben | scandir


scandir

(PHP 5)

scandir -- List files and directories inside the specified path

Description

array scandir ( string directory [, int sorting_order [, resource context]])

Returns an array of files and directories from the directory. If directory is not a directory, then boolean FALSE is returned, and an error of level E_WARNING is generated.

By default, the sorted order is alphabetical in ascending order. If the optional sorting_order is used (set to 1), then sort order is alphabetical in descending order.

Beispiel 1. A simple scandir() example

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

Outputs something like:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Beispiel 2. PHP 4 alternatives to scandir()

<?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);

?>

Outputs something like:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

See also opendir(),
readdir(),
glob(),
is_dir(), and
sort().

Zurück | Zum Anfang | Nach vorne
rewinddir | Nach oben | DOM XML Funktionen


DOM XML Funktionen

PHP Handbuch
Zurück Nach vorne

XXIV. DOM XML Funktionen

Einführung

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Die DOM XML Erweiterung wurde in PHP 4.3.0 überholt, um dem DOM Standard besser zu entsprechen. Die Erweiterung enthält noch immer viele alte Funktionen, die aber nicht mehr benutzt werden sollten. Im Besonderen sollten nicht objektorientierte Funktionen vermieden werden.

Diese Erweiterung erlaubt es, an einem XML Dokument mit dem DOM API zu arbeiten. Sie bietet auch die Funktion domxml_xmltree(), um das gesamte XML Dokument in einen Baum von PHP Objekten zu verwandeln. Zur Zeit sollten Sie diesen Baum nur zum Lesen verwenden — Sie können ihn zwar modifizieren, aber nachdem DomDocument_dump_mem() nicht darauf angewendet werden kann, macht dies keinen Sinn. Sollten Sie eine XML Datei lesen und eine modifizierte Version schreiben wollen, benutzen Sie die Funktionen DomDocument_create_element(), DomDocument_create_text_node(), set_attribute(), etc. und schließlich DomDocument_dump_mem().

Anforderungen

Diese Erweiterung macht von der GNOME XML library Gebrauch. Laden Sie diese bitte herunter und installieren Sie diese Bibliothek. Sie werden zumindest libxml-2.4.14 benötigen. Um DOM XSLT Features zu benutzen, können Sie die libxslt library und EXSLT Erweiterungen von http://www.exslt.org/ verwenden. Laden Sie diese Bibliotheken herunter und installieren Sie diese, wenn Sie den Einsatz von (erweiterten) XSLT Features planen. Sie werden zumindest libxslt-1.0.18 benötigen.

Installation

This extension is only available if PHP was configured with --with-dom[=DIR]. Add --with-dom-xslt[=DIR] to include DOM XSLT support. DIR is the libxslt install directory. Add --with-dom-exslt[=DIR] to include DOM EXSLT support, where DIR is the libexslt install directory.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy one additional file from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your Windows machine (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). For PHP <= 4.2.0 copy libxml2.dll, for PHP >= 4.3.0 copy iconv.dll from the DLL folder to your SYSTEM32 folder.

Veraltete Funktionen

Es gibt ziemlich viele Funktionen, die nicht in den DOM Standard passen und nicht mehr länger benutzt werden sollten. Diese Funktionen sind in der folgenden Tabelle aufgelistet. Die Funktion DomNode_append_child() hat ihr Verhalten geändert, indem sie nun ein 'Kind' statt einem 'Geschwister' hinzufügt. Wenn Ihre Applikation deshalb nicht mehr funktioniert, verwenden Sie die nicht DOM standardkonforme Funktion DomNode_append_sibling().

Tabelle 1. Veraltete Funktionen und deren Ersatz

Alte Funktion | Neue Funktion
xmldoc | domxml_open_mem()
xmldocfile | domxml_open_file()
domxml_new_xmldoc | domxml_new_doc()
domxml_dump_mem | DomDocument_dump_mem()
domxml_dump_mem_file | DomDocument_dump_file()
DomDocument_dump_mem_file | DomDocument_dump_file()
DomDocument_add_root | DomDocument_create_element() gefolgt von DomNode_append_child()
DomDocument_dtd | DomDocument_doctype()
DomDocument_root | DomDocument_document_element()
DomDocument_children | DomNode_child_nodes()
DomDocument_imported_node | Kein Ersatz.
DomNode_add_child | Erstellen Sie einen neuen Knoten mit z.B. DomDocument_create_element() und fügen Sie ihn mit DomNode_append_child() hinzu.
DomNode_children | DomNode_child_nodes()
DomNode_parent | DomNode_parent_node()
DomNode_new_child | Erstellen Sie einen neuen Knoten mit z.B. DomDocument_create_element() und fügen Sie ihn mit DomNode_append_child() hinzu.
DomNode_set_content | Erstellen Sie einen neuen Knoten mit z.B. DomDocument_create_text_node() und fügen Sie ihn mit DomNode_append_child() hinzu.
DomNode_get_content | Der Inhalt ist nur ein Textknoten, auf den mittels DomNode_child_nodes() zugegriffen werden kann.
DomNode_set_content | Der Inhalt ist nur ein Textknoten, der mittels DomNode_append_child() hinzugefügt werden kann.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Tabelle 2. XML constants

Constant | Value | Description
XML_ELEMENT_NODE (integer) | 1 | Node is an element
XML_ATTRIBUTE_NODE (integer) | 2 | Node is an attribute
XML_TEXT_NODE (integer) | 3 | Node is a piece of text
XML_CDATA_SECTION_NODE (integer) | 4 |
XML_ENTITY_REF_NODE (integer) | 5 |
XML_ENTITY_NODE (integer) | 6 | Node is an entity like &nbsp;
XML_PI_NODE (integer) | 7 | Node is a processing instruction
XML_COMMENT_NODE (integer) | 8 | Node is a comment
XML_DOCUMENT_NODE (integer) | 9 | Node is a document
XML_DOCUMENT_TYPE_NODE (integer) | 10 |
XML_DOCUMENT_FRAG_NODE (integer) | 11 |
XML_NOTATION_NODE (integer) | 12 |
XML_GLOBAL_NAMESPACE (integer) | 1 |
XML_LOCAL_NAMESPACE (integer) | 2 |
XML_HTML_DOCUMENT_NODE (integer) |  |
XML_DTD_NODE (integer) |  |
XML_ELEMENT_DECL_NODE (integer) |  |
XML_ATTRIBUTE_DECL_NODE (integer) |  |
XML_ENTITY_DECL_NODE (integer) |  |
XML_NAMESPACE_DECL_NODE (integer) |  |
XML_ATTRIBUTE_CDATA (integer) |  |
XML_ATTRIBUTE_ID (integer) |  |
XML_ATTRIBUTE_IDREF (integer) |  |
XML_ATTRIBUTE_IDREFS (integer) |  |
XML_ATTRIBUTE_ENTITY (integer) |  |
XML_ATTRIBUTE_NMTOKEN (integer) |  |
XML_ATTRIBUTE_NMTOKENS (integer) |  |
XML_ATTRIBUTE_ENUMERATION (integer) |  |
XML_ATTRIBUTE_NOTATION (integer) |  |
XPATH_UNDEFINED (integer) |  |
XPATH_NODESET (integer) |  |
XPATH_BOOLEAN (integer) |  |
XPATH_NUMBER (integer) |  |
XPATH_STRING (integer) |  |
XPATH_POINT (integer) |  |
XPATH_RANGE (integer) |  |
XPATH_LOCATIONSET (integer) |  |
XPATH_USERS (integer) |  |
XPATH_NUMBER (integer) |  |

Klassen

Das API dieses Moduls entspricht dem DOM Level 2 Standard so weit wie möglich. Folglich ist das API vollständig objektorientiert. Es wäre sinnvoll, den DOM Standard verfügbar zu haben, wenn Sie dieses Modul benutzen. Obwohl das API objektorientiert ist gibt es viele Funktionen, die in einer nicht objektorientierten Art aufgerufen werden können, indem das zu bearbeitende Objekt als das erste Argument übergeben wird. Diese Funktionen dienen hauptsächlich der Kompatibilität zu älteren Versionen dieser Erweiterung und sollten deshalb beim Erstellen neuer Skripte nicht mehr verwendet werden.

Dieses API unterscheidet sich von dem offiziellen DOM API auf zwei Arten. Erstens sind alle Klassenattribute als Funktionen mit dem selben Namen implementiert. Zweitens folgen die Funktionsnamen der PHP Namenskonvention. Das heißt, dass eine DOM Funktion lastChild() als last_child() geschrieben wird.

Dieses Modul definiert eine Anzahl Klassen, die — inklusive ihrer Methoden — in den folgenden Tabellen aufgelistet sind. Klassen mit einem Äquivalent im DOM Standard werden DOMxxx genannt.

Tabelle 3. Liste der Klassen

Klassenname | Basisklassen
DomAttribute | DomNode
DomCData | DomNode
DomComment | DomCData : DomNode
DomDocument | DomNode
DomDocumentType | DomNode
DomElement | DomNode
DomEntity | DomNode
DomEntityReference | DomNode
DomProcessingInstruction | DomNode
DomText | DomCData : DomNode
Parser | Derzeit noch immer DomParser genannt
XPathContext |

Tabelle 4. DomDocument Klasse (DomDocument : DomNode)

Methodenname | Funktionsname | Anmerkung
doctype | DomDocument_doctype() |
document_elemnent | DomDocument_document_element() |
create_element | DomDocument_create_element() |
create_text_node | DomDocument_create_text_node() |
create_comment | DomDocument_create_comment() |
create_cdata_section | DomDocument_create_cdata_section() |
create_processing_instruction | DomDocument_create_processing_instruction() |
create_attribute | DomDocument_create_attribute() |
create_entity_reference | DomDocument_create_entity_reference() |
get_elements_by_tagname | DomDocument_get_elements_by_tagname() |
get_element_by_id | DomDocument_get_element_by_id() |
dump_mem | DomDocument_dump_mem() | kein DOM Standard
dump_file | DomDocument_dump_file() | kein DOM Standard
html_dump_mem | DomDocument_html_dump_mem() | kein DOM Standard
xpath_init | xpath_init | kein DOM Standard
xpath_new_context | xpath_new_context | kein DOM Standard
xptr_new_context | xptr_new_context | kein DOM Standard

Tabelle 5. DomElement Klasse (DomElement : DomNode)

Methodenname | Funktionsname | Anmerkung
tagname | DomElement_tagname() |
get_attribute | DomElement_get_attribute() |
set_attribute | DomElement_set_attribute() |
remove_attribute | DomElement_remove_attribute() |
get_attribute_node | DomElement_get_attribute_node() |
get_elements_by_tagname | DomElement_get_elements_by_tagname() |
has_attribute | DomElement_has_attribute() |

Tabelle 6. DomNode Klasse

Methodenname | Anmerkung
DomNode_node_name() |
DomNode_node_value() |
DomNode_node_type() |
DomNode_last_child() |
DomNode_first_child() |
DomNode_child_nodes() |
DomNode_previous_sibling() |
DomNode_next_sibling() |
DomNode_parent_node() |
DomNode_owner_document() |
DomNode_insert_before() |
DomNode_append_child() |
DomNode_append_sibling() | Nicht im DOM Standard. Diese Funktion emuliert das frühere Verhalten von DomNode_append_child().
DomNode_remove_child() |
DomNode_has_child_nodes() |
DomNode_has_attributes() |
DomNode_clone_node() |
DomNode_attributes() |
DomNode_unlink_node() | Nicht im DOM Standard
DomNode_replace_node() | Nicht im DOM Standard
DomNode_set_content() | Nicht im DOM Standard, veraltet
DomNode_get_content() | Nicht im DOM Standard, veraltet
DomNode_dump_node() | Nicht im DOM Standard
DomNode_is_blank_node() | Nicht im DOM Standard

Tabelle 7. DomAttribute Klasse (DomAttribute : DomNode)

Methodenname |  | Anmerkung
name | DomAttribute_name() |
value | DomAttribute_value() |
specified | DomAttribute_specified() |

Tabelle 8. DomProcessingInstruction Klasse (DomProcessingInstruction : DomNode)

Methodenname | Funktionsname | Anmerkung
target | DomProcessingInstruction_target() |
data | DomProcessingInstruction_data() |

Tabelle 9. Parser Klasse

Methodenname | Funktionsname | Anmerkung
add_chunk | Parser_add_chunk() |
end | Parser_end() |

Tabelle 10. XPathContext Klasse

Methodenname | Funktionsname | Anmerkung
eval | XPathContext_eval() |
eval_expression | XPathContext_eval_expression() |
register_ns | XPathContext_register_ns() |

Tabelle 11. DomDocumentType Klasse (DomDocumentType : DomNode)

Methodenname | Funktionsname | Anmerkung
name | DomDocumentType_name() |
entities | DomDocumentType_entities() |
notations | DomDocumentType_notations() |
public_id | DomDocumentType_public_id() |
system_id | DomDocumentType_system_id() |
internal_subset | DomDocumentType_internal_subset() |

Die Klasse DomDtd ist von DomNode, und DomComment von DomCData abgeleitet

Beispiele

Viele Beispiele in dieser Referenz erfordern einen XML String. Anstatt diesen String laufend zu wiederholen, wird er in eine Datei geschrieben, die von jedem Beispiel eingebunden wird. Diese einzubindende Datei wird in dem folgenden Beispielteil gezeigt. Alternativ dazu können Sie ein XML Dokument erstellen, und dieses mit DomDocument_open_file() einlesen.

Beispiel 1. Einzubindende Datei example.inc mit XML String

<?php
$xmlstr = "<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj  -->
<chapter language='en'><title language='en'>Title</title>
<para language='ge'>
  &amp;sp;
  <!-- comment -->
  <informaltable ID='findme' language='&amp;sp;'>
   <tgroup cols='3'>
    <tbody>
     <row><entry>a1</entry><entry
morerows='1'>b1</entry><entry>c1</entry></row>
<row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
</para>
</chapter>";
?>

Inhaltsverzeichnis
DomAttribute->name -- Gibt den Namen eines Attributes zurück.
DomAttribute->specified -- Überprüft, ob ein Attribut gesetzt ist.
DomAttribute->value -- Gibt den Wert eines Attributes zurück.
DomDocument->add_root [deprecated] -- Fügt ein Wurzelelement hinzu.
DomDocument->create_attribute -- Generiere ein neues Attribut.
DomDocument->create_cdata_section -- Generiere ein neues cdata-Element
DomDocument->create_comment -- Generiere eine neues Kommentarelement
DomDocument->create_element_ns -- Create new element node with an associated namespace
DomDocument->create_element -- Create new element node
DomDocument->create_entity_reference --
DomDocument->create_processing_instruction -- Generiert eine neue Ausführungsanweisung
DomDocument->create_text_node -- Generiere ein neues Textelement
DomDocument->doctype -- Gibt den Dokumententyp zurück
DomDocument->document_element -- Gibt das Wurzelelement zurück
DomDocument->dump_file -- Schreibt den internen XML-Baum zurück in eine Datei
DomDocument->dump_mem -- Schreibt den internen XML-Baum in eine Zeichenkette
DomDocument->get_element_by_id -- Sucht nach einem Element mit eine bestimmten ID
DomDocument->get_elements_by_tagname --
DomDocument->html_dump_mem -- Schreibt den internen XML-Baum als HTML in eine Zeichenkette
DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object.
DomDocumentType->entities -- Returns list of entities
DomDocumentType->internal_subset -- Returns internal subset
DomDocumentType->name -- Returns name of document type
DomDocumentType->notations -- Returns list of notations
DomDocumentType->public_id -- Returns public id of document type
DomDocumentType->system_id -- Returns system id of document type
DomElement->get_attribute_node -- Returns value of attribute
DomElement->get_attribute -- Returns value of attribute
DomElement->get_elements_by_tagname -- Gets elements by tagname
DomElement->has_attribute -- Checks to see if attribute exists
DomElement->remove_attribute -- Removes attribute
DomElement->set_attribute -- Adds new attribute
DomElement->tagname -- Returns name of element
DomNode->add_namespace -- Adds a namespace declaration to a node.
DomNode->append_child -- Adds new child at the end of the children
DomNode->append_sibling -- Adds new sibling to a node
DomNode->attributes -- Returns list of attributes
DomNode->child_nodes -- Returns children of node
DomNode->clone_node -- Clones a node
DomNode->dump_node -- Dumps a single node
DomNode->first_child -- Returns first child of node
DomNode->get_content -- Gets content of node
DomNode->has_attributes -- Checks if node has attributes
DomNode->has_child_nodes -- Checks if node has children
DomNode->insert_before -- Inserts new node as child
DomNode->is_blank_node -- Checks if node is blank
DomNode->last_child -- Returns last child of node
DomNode->next_sibling -- Returns the next sibling of node
DomNode->node_name -- Returns name of node
DomNode->node_type -- Returns type of node
DomNode->node_value -- Returns value of a node
DomNode->owner_document -- Returns the document this node belongs to
DomNode->parent_node -- Returns the parent of the node
DomNode->prefix -- Returns name space prefix of node
DomNode->previous_sibling -- Returns the previous sibling of node
DomNode->remove_child -- Removes child from list of children
DomNode->replace_child -- Replaces a child
DomNode->replace_node -- Replaces node
DomNode->set_content -- Sets content of node
DomNode->set_name -- Sets name of node
DomNode->set_namespace -- Sets namespace of a node.
DomNode->unlink_node -- Deletes node
DomProcessingInstruction->data -- Returns data of pi node
DomProcessingInstruction->target -- Returns target of pi node
DomXsltStylesheet->process -- Applies the XSLT-Transformation on a DomDocument Object.
DomXsltStylesheet->result_dump_file -- Dumps the result from a XSLT-Transformation into a file
DomXsltStylesheet->result_dump_mem -- Dumps the result from a XSLT-Transformation back into a string
domxml_new_doc -- Creates new empty XML document
domxml_open_file -- Creates a DOM object from XML file
domxml_open_mem -- Creates a DOM object of an XML document
domxml_version -- Get XML library version
domxml_xmltree -- Creates a tree of PHP objects from an XML document
domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object.
domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from an XSL document in a file.
domxml_xslt_stylesheet -- Creates a DomXsltStylesheet Object from an XML document in a string.
xpath_eval_expression -- Evaluates the XPath Location Path in the given string
xpath_eval -- Evaluates the XPath Location Path in the given string
xpath_new_context -- Creates new xpath context
xptr_eval -- Evaluate the XPtr Location Path in the given string
xptr_new_context -- Create new XPath Context

Zurück | Zum Anfang | Nach vorne
scandir | Nach oben | DomAttribute->name


DomAttribute->name

(no version information, might be only in CVS)

DomAttribute->name -- Gibt den Namen eines Attributes zurück.

Beschreibung

bool DomAttribute->name ( void )

Diese Funktion gibt den Namen eines Attributes zurück.

Siehe auch DomAttribute_value().

Zurück | Zum Anfang | Nach vorne
DOM XML Funktionen | Nach oben | DomAttribute->specified


DomAttribute->specified

(no version information, might be only in CVS)

DomAttribute->specified -- Überprüft, ob ein Attribut gesetzt ist.

Beschreibung

bool DomAttribute->specified ( void )

Eine detailierte Erklärung finden Sie im DOM-Standard

Zurück | Zum Anfang | Nach vorne
DomAttribute->name | Nach oben | DomAttribute->value


DomAttribute->value

(no version information, might be only in CVS)

DomAttribute->value -- Gibt den Wert eines Attributes zurück.

Beschreibung

bool DomAttribute->value ( void )

Diese Funktion gibt den Wert eines Attributes zurück.

Siehe auch DomAttribute_name().

Zurück | Zum Anfang | Nach vorne
DomAttribute->specified | Nach oben | DomDocument->add_root [deprecated]


DomDocument->add_root [deprecated]

(no version information, might be only in CVS)

DomDocument->add_root [deprecated] -- Fügt ein Wurzelelement hinzu.

Beschreibung

resource DomDocument->add_root ( string name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Fügt einem DOM-Dokument ein Wurzelelement hinzu und gibt das neue Element zurück. Der Elementname ist in dem passenden Parameter übergeben.

Beispiel 1. Einen HTML-Header generieren.

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->add_root("HTML");
$head = $root->new_child("HEAD", "");
$head->new_child("TITLE", "Hier der Titel");
echo htmlentities($doc->dump_mem());
?>

Zurück | Zum Anfang | Nach vorne
DomAttribute->value | Nach oben | DomDocument->create_attribute


DomDocument->create_attribute

(no version information, might be only in CVS)

DomDocument->create_attribute -- Generiere ein neues Attribut.

Beschreibung

object DomDocument->create_attribute ( string name, string value)

Diese Funktion liefert einen neue Instanz der Klasse DomAttribute zurück. Der Name des Attributes ist der Wert des ersten Parameters. Der Wert des Attributes ist der Wert des zweiten Parameters. Dieses Element wird im Dokument nicht auftauchen bis es mit DomNode_append_child() eingefügt wurde.

Der Rückgabewert ist false, wenn ein Fehler aufgetreten ist.

Siehe auch DomNode_append_child(),
           DomDocument_create_element(),
           DomDocument_create_text(),
           DomDocument_create_cdata_section(),
           DomDocument_create_processing_instruction(),
           DomDocument_create_entity_reference(),
           DomNode_insert_before().

Zurück | Zum Anfang | Nach vorne
DomDocument->add_root [deprecated] | Nach oben | DomDocument->create_cdata_section


DomDocument->create_cdata_section

(no version information, might be only in CVS)

DomDocument->create_cdata_section -- Generiere ein neues cdata-Element

Beschreibung

string DomDocument->create_cdata_section ( string content)

Diese Funktion gibt eine neue Instanz der Klasse DomCData zurück. Der Inhalt des cdata-Element ist der Wert des übergebenen Parameters. Diese Element wird im Dokument nicht auftauchen, bis es mit DomNode_append_child() eingefügt wurde.

Der Rückgabewert ist false, wenn ein Fehler auftritt.

Siehe auch DomNode_append_child(),
           DomDocument_create_element(),
           DomDocument_create_text(),
           DomDocument_create_attribute(),
           DomDocument_create_processing_instruction(),
           DomDocument_create_entity_reference(),
           DomNode_insert_before().

Zurück | Zum Anfang | Nach vorne
DomDocument->create_attribute | Nach oben | DomDocument->create_comment


DomDocument->create_comment

(no version information, might be only in CVS)

DomDocument->create_comment -- Generiere eine neues Kommentarelement

Beschreibung

object DomDocument->create_comment ( string content)

Diese Funktion gibt eine neue Instanz der Klasse DomComment zurück. Der Inhalt des Kommentar ist der Wert des übergebenen Parameters. Dieses Element wird im Dokument nicht auftauchen, bis es mittels DomNode_append_child() eingefügt wurde.

Der Rückgabewert ist false wenn ein Fehler auftritt.

Siehe auch DomNode_append_child(),
           DomDocument_create_element(),
           DomDocument_create_text(),
           DomDocument_create_attribute(),
           DomDocument_create_processing_instruction(),
           DomDocument_create_entity_reference(),
           DomNode_insert_before().

Zurück | Zum Anfang | Nach vorne
DomDocument->create_cdata_section | Nach oben | DomDocument->create_element_ns


DomDocument->create_element_ns

(no version information, might be only in CVS)

DomDocument->create_element_ns -- Create new element node with an associated namespace

Description

object DomDocument->create_element_ns ( string uri, string name [, string prefix])

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter name. The URI of the namespace is the value of the passed parameter uri. If there is already a namespace declaration with the same uri in the root-node of the document, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
domnode_add_namespace(),
domnode_set_namespace(),
domnode_append_child(),
domdocument_create_text(),
domdocument_create_comment(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

Zurück | Zum Anfang | Nach vorne
DomDocument->create_comment | Nach oben | DomDocument->create_element


DomDocument->create_element

(no version information, might be only in CVS)

DomDocument->create_element -- Create new element node

Description

object DomDocument->create_element ( string name)

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
domnode_append_child(),
domdocument_create_text(),
domdocument_create_comment(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

Zurück | Zum Anfang | Nach vorne
DomDocument->create_element_ns | Nach oben | DomDocument->create_entity_reference


DomDocument->create_entity_reference

(no version information, might be only in CVS)

DomDocument->create_entity_reference --

Beschreibung

object DomDocument->create_entity_reference ( string content)

Diese Funktion gibt eine neue Instanz der Klasse DomEntityReference zurück. Der Inhalt der Entitätsreferenz ist der Wert des übergebenen Parameters. Dieses Element wird im Dokument nicht auftauchen, bis es mit DomNode_append_child() eingefügt wurde.

Der Rückgabewert ist false wenn ein Fehler auftritt.

Siehe auch DomNode_append_child(),
           DomDocument_create_element(),
           DomDocument_create_text(),
           DomDocument_create_cdata_section(),
           DomDocument_create_processing_instruction(),
           DomDocument_create_attribute(),
           DomNode_insert_before().

Zurück | Zum Anfang | Nach vorne
DomDocument->create_element | Nach oben | DomDocument->create_processing_instruction


DomDocument->create_processing_instruction

(no version information, might be only in CVS)

DomDocument->create_processing_instruction -- Generiert eine neue Ausführungsanweisung

Beschreibung

string DomDocument->create_processing_instruction ( string content)

Diese Funktion gibt eine neue Instanz der der Klasse DomCData zurück. Der Inhalt der Ausführungsanweisung ist der Wert des übergebenen Parameters. Dieses Element wird solange nicht im Dokument auftauchen, bis es mittels DomNode_append_child() eingefügt wurde.

Der Rückgabewert ist false wenn ein Fehler auftritt.

Siehe auch DomNode_append_child(),
           DomDocument_create_element(),
           DomDocument_create_text(),
           DomDocument_create_cdata_section(),
           DomDocument_create_attribute(),
           DomDocument_create_entity_reference(),
           DomNode_insert_before().

Zurück | Zum Anfang | Nach vorne
DomDocument->create_entity_reference | Nach oben | DomDocument->create_text_node


DomDocument->create_text_node

(no version information, might be only in CVS)

DomDocument->create_text_node -- Generiere ein neues Textelement

Description

object DomDocument->create_text_node ( string content)

Diese Funktion gibt eine neue Instanz der Klasse DomText zurück. Der Inhalt des Textes ist der Wert des übergebenen Parameters. Dieses Element wird nicht im Dokument auftauchen, bis es mittels DomNode_append_child() eingefügt wurde. DomNode_append_child().

Der Rückgabewert ist false wenn ein Fehler auftritt.

Siehe auch DomNode_append_child(),
           DomDocument_create_element(),
           DomDocument_create_comment(),
           DomDocument_create_text(),
           DomDocument_create_attribute(),
           DomDocument_create_processing_instruction(),
           DomDocument_create_entity_reference(),
           DomNode_insert_before().

Zurück | Zum Anfang | Nach vorne
DomDocument->create_processing_instruction | Nach oben | DomDocument->doctype


DomDocument->doctype

(no version information, might be only in CVS)

DomDocument->doctype -- Gibt den Dokumententyp zurück

Beschreibung

object DomDocument->doctype ( void )

Diese Funktion gibt ein Objekt der Klasse DomDocumentType zurück. In PHP-Versionen vor 4.3 war dies die Klasse Dtd, der DOM-Standard kennt diese Klasse jedoch nicht.

Siehe auch die Methoden der Klasse DomDocumentType.

Zurück | Zum Anfang | Nach vorne
DomDocument->create_text_node | Nach oben | DomDocument->document_element


DomDocument->document_element

(no version information, might be only in CVS)

DomDocument->document_element -- Gibt das Wurzelelement zurück

Beschreibung

object DomDocument->document_element ( void )

Diese Funktion gibt das Wurzelelement eines Dokumentes zurück.

Das folgende Beispiel gibt ausschliesslich das Element mit dem Namen CHAPTER zurück und gibt es aus. Das andere Element - der Kommentar - wird nicht zurückgegeben.

Beispiel 1. Das Wurzelelement zurückliefern

<?php
include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Fehler beim parsen des Dokumentes\n";
  exit;
}

$root = $dom->document_element();
print_r($root);
?>

Zurück | Zum Anfang | Nach vorne
DomDocument->doctype | Nach oben | DomDocument->dump_file


DomDocument->dump_file

(no version information, might be only in CVS)

DomDocument->dump_file -- Schreibt den internen XML-Baum zurück in eine Datei

Description

string DomDocument->dump_file ( string filename [, bool compressionmode [, bool format]])

Generiert ein XML-Dokument aus der DOM Repräsentation. Diese Funktion wird normalerweise nach dem Zusammenbau eines neuen DOM-Dokumentes aufgerufen. Der Parametter format gibt an, ob die Ausgabe formatiert erfolgen soll oder nicht. Der erste Parameter gibt den Dateinamen an, mittels des zweiten Parameters wird entschieden, ob die Datei komprimiert werden soll oder nicht. filename and the second parameter, whether it should be compressed or not.

Beispiel 1. Generierung eines HTML-Headers

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("Das ist der Titel");
$text = $title->append_child($text);
$doc->dump_file("/tmp/test.xml", false, true);
?>

Siehe auch DomDocument_dump_mem() DomDocument_html_dump_mem().

Zurück | Zum Anfang | Nach vorne
DomDocument->document_element | Nach oben | DomDocument->dump_mem


DomDocument->dump_mem

(no version information, might be only in CVS)

DomDocument->dump_mem -- Schreibt den internen XML-Baum in eine Zeichenkette

Beschreibung

string DomDocument->dump_mem ( [bool format])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Generiert ein XML-Dokument aus der DOM-Repräsentation. Diese Funktion wird normalerweise aufgerufen, nachdem ein neues DOM Dokument generiert wurde. Der Parameter format gibt an, ob die Ausgabe formatiert erfolgen soll.

Beispiel 1. Generiere einen HTML-Header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("Das ist der Titel");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->dump_mem(true));
echo "</PRE>";
?>

Anmerkung: Der erste Parameter wurde in PHP 4.3.0 hinzugefügt.

Siehe auch DomDocument_dump_file(), DomDocument_html_dump_mem().

Zurück | Zum Anfang | Nach vorne
DomDocument->dump_file | Nach oben | DomDocument->get_element_by_id


DomDocument->get_element_by_id

(no version information, might be only in CVS)

DomDocument->get_element_by_id -- Sucht nach einem Element mit eine bestimmten ID

Beschreibung

object DomDocument->get_element_by_id ( string id)

Diese Funktion ist ähnlich der Funktion DomDocument_get_elements_by_tagname(), sucht jedoch nach einem Element mit einer bestimmten ID. Nach dem DOM-Standard muss dazu eine DTD existieren, welche die das Attribut ID als Typ ID definiert. Die akutelle Implementierung führt lediglich eine simple XPath-Suche nach "//*[@ID = '%s']" durch. Das entspricht nicht dem DOM-Standard, der null erwartet, wenn unbekannt ist, welches Element den Typ ID trägt. Dieses Verhalten wird in Zukunft dem Standard angepasst werden, sie sollten sich also nicht auf dieses Verhalten verlassen.

Siehe auch DomDocument_get_elements_by_tagname()

Zurück | Zum Anfang | Nach vorne
DomDocument->dump_mem | Nach oben | DomDocument->get_elements_by_tagname


DomDocument->get_elements_by_tagname

(no version information, might be only in CVS)

DomDocument->get_elements_by_tagname --

Beschreibung

array DomDocument->get_elements_by_tagname ( string name)

Siehe auchDomDocument_add_root()

Zurück | Zum Anfang | Nach vorne
DomDocument->get_element_by_id | Nach oben | DomDocument->html_dump_mem


DomDocument->html_dump_mem

(no version information, might be only in CVS)

DomDocument->html_dump_mem -- Schreibt den internen XML-Baum als HTML in eine Zeichenkette

Beschreibung

string DomDocument->html_dump_mem ( void )

Generiert ein HTML-Dokument aus der aktuellen DOM-Repräsentation. Diese Funktion wird normalerweise aufgerufen, nachdem ein DOM-Dokument erzeugt wurde.

Beispiel 1. Generierung eins HTML-Headers

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("Das ist der Titel");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->html_dump_mem());
echo "</PRE>";
?>

See also DomDocument_dump_file(), DomDocument_html_dump_mem().

Zurück | Zum Anfang | Nach vorne
DomDocument->get_elements_by_tagname | Nach oben | DomDocument->xinclude


DomDocument->xinclude

(no version information, might be only in CVS)

DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object.

Description

int DomDocument->xinclude ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomDocument->html_dump_mem | Nach oben | DomDocumentType->entities


DomDocumentType->entities

(no version information, might be only in CVS)

DomDocumentType->entities -- Returns list of entities

Description

array DomDocumentType->entities ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomDocument->xinclude | Nach oben | DomDocumentType->internal_subset


DomDocumentType->internal_subset

(no version information, might be only in CVS)

DomDocumentType->internal_subset -- Returns internal subset

Description

bool DomDocumentType->internal_subset ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomDocumentType->entities | Nach oben | DomDocumentType->name


DomDocumentType->name

(no version information, might be only in CVS)

DomDocumentType->name -- Returns name of document type

Description

string DomDocumentType->name ( void )

This function returns the name of the document type.

Zurück | Zum Anfang | Nach vorne
DomDocumentType->internal_subset | Nach oben | DomDocumentType->notations


DomDocumentType->notations

(no version information, might be only in CVS)

DomDocumentType->notations -- Returns list of notations

Description

array DomDocumentType->notations ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomDocumentType->name | Nach oben | DomDocumentType->public_id


DomDocumentType->public_id

(no version information, might be only in CVS)

DomDocumentType->public_id -- Returns public id of document type

Description

string DomDocumentType->public_id ( void )

This function returns the public id of the document type.

The following example echos nothing.

Beispiel 1. Retrieving the public id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->public_id();
?>

Zurück | Zum Anfang | Nach vorne
DomDocumentType->notations | Nach oben | DomDocumentType->system_id


DomDocumentType->system_id

(no version information, might be only in CVS)

DomDocumentType->system_id -- Returns system id of document type

Description

string DomDocumentType->system_id ( void )

Returns the system id of the document type.

The following example echos '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'.

Beispiel 1. Retrieving the system id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->system_id();
?>

Zurück | Zum Anfang | Nach vorne
DomDocumentType->public_id | Nach oben | DomElement->get_attribute_node


DomElement->get_attribute_node

(no version information, might be only in CVS)

DomElement->get_attribute_node -- Returns value of attribute

Description

object DomElement->get_attribute_node ( object attr)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomDocumentType->system_id | Nach oben | DomElement->get_attribute


DomElement->get_attribute

(no version information, might be only in CVS)

DomElement->get_attribute -- Returns value of attribute

Description

object DomElement->get_attribute ( string name)

Returns the attribute with name name of the current node.

(PHP >= 4.3 only) If no attribute with given name is found, an empty string is returned.

See also domelement_set_attribute()

Zurück | Zum Anfang | Nach vorne
DomElement->get_attribute_node | Nach oben | DomElement->get_elements_by_tagname


DomElement->get_elements_by_tagname

(no version information, might be only in CVS)

DomElement->get_elements_by_tagname -- Gets elements by tagname

Description

bool DomElement->get_elements_by_tagname ( string name)

This function returns an array with all the elements which has name as his tagname. Every element of the array is a DomElement.

Beispiel 1. Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++) {
    $node = $node_array[$i];
    echo "The element[$i] is: " . $node->get_content();
}

?>

Zurück | Zum Anfang | Nach vorne
DomElement->get_attribute | Nach oben | DomElement->has_attribute


DomElement->has_attribute

(no version information, might be only in CVS)

DomElement->has_attribute -- Checks to see if attribute exists

Description

bool DomElement->has_attribute ( string name)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomElement->get_elements_by_tagname | Nach oben | DomElement->remove_attribute


DomElement->remove_attribute

(no version information, might be only in CVS)

DomElement->remove_attribute -- Removes attribute

Description

bool DomElement->remove_attribute ( string name)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomElement->has_attribute | Nach oben | DomElement->set_attribute


DomElement->set_attribute

(no version information, might be only in CVS)

DomElement->set_attribute -- Adds new attribute

Description

bool DomElement->set_attribute ( string name, string value)

Sets an attribute with name name to the given value. If the attribute does not exist, it will be created.

Beispiel 1. Setting an attribute

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

See also domelement_get_attribute().

Zurück | Zum Anfang | Nach vorne
DomElement->remove_attribute | Nach oben | DomElement->tagname


DomElement->tagname

(no version information, might be only in CVS)

DomElement->tagname -- Returns name of element

Description

string DomElement->tagname ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomElement->set_attribute | Nach oben | DomNode->add_namespace


DomNode->add_namespace

(no version information, might be only in CVS)

DomNode->add_namespace -- Adds a namespace declaration to a node.

Description

bool DomNode->add_namespace ( string uri, string prefix)

See also domdocument_create_element_ns(), and domnode_set_namespace()

Zurück | Zum Anfang | Nach vorne
DomElement->tagname | Nach oben | DomNode->append_child


DomNode->append_child

(no version information, might be only in CVS)

DomNode->append_child -- Adds new child at the end of the children

Description

object DomNode->append_child ( object newnode)

This functions appends a child to an existing list of children or creates a new list of children. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

(PHP < 4.3) Before a new child is appended it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the appended child. If you plan to do further modifications on the appended child you must use the returned node.

(PHP 4.3.0/4.3.1) The new child newnode is first unlinked from its existing context, if it's already a child of DomNode. Therefore the node is moved and not copies anymore.

(PHP >= 4.3.2) The new child newnode is first unlinked from its existing context, if it's already in the tree. Therefore the node is moved and not copied. This is the behaviour according to the W3C specifications. If you want to duplicate large parts of an XML document, use DomNode->clone_node() before appending.

The following example will add a new element node to a fresh document and sets the attribute "align" to "left".

Beispiel 1. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>
The above example could also be written as the following:

Beispiel 2. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node->set_attribute("align", "left");
$newnode = $doc->append_child($node);
?>
A more complex example is the one below. It first searches for a certain element, duplicates it including its children and adds it as a sibling. Finally a new attribute is added to one of the children of the new sibling and the whole document is dumped.

Beispiel 3. Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$parent = $element->parent_node();
$newnode = $parent->append_child($element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<pre>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</pre>";
?>
The above example could also be done with domnode_insert_before() instead of domnode_append_child().

See also domnode_insert_before(), and domnode_clone_node().

Zurück | Zum Anfang | Nach vorne
DomNode->add_namespace | Nach oben | DomNode->append_sibling


DomNode->append_sibling

(no version information, might be only in CVS)

DomNode->append_sibling -- Adds new sibling to a node

Description

object DomNode->append_sibling ( object newnode)

This functions appends a sibling to an existing node. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

Before a new sibling is added it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the added sibling. If you plan to do further modifications on the added sibling you must use the returned node.

This function has been added to provide the behaviour of domnode_append_child() as it works till PHP 4.2.

See also domnode_append_before().

Zurück | Zum Anfang | Nach vorne
DomNode->append_child | Nach oben | DomNode->attributes


DomNode->attributes

(no version information, might be only in CVS)

DomNode->attributes -- Returns list of attributes

Description

array DomNode->attributes ( void )

This function only returns an array of attributes if the node is of type XML_ELEMENT_NODE.

(PHP >= 4.3 only) If no attributes are found, NULL is returned.

Zurück | Zum Anfang | Nach vorne
DomNode->append_sibling | Nach oben | DomNode->child_nodes


DomNode->child_nodes

(no version information, might be only in CVS)

DomNode->child_nodes -- Returns children of node

Description

array DomNode->child_nodes ( void )

Returns all children of the node.

See also domnode_next_sibling(), and domnode_previous_sibling().

Zurück | Zum Anfang | Nach vorne
DomNode->attributes | Nach oben | DomNode->clone_node


DomNode->clone_node

(no version information, might be only in CVS)

DomNode->clone_node -- Clones a node

Description

object DomNode->clone_node ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomNode->child_nodes | Nach oben | DomNode->dump_node


DomNode->dump_node

(no version information, might be only in CVS)

DomNode->dump_node -- Dumps a single node

Description

string DomNode->dump_node ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also domdocument_dump_mem().

Zurück | Zum Anfang | Nach vorne
DomNode->clone_node | Nach oben | DomNode->first_child


DomNode->first_child

(no version information, might be only in CVS)

DomNode->first_child -- Returns first child of node

Description

object DomNode->first_child ( void )

Returns the first child of the node.

(PHP >= 4.3 only) If no first child is found, NULL is returned.

See also domnode_last_child(), and
domnode_next_sibling(),
domnode_previous_sibling().

Zurück | Zum Anfang | Nach vorne
DomNode->dump_node | Nach oben | DomNode->get_content


DomNode->get_content

(no version information, might be only in CVS)

DomNode->get_content -- Gets content of node

Description

string DomNode->get_content ( void )

This function returns the content of the actual node.

Beispiel 1. Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++) {
    $node = $node_array[$i];
    echo "The element[$i] is: " . $node->get_content();
}

?>

Zurück | Zum Anfang | Nach vorne
DomNode->first_child | Nach oben | DomNode->has_attributes


DomNode->has_attributes

(no version information, might be only in CVS)

DomNode->has_attributes -- Checks if node has attributes

Description

bool DomNode->has_attributes ( void )

This function checks if the node has attributes.

See also domnode_has_child_nodes().

Zurück | Zum Anfang | Nach vorne
DomNode->get_content | Nach oben | DomNode->has_child_nodes


DomNode->has_child_nodes

(no version information, might be only in CVS)

DomNode->has_child_nodes -- Checks if node has children

Description

bool DomNode->has_child_nodes ( void )

This function checks if the node has children.

See also domnode_child_nodes().

Zurück | Zum Anfang | Nach vorne
DomNode->has_attributes | Nach oben | DomNode->insert_before


DomNode->insert_before

(no version information, might be only in CVS)

DomNode->insert_before -- Inserts new node as child

Description

object DomNode->insert_before ( object newnode, object refnode)

This function inserts the new node newnode right before the node refnode. The return value is the inserted node. If you plan to do further modifications on the appended child you must use the returned node.

(PHP >= 4.3 only) If newnode already is part of a document, it will be first unlinked from its existing context. If refnode is NULL, then newnode will be inserted at the end of the list of children.

domnode_insert_before() is very similar to domnode_append_child() as the following example shows which does the same as the example at domnode_append_child().

Beispiel 1. Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$newnode = $element->insert_before($element, $element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<pre>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</pre>";
?>

See also domnode_append_child().

Zurück | Zum Anfang | Nach vorne
DomNode->has_child_nodes | Nach oben | DomNode->is_blank_node


DomNode->is_blank_node

(no version information, might be only in CVS)

DomNode->is_blank_node -- Checks if node is blank

Description

bool DomNode->is_blank_node ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomNode->insert_before | Nach oben | DomNode->last_child


DomNode->last_child

(no version information, might be only in CVS)

DomNode->last_child -- Returns last child of node

Description

object DomNode->last_child ( void )

Returns the last child of the node.

(PHP >= 4.3 only) If no last child is found, NULL is returned.

See also domnode_first_child(), and
domnode_next_sibling(),
domnode_previous_sibling().

Zurück | Zum Anfang | Nach vorne
DomNode->is_blank_node | Nach oben | DomNode->next_sibling


DomNode->next_sibling

(no version information, might be only in CVS)

DomNode->next_sibling -- Returns the next sibling of node

Description

object DomNode->next_sibling ( void )

This function returns the next sibling of the current node. If there is no next sibling it returns FALSE (< 4.3) or null (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

Beispiel 1. Iterate over children

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$child = $element->first_child();

while ($child) {
   print_r($child);
   $child = $child->next_sibling();
}
?>

See also domnode_previous_sibling().

Zurück | Zum Anfang | Nach vorne
DomNode->last_child | Nach oben | DomNode->node_name


DomNode->node_name

(no version information, might be only in CVS)

DomNode->node_name -- Returns name of node

Description

string DomNode->node_name ( void )

Returns name of the node. The name has different meanings for the different types of nodes as illustrated in the following table.

Tabelle 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | #cdata-section
DomComment | #comment
DomDocument | #document
DomDocumentType | document type name
DomElement | tag name
DomEntity | name of entity
DomEntityReference | name of entity reference
DomNotation | notation name
DomProcessingInstruction | target
DomText | #text

Zurück | Zum Anfang | Nach vorne
DomNode->next_sibling | Nach oben | DomNode->node_type


DomNode->node_type

(no version information, might be only in CVS)

DomNode->node_type -- Returns type of node

Description

int DomNode->node_type ( void )

Returns the type of the node. All possible types are listed in the table in the introduction.

Zurück | Zum Anfang | Nach vorne
DomNode->node_name | Nach oben | DomNode->node_value


DomNode->node_value

(no version information, might be only in CVS)

DomNode->node_value -- Returns value of a node

Description

string DomNode->node_value ( void )

Returns value of the node. The value has different meanings for the different types of nodes as illustrated in the following table.

Tabelle 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | content
DomComment | content of comment
DomDocument | null
DomDocumentType | null
DomElement | null
DomEntity | null
DomEntityReference | null
DomNotation | null
DomProcessingInstruction | entire content without target
DomText | content of text

Zurück | Zum Anfang | Nach vorne
DomNode->node_type | Nach oben | DomNode->owner_document


DomNode->owner_document

(no version information, might be only in CVS)

DomNode->owner_document -- Returns the document this node belongs to

Description

object DomNode->owner_document ( void )

This function returns the document the current node belongs to.

The following example will create two identical lists of children.

Beispiel 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->owner_document();
$children = $doc2->children();
print_r($children);
?>

See also domnode_insert_before().

Zurück | Zum Anfang | Nach vorne
DomNode->node_value | Nach oben | DomNode->parent_node


DomNode->parent_node

(no version information, might be only in CVS)

DomNode->parent_node -- Returns the parent of the node

Description

object DomNode->parent_node ( void )

This function returns the parent node.

(PHP >= 4.3 only) If no parent is found, NULL is returned.

The following example will show two identical lists of children.

Beispiel 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->parent_node();
$children = $doc2->children();
print_r($children);
?>

Zurück | Zum Anfang | Nach vorne
DomNode->owner_document | Nach oben | DomNode->prefix


DomNode->prefix

(no version information, might be only in CVS)

DomNode->prefix -- Returns name space prefix of node

Description

string DomNode->prefix ( void )

Returns the name space prefix of the node.

Zurück | Zum Anfang | Nach vorne
DomNode->parent_node | Nach oben | DomNode->previous_sibling


DomNode->previous_sibling

(no version information, might be only in CVS)

DomNode->previous_sibling -- Returns the previous sibling of node

Description

object DomNode->previous_sibling ( void )

This function returns the previous sibling of the current node. If there is no previous sibling it returns FALSE (< 4.3) or NULL (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

See also domnode_next_sibling().

Zurück | Zum Anfang | Nach vorne
DomNode->prefix | Nach oben | DomNode->remove_child


DomNode->remove_child

(no version information, might be only in CVS)

DomNode->remove_child -- Removes child from list of children

Description

object DomNode->remove_child ( object oldchild)

This functions removes a child from a list of children. If child cannot be removed or is not a child the function will return FALSE. If the child could be removed the functions returns the old child.

Beispiel 1. Removing a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$children = $element->child_nodes();
$child = $element->remove_child($children[0]);

echo "<PRE>";
$xmlfile = $dom->dump_mem(true);
echo htmlentities($xmlfile);
echo "</PRE>";
?>

See also domnode_append_child().

Zurück | Zum Anfang | Nach vorne
DomNode->previous_sibling | Nach oben | DomNode->replace_child


DomNode->replace_child

(no version information, might be only in CVS)

DomNode->replace_child -- Replaces a child

Description

object DomNode->replace_child ( object oldnode, object newnode)

(PHP 4.2) This function replaces the child oldnode with the passed new node. If the new node is already a child it will not be added a second time. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned.

(PHP 4.3) This function replaces the child oldnode with the passed newnode, even if the new node already is a child of the DomNode. If newnode was already inserted in the document it is first unlinked from its existing context. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned. (This behaviour is according to the W3C specs).

See also domnode_append_child()

Zurück | Zum Anfang | Nach vorne
DomNode->remove_child | Nach oben | DomNode->replace_node


DomNode->replace_node

(no version information, might be only in CVS)

DomNode->replace_node -- Replaces node

Description

object DomNode->replace_node ( object newnode)

(PHP 4.2) This function replaces an existing node with the passed new node. Before the replacement newnode is copied if it has a parent to make sure a node which is already in the document will not be inserted a second time. This behaviour enforces doing all modifications on the node before the replacement or to refetch the inserted node afterwards with functions like domnode_first_child(), domnode_child_nodes() etc..

(PHP 4.3) This function replaces an existing node with the passed new node. It is not copied anymore. If newnode was already inserted in the document it is first unlinked from its existing context. If the replacement succeeds the old node is returned.

See also domnode_append_child()

Zurück | Zum Anfang | Nach vorne
DomNode->replace_child | Nach oben | DomNode->set_content


DomNode->set_content

(no version information, might be only in CVS)

DomNode->set_content -- Sets content of node

Description

bool DomNode->set_content ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomNode->replace_node | Nach oben | DomNode->set_name


DomNode->set_name

(no version information, might be only in CVS)

DomNode->set_name -- Sets name of node

Description

bool DomNode->set_name ( void )

Sets name of node.

See also domnode_node_name().

Zurück | Zum Anfang | Nach vorne
DomNode->set_content | Nach oben | DomNode->set_namespace


DomNode->set_namespace

(no version information, might be only in CVS)

DomNode->set_namespace -- Sets namespace of a node.

Description

void DomNode->set_namespace ( string uri [, string prefix])

Sets the namespace of a node to uri. If there is already a namespace declaration with the same uri in one of the parent nodes of the node, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one.

See also domdocument_create_element_ns(), and domnode_add_namespace()

Zurück | Zum Anfang | Nach vorne
DomNode->set_name | Nach oben | DomNode->unlink_node


DomNode->unlink_node

(no version information, might be only in CVS)

DomNode->unlink_node -- Deletes node

Description

object DomNode->unlink_node ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomNode->set_namespace | Nach oben | DomProcessingInstruction->data


DomProcessingInstruction->data

(no version information, might be only in CVS)

DomProcessingInstruction->data -- Returns data of pi node

Description

string DomProcessingInstruction->data ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomNode->unlink_node | Nach oben | DomProcessingInstruction->target


DomProcessingInstruction->target

(no version information, might be only in CVS)

DomProcessingInstruction->target -- Returns target of pi node

Description

string DomProcessingInstruction->target ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DomProcessingInstruction->data | Nach oben | DomXsltStylesheet->process


DomXsltStylesheet->process

(no version information, might be only in CVS)

DomXsltStylesheet->process -- Applies the XSLT-Transformation on a DomDocument Object.

Description

object DomXsltStylesheet->process ( object DomDocument [, array xslt_parameters [, bool param_is_xpath]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also  domxml_xslt_stylesheet(),
domxml_xslt_stylesheet_file(), and
domxml_xslt_stylesheet_doc()

Zurück | Zum Anfang | Nach vorne
DomProcessingInstruction->target | Nach oben | DomXsltStylesheet->result_dump_file


DomXsltStylesheet->result_dump_file

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_file -- Dumps the result from a XSLT-Transformation into a file

Description

string DomXsltStylesheet->result_dump_file ( object DomDocument, string filename)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

This function is only available since PHP 4.3

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data. This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction of how to use it.

Beispiel 1. Saving the result of a XSLT transformation in a file

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_file($result, "filename");
?>

See also domxml_xslt_result_dump_mem(), and domxml_xslt_process()

Zurück | Zum Anfang | Nach vorne
DomXsltStylesheet->process | Nach oben | DomXsltStylesheet->result_dump_mem


DomXsltStylesheet->result_dump_mem

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_mem -- Dumps the result from a XSLT-Transformation back into a string

Description

string DomXsltStylesheet->result_dump_mem ( object DomDocument)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

This function is only available since PHP 4.3

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data. This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction of how to use it.

Beispiel 1. Outputting the result of a XSLT transformation

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_mem($result);
?>

See also domxml_xslt_result_dump_file(), and domxml_xslt_process()

Zurück | Zum Anfang | Nach vorne
DomXsltStylesheet->result_dump_file | Nach oben | domxml_new_doc


domxml_new_doc

(PHP 4 >= 4.2.1)

domxml_new_doc -- Creates new empty XML document

Description

object domxml_new_doc ( string version)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Creates a new dom document from scratch and returns it.

See also domdocument_add_root()

Zurück | Zum Anfang | Nach vorne
DomXsltStylesheet->result_dump_mem | Nach oben | domxml_open_file


domxml_open_file

(PHP 4 >= 4.2.1)

domxml_open_file -- Creates a DOM object from XML file

Description

object domxml_open_file ( string filename)

The function parses the XML document in the file named filename and returns an object of class "Dom document", having the properties as listed above. The file is accessed read-only.

Beispiel 1. Opening an XML document from a file

<?php

if (!$dom = domxml_open_file("example.xml")) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

See also domxml_open_mem(), and domxml_new_doc().

Zurück | Zum Anfang | Nach vorne
domxml_new_doc | Nach oben | domxml_open_mem


domxml_open_mem

(PHP 4 >= 4.2.1)

domxml_open_mem -- Creates a DOM object of an XML document

Description

object domxml_open_mem ( string str)

The function parses the XML document in str and returns an object of class "Dom document", having the properties as listed above. This function, domxml_open_file() or domxml_new_doc() must be called before any other function calls.

Beispiel 1. Opening an XML document in a string

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

See also domxml_open_file(), and domxml_new_doc().

Zurück | Zum Anfang | Nach vorne
domxml_open_file | Nach oben | domxml_version


domxml_version

(PHP 4 >= 4.1.0)

domxml_version -- Get XML library version

Description

string domxml_version ( void )

This function returns the version of the XML library version currently used.

Zurück | Zum Anfang | Nach vorne
domxml_open_mem | Nach oben | domxml_xmltree


domxml_xmltree

(PHP 4 >= 4.2.1)

domxml_xmltree -- Creates a tree of PHP objects from an XML document

Description

object domxml_xmltree ( string str)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

The function parses the XML document in str and returns a tree PHP objects as the parsed document. This function is isolated from the other functions, which means you cannot access the tree with any of the other functions. Modifying it, for example by adding nodes, makes no sense since there is currently no way to dump it as an XML file. However this function may be valuable if you want to read a file and investigate the content.

Zurück | Zum Anfang | Nach vorne
domxml_version | Nach oben | domxml_xslt_stylesheet_doc


domxml_xslt_stylesheet_doc

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object.

Description

object domxml_xslt_stylesheet_doc ( object DocDocument Object)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also domxsltstylesheet->process(),
domxml_xslt_stylesheet(), and
domxml_xslt_stylesheet_file().

Zurück | Zum Anfang | Nach vorne
domxml_xmltree | Nach oben | domxml_xslt_stylesheet_file


domxml_xslt_stylesheet_file

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from an XSL document in a file.

Description

object domxml_xslt_stylesheet_file ( string xsl file)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also domxsltstylesheet->process(),
domxml_xslt_stylesheet(), and
domxml_xslt_stylesheet_doc()

Zurück | Zum Anfang | Nach vorne
domxml_xslt_stylesheet_doc | Nach oben | domxml_xslt_stylesheet


domxml_xslt_stylesheet

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet -- Creates a DomXsltStylesheet Object from an XML document in a string.

Description

object domxml_xslt_stylesheet ( string xsl document)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also domxsltstylesheet->process(),
domxml_xslt_stylesheet_file(), and
domxml_xslt_stylesheet_doc()

Zurück | Zum Anfang | Nach vorne
domxml_xslt_stylesheet_file | Nach oben | xpath_eval_expression


xpath_eval_expression

(PHP 4 >= 4.0.4)

xpath_eval_expression -- Evaluates the XPath Location Path in the given string

Description

array xpath_eval_expression ( object xpath_context)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

See also xpath_eval().

Zurück | Zum Anfang | Nach vorne
domxml_xslt_stylesheet | Nach oben | xpath_eval


xpath_eval

(PHP 4 >= 4.0.4)

xpath_eval -- Evaluates the XPath Location Path in the given string

Description

array xpath_eval ( object xpath context, string xpath expression [, object contextnode])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

The optional contextnode can be specified for doing relative XPath queries.

See also xpath_new_context().

Zurück | Zum Anfang | Nach vorne
xpath_eval_expression | Nach oben | xpath_new_context


xpath_new_context

(PHP 4 >= 4.0.4)

xpath_new_context -- Creates new xpath context

Description

object xpath_new_context ( object dom document)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

See also xpath_eval().

Zurück | Zum Anfang | Nach vorne
xpath_eval | Nach oben | xptr_eval


xptr_eval

(PHP 4 >= 4.0.4)

xptr_eval -- Evaluate the XPtr Location Path in the given string

Description

int xptr_eval ( [object xpath_context, string eval_str])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xpath_new_context | Nach oben | xptr_new_context


xptr_new_context

(PHP 4 >= 4.0.4)

xptr_new_context -- Create new XPath Context

Description

string xptr_new_context ( [object doc_handle])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xptr_eval | Nach oben | .NET Funktionen


.NET Funktionen

PHP Handbuch
Zurück Nach vorne

XXV. .NET Funktionen

Inhaltsverzeichnis
dotnet_load -- Lädt ein DOTNET Modul

Zurück | Zum Anfang | Nach vorne
xptr_new_context | Nach oben | dotnet_load


dotnet_load

(no version information, might be only in CVS)

dotnet_load -- Lädt ein DOTNET Modul

Beschreibung

int dotnet_load ( string assembly_name [, string datatype_name [, int codepage]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
.NET Funktionen | Nach oben | Error Handling and Logging Functions


Error Handling and Logging Functions

PHP Handbuch
Zurück Nach vorne

XXVI. Error Handling and Logging Functions

Einführung

These are functions dealing with error handling and logging. They allow you to define your own error handling rules, as well as modify the way the errors can be logged. This allows you to change and enhance error reporting to suit your needs.

With the logging functions, you can send messages directly to other machines, to an email (or email to pager gateway!), to system logs, etc., so you can selectively log and monitor the most important parts of your applications and websites.

The error reporting functions allow you to customize what level and kind of error feedback is given, ranging from simple notices to customized functions returned during errors.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Errors and Logging Configuration Options

Name | Default | Changeable
error_reporting | E_ALL & ~E_NOTICE | PHP_INI_ALL
display_errors | "1" | PHP_INI_ALL
display_startup_errors | "0" | PHP_INI_ALL
log_errors | "0" | PHP_INI_ALL
log_errors_max_len | "1024" | PHP_INI_ALL
ignore_repeated_errors | "0" | PHP_INI_ALL
ignore_repeated_source | "0" | PHP_INI_ALL
report_memleaks | "1" | PHP_INI_ALL
track_errors | "0" | PHP_INI_ALL
html_errors | "1" | PHP_INI_ALL
docref_root | "" | PHP_INI_ALL
docref_ext | "" | PHP_INI_ALL
error_prepend_string | NULL | PHP_INI_ALL
error_append_string | NULL | PHP_INI_ALL
error_log | NULL | PHP_INI_ALL
warn_plus_overloading | NULL | PHP_INI??
For further details and definition of the PHP_INI_* constants see ini_set().

Hier eine kurze Erklärung der Konfigurationsoptionen:

error_reporting integer

Set the error reporting level. The parameter is either an integer representing a bit field, or named constants. The error_reporting levels and constants are described in Predefined Constants, and in php.ini. To set at runtime, use the error_reporting() function. See also the display_errors directive.

In PHP 4 and PHP 5 the default value is E_ALL & ~E_NOTICE. This setting does not show E_NOTICE level errors. You may want to show them during development.

Anmerkung: Enabling E_NOTICE during development has some benefits. For debugging purposes: NOTICE messages will warn you about possible bugs in your code. For example, use of unassigned values is warned. It is extremely useful to find typos and to save time for debugging. NOTICE messages will warn you about bad style. For example, $arr[item] is better to be written as $arr['item'] since PHP tries to treat "item" as constant. If it is not a constant, PHP assumes it is a string index for the array.

Anmerkung: In PHP 5 a new error level E_STRICT is available. As E_STRICT is not included within E_ALL you have to explicitly enable this kind of error level. Enabling E_STRICT during development has some benefits. STRICT messages will help you to use the latest and greatest suggested method of coding, for example warn you about using deprecated functions.

In PHP 3, the default setting is (E_ERROR | E_WARNING | E_PARSE), meaning the same thing. Note, however, that since constants are not supported in PHP 3's php3.ini, the error_reporting setting there must be numeric; hence, it is 7.

display_errors boolean

This determines whether errors should be printed to the screen as part of the output or if they should be hidden from the user.

Anmerkung: This is a feature to support your development and should never be used on production systems (e.g. systems connected to the internet).

display_startup_errors boolean

Even when display_errors is on, errors that occur during PHP's startup sequence are not displayed. It's strongly recommended to keep display_startup_errors off, except for debugging.

log_errors boolean

Tells whether script error messages should be logged to the server's error log or error_log. This option is thus server-specific.

Anmerkung: You're strongly advised to use error logging in place of error displaying on production web sites.

log_errors_max_len integer

Set the maximum length of log_errors in bytes. In error_log information about the source is added. The default is 1024 and 0 allows to not apply any maximum length at all.

ignore_repeated_errors boolean

Do not log repeated messages. Repeated errors must occur in the same file on the same line until ignore_repeated_source is set true.

ignore_repeated_source boolean

Ignore source of message when ignoring repeated messages. When this setting is On you will not log errors with repeated messages from different files or sourcelines.

report_memleaks boolean

If this parameter is set to Off, then memory leaks will not be shown (on stdout or in the log). This has only effect in a debug compile, and if error_reporting includes E_WARNING in the allowed list

track_errors boolean

If enabled, the last error message will always be present in the variable $php_errormsg.

html_errors boolean

Turn off HTML tags in error messages. The new format for HTML errors produces clickable messages that direct the user to a page describing the error or function in causing the error. These references are affected by docref_root and docref_ext.

docref_root string

The new error format contains a reference to a page describing the error or function causing the error. In case of manual pages you can download the manual in your language and set this ini directive to the URL of your local copy. If your local copy of the manual can be reached by '/manual/' you can simply use docref_root=/manual/. Additional you have to set docref_ext to match the fileextensions of your copy docref_ext=.html. It is possible to use external references. For example you can use docref_root=http://manual/en/ or docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"

Most of the time you want the docref_root value to end with a slash '/'. But see the second example above which does not have nor need it.

Anmerkung: This is a feature to support your development since it makes it easy to lookup a function description. However it should never be used on production systems (e.g. systems connected to the internet).

docref_ext string

See docref_root.

Anmerkung: The value of docref_ext must begin with a dot '.'.

error_prepend_string string

String to output before an error message.

error_append_string string

String to output after an error message.

error_log string

Name of the file where script errors should be logged. If the special value syslog is used, the errors are sent to the system logger instead. On Unix, this means syslog(3) and on Windows NT it means the event log. The system logger is not supported on Windows 95. See also: syslog().

warn_plus_overloading boolean

If enabled, this option makes PHP output a warning when the plus (+) operator is used on strings. This is to make it easier to find scripts that need to be rewritten to using the string concatenator instead (.).

Vordefinierte Konstanten

Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.

Anmerkung: Sie können diese Konstanten innerhalb von php.ini benutzen, aber nicht ausserhalb von PHP, wie etwa in der httpd.conf, wo Sie stattdessen die Werte der Bitmasken benutzen sollten.

Tabelle 2. Fehler und Meldungen

Wert | Konstante | Beschreibung | Bemerkung
1 | E_ERROR (integer) | Fatale Laufzeit-Fehler. Dies zeigt Fehler an, die nicht behoben werden können. Beispielsweise Probleme bei der Speicherzuweisung. Die Ausführung des Skripts wird abgebrochen. |
2 | E_WARNING (integer) | Warnungen (keine fatalen Fehler) zur Laufzeit des Skripts. Das Skript wird nicht abgebrochen. |
4 | E_PARSE (integer) | Parser-Fehler während der Übersetzung. Parser-Fehler können nur vom Parser erzeugt werden. |
8 | E_NOTICE (integer) | Benachrichtigungen während der Laufzeit. Sie zeigen an, dass im Skript irgend etwas gefunden wurde, was einen Fehler verursachen könnte. Es ist aber genauso möglich, dass Benachrichtigungen im ordnungsgemäßen Ablauf eines Skripts ausgegeben werden. |
16 | E_CORE_ERROR (integer) | Fatale Fehler, die beim Starten von PHP auftreten. Diese sind ähnlich wie E_ERROR, nur dass diese Fehlermeldungen vom PHP-Kern erzeugt werden. | nur in PHP 4
32 | E_CORE_WARNING (integer) | Warnungen (keine fatalen Fehler), die beim Starten von PHP auftreten. Diese sind ähnlich wie E_WARNING, nur dass diese Warnungen vom PHP-Kern erzeugt werden. | nur in PHP 4
64 | E_COMPILE_ERROR (integer) | Fatale Fehler zur Übersetzungszeit. Diese sind ähnlich wie E_ERROR, nur dass diese Fehlermeldungen von der Zend Scripting Engine erzeugt werden. | nur in PHP 4
128 | E_COMPILE_WARNING (integer) | Warnungen zur Übersetzungszeit. Diese sind ähnlich wie E_WARNING, nur dass diese Warnungen von der Zend Scripting Engine erzeugt werden. | nur in PHP 4
256 | E_USER_ERROR (integer) | Benutzerdefinierte Fehlermeldungen. Diese sind ähnlich wie E_ERROR, nur dass diese Fehlermeldungen im PHP-Code mit trigger_error() erzeugt werden. | nur in PHP 4
512 | E_USER_WARNING (integer) | Benutzerdefinierte Warnungen. Diese sind ähnlich wie E_WARNING, nur dass diese Warnungen im PHP-Code mit trigger_error() erzeugt werden. | nur in PHP 4
1024 | E_USER_NOTICE (integer) | Benutzerdefinierte Benachrichtigung. Diese sind ähnlich wie E_NOTICE, nur dass diese Benachrichtigungen im PHP-Code mit trigger_error() erzeugt werden. | nur in PHP 4
2047 | E_ALL (integer) | Alle Fehler und Warnungen die unterstützt werden, mit Ausnahme von E_STRICT. |
2048 | E_STRICT (integer) | Benachrichtigungen des Laufzeitsystems. Damit erhalten Sie von PHP Vorschläge für Änderungen des Programmcodes, die eine bestmögliche Interoperabilität und zukünftige Kompatibilität Ihres Codes gewährleisten. | nur in PHP 5

Mit den obengennnten Werten (sowohl nummerisch als auch mit den Konstanten) wird eine Bitmaske erzeugt, die festlegt, welche Fehler angezeigt werden sollen. Mit den Bit Operatoren können Sie diese Werte kombinieren oder bestimmte Fehlertypen ausmaskieren. Beachten Sie, dass innerhalb von php.ini jedoch nur '|', '~', '!', ^ and '&' verstanden wird und dass php3.ini keine Bit Operatoren kennt.

Beispiele

Below we can see an example of using the error handling capabilities in PHP. We define an error handling function which logs the information into a file (using an XML format), and e-mails the developer in case a critical error in the logic happens.

Beispiel 1. Using error handling in a script

<?php
// we will do our own error handling
error_reporting(0);

// user defined error handling function
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
    // timestamp for the error entry
    $dt = date("Y-m-d H:i:s (T)");

    // define an assoc array of error string
    // in reality the only entries we should
    // consider are E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING and E_USER_NOTICE
    $errortype = array (
                E_ERROR           => "Error",
                E_WARNING         => "Warning",
                E_PARSE           => "Parsing Error",
                E_NOTICE          => "Notice",
                E_CORE_ERROR      => "Core Error",
                E_CORE_WARNING    => "Core Warning",
                E_COMPILE_ERROR   => "Compile Error",
                E_COMPILE_WARNING => "Compile Warning",
                E_USER_ERROR      => "User Error",
                E_USER_WARNING    => "User Warning",
                E_USER_NOTICE     => "User Notice",
                E_STRICT          => "Runtime Notice"
                );
    // set of errors for which a var trace will be saved
    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

    $err = "<errorentry>\n";
    $err .= "\t<datetime>" . $dt . "</datetime>\n";
    $err .= "\t<errornum>" . $errno . "</errornum>\n";
    $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
    $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
    $err .= "\t<scriptname>" . $filename . "</scriptname>\n";
    $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

    if (in_array($errno, $user_errors))
        $err .= "\t<vartrace>" . wddx_serialize_value($vars, "Variables") . "</vartrace>\n";
    $err .= "</errorentry>\n\n";

    // for testing
    // echo $err;

    // save to the error log, and e-mail me if there is a critical user error
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR) {
        mail("phpdev@example.com", "Critical User Error", $err);
    }
}

function distance($vect1, $vect2)
{
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Vectors need to be of the same size", E_USER_ERROR);
        return NULL;
    }

    for ($i=0; $i<count($vect1); $i++) {
        $c1 = $vect1[$i]; $c2 = $vect2[$i];
        $d = 0.0;
        if (!is_numeric($c1)) {
            trigger_error("Coordinate $i in vector 1 is not a number, using zero",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Coordinate $i in vector 2 is not a number, using zero",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// undefined constant, generates a warning
$t = I_AM_NOT_DEFINED;

// define some "vectors"
$a = array(2, 3, "foo");
$b = array(5.5, 4.3, -1.6);
$c = array(1, -3);

// generate a user error
$t1 = distance($c, $b) . "\n";

// generate another user error
$t2 = distance($b, "i am not an array") . "\n";

// generate a warning
$t3 = distance($a, $b) . "\n";

?>

Siehe auch

See also syslog().

Inhaltsverzeichnis
debug_backtrace -- Erzeugt Daten zur Ablaufverfolgung
debug_print_backtrace -- Druckt die Daten für eine Ablaufverfolgung
error_log -- Sendet eine Fehlermeldung
error_reporting -- Gibt an, welche PHP-Fehlermeldungen angezeigt werden
restore_error_handler -- Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion
set_error_handler -- Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung.
trigger_error -- Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung
user_error -- Alias von trigger_error()

Zurück | Zum Anfang | Nach vorne
dotnet_load | Nach oben | debug_backtrace


debug_backtrace

(PHP 4 >= 4.3.0, PHP 5)

debug_backtrace -- Erzeugt Daten zur Ablaufverfolgung

Beschreibung

array debug_backtrace ( void )

debug_backtrace() erzeugt Daten zur Ablaufverfolgung und gibt diese Informationen in einem assoziativen array zurück. Die möglichen zurückgegebenen Arrayelemente sind in der folgenden Tabelle aufgelistet:

Tabelle 1. Als zurückgegebene Arrayelemente von debug_backtrace() sind möglich:

Name | Typ | Beschreibung
function | string | Der Name der aktuell ausgeführten Funktion. Siehe auch __FUNCTION__.
line | integer | Die aktuelle Zeilennummer. Siehe auch __LINE__.
file | string | Der aktuelle Dateiname. Siehe auch __FILE__.
class | string | Der aktuelle class - Name. Siehe auch __CLASS__
type | string | Der aktuelle Typ des Aufrufs. Falls der Aufruf in einer Methode erfolgte, wird "->" zurückgegeben. Falls der Aufruf aus einer statischen Funktion erfolgte, wird "::" zurückgegeben und falls der Aufruf aus einer Funktion erfolgte, wird nichts zurückgegeben.
args | array | Falls der Aufruf aus einer Funktion erfolgte, werden hier die Funktionsargumente aufgelistet. Falls der Aufruf aus einer eingebundenen Datei erfolgte, werden die Namen der Include-Dateien angegeben.

Hier folgt ein einfaches Beispiel.

Beispiel 1. debug_backtrace() Beispiel

// Dateiname: /tmp/a.php
<?php

function a_test($str)
{

    echo "\nHi: $str";

    var_dump(debug_backtrace());
}

a_test('friend');
?>

// Dateiname: b.php
<?php
include_once '/tmp/a.php';
?>

Ergebnisse beim Aufruf von /tmp/b.php:

Hi: friend
array(2) {
  [0]=>
  array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
  }
  [1]=>
  array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

Siehe auch trigger_error() und debug_print_backtrace().

Zurück | Zum Anfang | Nach vorne
Error Handling and Logging Functions | Nach oben | debug_print_backtrace


debug_print_backtrace

(PHP 5)

debug_print_backtrace -- Druckt die Daten für eine Ablaufverfolgung

Beschreibung

void debug_print_backtrace ( void )

debug_print_backtrace() druckt die Daten für eine PHP Ablaufverfolgung.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch debug_backtrace().

Zurück | Zum Anfang | Nach vorne
debug_backtrace | Nach oben | error_log


error_log

(PHP 3, PHP 4 , PHP 5)

error_log -- Sendet eine Fehlermeldung

Beschreibung

int error_log ( string message, int message_type [, string destination [, string extra_headers]])

Sendet eine Fehlermeldung an das Log-File des Webservers, einen TCP Port oder eine Datei. Der erste Parameter, message, ist die Fehlermeldung, die mitgeschrieben werden soll. Der zweite Parameter, message_type gibt an, wo die Meldung abgelegt werden soll:

Tabelle 1. error_log() Typen

0 | Message wird mit Hilfe des internen Log-Systems des Betriebssystemes oder einer Datei geschrieben, je nachdem, wie error_log eingestellt ist.
1 | Message wird via Email an die Adresse gesendet, die mit destination angegeben wurde. Dies ist der einzige Typ, bei dem der vierte Parameter extra_headers verwendet wird. Die Nachricht verwendet dieselbe interne Funktion wie mail().
2 | Message wird über den PHP-Debugger gesendet. Diese Option ist nur verfügbar, wenn der Debugger gestartet wurde. Ist das der Fall, so wird mit dem destination Parameter der Hostname oder die IP-Adresse gesetzt. Optional auch der Port, unter dem der Debugger läuft.
3 | Message wird an die Datei angefügt, die mit destination angegeben wurde.

Beispiel 1. error_log() Beispiele

<?php
// Server sendet eine Nachricht an den Administrator,
// dass keine Verbindung zur Datenbank möglich ist.
if (!Ora_Logon($username, $password)) {
    error_log ("Oracle database not available!", 0);
}

// Server sendet eine Nachricht an den Administrator, dass FOO langsam ausgeht
if (!($foo = allocate_new_foo()) {
    error_log ("Big trouble, we're all out of FOOs!", 1,
               "operator@mydomain.com");
}

// Andere Möglichkeiten, error_log() aufzurufen:
error_log ("You messed up!", 2, "127.0.0.1:7000");
error_log ("You messed up!", 2, "loghost");
error_log ("You messed up!", 3, "/var/tmp/my-errors.log");
?>

Zurück | Zum Anfang | Nach vorne
debug_print_backtrace | Nach oben | error_reporting


error_reporting

(PHP 3, PHP 4 , PHP 5)

error_reporting -- Gibt an, welche PHP-Fehlermeldungen angezeigt werden

Beschreibung

int error_reporting ( [int level])

Mit error_reporting() wird die error_reporting Direktive zur Laufzeit des Programms gesetzt. In PHP gibt es viele Stufen für die Anzeige von Fehlermeldungen, die mit dieser Funktion für die Dauer der Programmausführung eingestellt werden kann.

error_reporting() setzt die neue Stufe und gibt die alte zurück. Der Parameter level erwartet entweder eine Bitmaske oder den Namen einer Konstante. Es wird dringend empfohlen, Konstantennamen zu verwenden, um die Kompatibilität mit zukünftigen Versionen zu garantieren. Weil die Stufen addiert werden, vergrössert sich der integer-Zahlbereich, weswegen ältere, integer-basierte Stufen sich möglicherweise anders verhalten, als Sie es erwarten.

Einige Beispiele:

Beispiel 1. error_reporting() Beispiele

<?php

// Fehlermeldungen ganz abschalten
error_reporting(0);

// Einfache Laufzeitfehler melden
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Benachrichtigungen von E_NOTICE können sinnvoll sein (um
// auf nicht initialisierte Variablen oder falsch geschriebene
// Variablennamen aufmerksam zu machen ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Alle Fehler ausser E_NOTICE melden
// Dies ist die Standardeinstellung in php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Alle PHP-Fehler melden (in PHP 3 kann die Bitmaske
// 63 verwendet werden)
error_reporting(E_ALL);

// Dasselbe wie error_reporting(E_ALL);
ini_set ('error_reporting', E_ALL);

?>

Die verfügbaren Konstanten für die Ausgabe der Fehlermeldungen sind unten angegeben. Die aktuellen Bedeutungen dieser Stufen sind bei den predefined constants beschrieben

Tabelle 1. error_reporting() Konstanten und Bitwerte

Bitwert | Konstante
1 | E_ERROR
2 | E_WARNING
4 | E_PARSE
8 | E_NOTICE
16 | E_CORE_ERROR
32 | E_CORE_WARNING
64 | E_COMPILE_ERROR
128 | E_COMPILE_WARNING
256 | E_USER_ERROR
512 | E_USER_WARNING
1024 | E_USER_NOTICE
2047 | E_ALL
2048 | E_STRICT

Warnung

Die Konstante E_STRICT mit dem Wert 2048 ist ab PHP > 5.0.0 verfügbar. Die Konstante E_ALL enthält die Stufe E_STRICT NICHT.

Siehe auch display_errors Directive und ini_set().

Zurück | Zum Anfang | Nach vorne
error_log | Nach oben | restore_error_handler


restore_error_handler

(PHP 4 >= 4.0.1, PHP 5)

restore_error_handler -- Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion

Beschreibung

void restore_error_handler ( void )

Diese Funktion wird benutzt, um eine mit set_error_handler() gesetzte Fehlerbehandlungsfunktion wieder zurückzusetzen und zur zuvor benutzten Fehlerbehandlung zurückzukehren. (Dies kann entweder eine eingebaute oder eine benutzerdefinierte Funktion sein.)

Siehe auch error_reporting(),
set_error_handler() und
trigger_error().

Zurück | Zum Anfang | Nach vorne
error_reporting | Nach oben | set_error_handler


set_error_handler

(PHP 4 >= 4.0.1, PHP 5)

set_error_handler -- Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung.

Beschreibung

string set_error_handler ( callback error_handler)

Setzt eine benutzerdefinierte Funktion (error_handler) um Fehler in einem Skript zu bearbeiten. Die Funktion gibt die zuvor benutzte Fehlerbehandlungsroutine (falls eine definiert wurde) zurück oder FALSE, falls ein Fehler auftrat. Mit dieser Funktion können Sie Ihre eigene Behandlung von Laufzeitfehlern definieren, beispielsweise in Anwendungen, die bei einem kritischen Fehler die Löschung von Daten bzw. Dateien erfordert oder wenn es nötig ist, unter bestimmten Bedingungen (mit der Funktion trigger_error()) eine Fehlermeldung zu generieren.

Die benutzerdefinierte Funktion erwartet notwendig zwei Parameter: den Fehlercode und eine Beschreibung des Fehlers als String. Ab PHP 4.0.2 sind zudem drei optionale Parameter verfügbar: der Name der Datei, in der der Fehler auftrat, die Nummer der Zeile, in der der Fehler auftrat und der Kontext, in welchem der Fehler auftrat (ein Array, das auf den Punkt in der aktiven Symboltabelle verweist, wo der Fehler auftrat).

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array, das eine Referenz auf ein Objekt und einen Methodennamen enthält, übergeben werden. (Seit PHP 4.3.0)

Anmerkung: Die folgenden Fehlertypen können nicht von einer benutzerdefinierten Funktion behandelt werden: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR und E_COMPILE_WARNING.

Das untenstehende Beispiel zeigt die Behandlung von internen Ausnahmen, indem eine Fehlermeldung und die Behandlung des Fehlers durch eine benutzerdefinierte Funktion ausgelöst wird:

Beispiel 1. Fehlerbehandlung mit set_error_handler() und trigger_error()

<?php

// umdefinieren der Konstanten - nur in PHP 4
define("FATAL", E_USER_ERROR);
define("ERROR", E_USER_WARNING);
define("WARNING", E_USER_NOTICE);

// die Stufe für dieses Skript einstellen
error_reporting(FATAL | ERROR | WARNING);

// Fehlerbehandlungsfunktion
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
  switch ($errno) {
  case FATAL:
    echo "<b>FATAL</b> [$errno] $errstr<br />\n";
    echo "  Fatal error in line $errline of file $errfile";
    echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
    echo "Aborting...<br />\n";
    exit(1);
    break;
  case ERROR:
    echo "<b>ERROR</b> [$errno] $errstr<br />\n";
    break;
  case WARNING:
    echo "<b>WARNING</b> [$errno] $errstr<br />\n";
    break;
  default:
    echo "Unkown error type: [$errno] $errstr<br />\n";
    break;
  }
}

// Funktion zum Test der Fehlerbehandlung
function scale_by_log($vect, $scale)
{
  if (!is_numeric($scale) || $scale <= 0) {
    trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale",
      FATAL);
  }

  if (!is_array($vect)) {
    trigger_error("Incorrect input vector, array of values expected", ERROR);
    return null;
  }

  for ($i=0; $i<count($vect); $i++) {
    if (!is_numeric($vect[$i]))
      trigger_error("Value at position $i is not a number, using 0 (zero)",
        WARNING);
    $temp[$i] = log($scale) * $vect[$i];
  }
  return $temp;
}

// auf die benutzerdefinierte Fehlerbehandlung umstellen
$old_error_handler = set_error_handler("myErrorHandler");

// einige Fehler auslösen, zuerst wird ein gemischtes Array
// definiert mit einem nichtnummerischen Eintrag
echo "vector a\n";
$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// ein zweites Array erzeugen, das Warnungen generiert
echo "----\nvector b - a warning (b = log(PI) * a)\n";
$b = scale_by_log($a, M_PI);
print_r($b);

// hier ist der Grund für das Problem: anstatt einem Array
// wird ein String übergeben
echo "----\nvector c - an error\n";
$c = scale_by_log("not array", 2.3);
var_dump($c);

// dies ist ein kritischer Fehler, der log() ist für null
// oder negative Werte nicht definiert
echo "----\nvector d - fatal error\n";
$d = scale_by_log($a, -2.5);

?>

Wenn Sie dieses Skript ausführen, erhalten Sie die folgende Ausgabe:

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a warning (b = log(PI) * a)
<b>WARNING</b> [1024] Value at position 2 is not a number, using 0 (zero)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - an error
<b>ERROR</b> [512] Incorrect input vector, array of values expected<br />
NULL
----
vector d - fatal error
<b>FATAL</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br />
  Fatal error in line 36 of file trigger_error.php, PHP 4.0.2 (Linux)<br />
Aborting...<br />

Es ist wichtig und darf nicht vergessen werden, dass die standardmässige PHP Fehlerbehandlung vollkommen umgangen wurde. Die Einstellungen der Funktion error_reporting() haben keine Auswirkung und Ihre eigene Fehlerbehandlungsroutine wird ohne Rücksicht darauf aufgerufen. Sie können jedoch immer noch den aktuellen Wert von error_reporting lesen und entsprechend handeln. Von besonderer Bedeutung ist, dass dieser Wert 0 sein wird, falls der Befehl, der den Fehler verurscht hat, mit dem @ error-control operator versehen ist.

Beachten Sie auch, dass Sie die() aufrufen können, wenn es notwendig ist. Wenn die Fehlerbehandlungsfunktion zurückkehrt, wird die Ausführung des Skripts beim nächsten Befehl nach dem fehlerverursachenden Befehl fortgesetzt.

Anmerkung: Falls Fehler auftreten, bevor das Skript ausgeführt wird (z. B. bei Dateiuploads), kann eine benutzerdefinierte Fehlerbehandlung nicht aufgerufen werden, weil sie zu diesem Zeitpunkt noch nicht registriert ist.

Siehe auch error_reporting(),
restore_error_handler(),
trigger_error(), und
error level constants.

Zurück | Zum Anfang | Nach vorne
restore_error_handler | Nach oben | trigger_error


trigger_error

(PHP 4 >= 4.0.1, PHP 5)

trigger_error -- Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung

Beschreibung

void trigger_error ( string error_msg [, int error_type])

Mit dieser Funktion kann der Benutzer Bedingungen festlegen, die Fehler auslösen, entweder in Verbindung mit der standardmässigen Fehlerbehandlung oder einer benutzerdefinierten Routine, die als neue Fehlerbehandlungsfunktion gesetzt wurde (set_error_handler()). Die Funktion kann nur mit den E_USER-Konstanten umgehen und benutzt standardmässig die Konstante E_USER_NOTICE.

Diese Funktion ist nützlich, wenn Sie zur Laufzeit eine bestimmte Rückmeldung bei einer Ausnahme brauchen. Zum Beispiel:

<?php
if (assert($divisor == 0)) {
  trigger_error("Cannot divide by zero", E_USER_ERROR);
}
?>

Anmerkung: Siehe set_error_handler() für ein ausführlicheres Beispiel.

Anmerkung: Die Länge von error_msg ist auf 1024 Zeichen beschränkt. Alle weiteren Zeichen über 1024 werden abgeschnitten.

Siehe auch error_reporting(),
set_error_handler(),
restore_error_handler() und
error level constants.

Zurück | Zum Anfang | Nach vorne
set_error_handler | Nach oben | user_error


user_error

user_error -- Alias von trigger_error()

Beschreibung

Diese Funktion ist ein Alias von trigger_error().

Zurück | Zum Anfang | Nach vorne
trigger_error | Nach oben | File Alteration Monitor Functions


File Alteration Monitor Functions

PHP Handbuch
Zurück Nach vorne

XXVII. File Alteration Monitor Functions

Einführung

FAM monitors files and directories, notifying interested applications of changes. More information about FAM is available at http://oss.sgi.com/projects/fam/.

A PHP script may specify a list of files for FAM to monitor using the functions provided by this extension.

The FAM process is started when the first connection from any application to it is opened. It exits after all connections to it have been closed.

Anmerkung: This extension is not available on Windows platforms.

Anforderungen

This extension uses the functions of the FAM library, devoloped by SGI. Therefore you have to download and install the FAM library.

Installation

To use PHP's FAM support you must compile PHP --with-fam[=DIR] where DIR is the location of the directory containing the lib and include directories.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

FAM resource

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Tabelle 1. FAM event constants

Constant | Description
FAMChanged (integer) | Some value which can be obtained with fstat(1) changed for a file or directory.
FAMDeleted (integer) | A file or directory was deleted or renamed.
FAMStartExecuting (integer) | An executable file started executing.
FAMStopExecuting (integer) | An executable file that was running finished.
FAMCreated (integer) | A file was created in a directory.
FAMMoved (integer) | This event never occurs.
FAMAcknowledge (integer) | An event in response to fam_cancel_monitor().
FAMExists (integer) | An event upon request to monitor a file or directory. When a directory is monitored, an event for that directory and every file contained in that directory is issued.
FAMEndExist (integer) | Event after the last FAMEExists event.
Inhaltsverzeichnis
fam_cancel_monitor -- Terminate monitoring
fam_close -- Close FAM connection
fam_monitor_collection -- Monitor a collection of files in a directory for changes
fam_monitor_directory -- Monitor a directory for changes
fam_monitor_file -- Monitor a regular file for changes
fam_next_event -- Get next pending FAM event
fam_open -- Open connection to FAM daemon
fam_pending -- Check for pending FAM events
fam_resume_monitor -- Resume suspended monitoring
fam_suspend_monitor -- Temporarily suspend monitoring

Zurück | Zum Anfang | Nach vorne
user_error | Nach oben | fam_cancel_monitor


fam_cancel_monitor

(PHP 5)

fam_cancel_monitor -- Terminate monitoring

Description

bool fam_cancel_monitor ( resource fam, resource fam_monitor)

fam_cancel_monitor() terminates monitoring on a resource previously requested using one of the fam_monitor_...(). In addition an FAMAcknowledge event occurs.

See also fam_monitor_file(),
fam_monitor_directory(),
fam_monitor_collection(), and
fam_suspend_monitor()

Zurück | Zum Anfang | Nach vorne
File Alteration Monitor Functions | Nach oben | fam_close


fam_close

(PHP 5)

fam_close -- Close FAM connection

Description

void fam_close ( resource fam)

fam_close() closes a connection to the FAM service previously opened using fam_open().

Zurück | Zum Anfang | Nach vorne
fam_cancel_monitor | Nach oben | fam_monitor_collection


fam_monitor_collection

(PHP 5)

fam_monitor_collection -- Monitor a collection of files in a directory for changes

Description

resource fam_monitor_collection ( resource fam, string dirname, int depth, string mask)

fam_monitor_collection() requests monitoring for a collection of files within a directory. The actual files to be monitored are specified by a directory path in dirname, the maximum search depth starting from this directory and a shell pattern mask restricting the file names to look for.

A FAM event will be generated whenever the status of the files change. The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_file(),
fam_monitor_directory(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Zurück | Zum Anfang | Nach vorne
fam_close | Nach oben | fam_monitor_directory


fam_monitor_directory

(PHP 5)

fam_monitor_directory -- Monitor a directory for changes

Description

resource fam_monitor_directory ( resource fam, string dirname)

fam_monitor_directory() requests monitoring for a directory and all contained files. A FAM event will be generated whenever the status of the directory (i.e. the result of function stat() on that directory) or its content (i.e. the results of readdir()) change.

The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_file(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Zurück | Zum Anfang | Nach vorne
fam_monitor_collection | Nach oben | fam_monitor_file


fam_monitor_file

(PHP 5)

fam_monitor_file -- Monitor a regular file for changes

Description

resource fam_monitor_file ( resource fam, string filename)

fam_monitor_file() requests monitoring for a single file. A FAM event will be generated whenever the file status (i.e. the result of function stat() on that file) changes.

The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_directory(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Zurück | Zum Anfang | Nach vorne
fam_monitor_directory | Nach oben | fam_next_event


fam_next_event

(PHP 5)

fam_next_event -- Get next pending FAM event

Description

array fam_next_event ( resource fam)

fam_next_event() returns the next pending FAM event. The function will block until an event is available which can be checked for using fam_pending().

fam_next_event() will return an array that contains a FAM event code in element 'code', the path of the file this event applies to in element 'filename' and optionally a hostname in element 'hostname'.

The possible event codes are described in detail in the constants part of this section.

See also fam_pending().

Zurück | Zum Anfang | Nach vorne
fam_monitor_file | Nach oben | fam_open


fam_open

(PHP 5)

fam_open -- Open connection to FAM daemon

Description

resource fam_open ( [string appname])

fam_open() opens a connection to the FAM service daemon. The optional parameter appname should be set to a string identifying the application for logging reasons.

See also fam_close().

Zurück | Zum Anfang | Nach vorne
fam_next_event | Nach oben | fam_pending


fam_pending

(PHP 5)

fam_pending -- Check for pending FAM events

Description

bool fam_pending ( resource fam)

fam_pending() returns TRUE if events are available to be fetched using fam_next_event().

See also fam_next_event().

Zurück | Zum Anfang | Nach vorne
fam_open | Nach oben | fam_resume_monitor


fam_resume_monitor

(PHP 5)

fam_resume_monitor -- Resume suspended monitoring

Description

bool fam_resume_monitor ( resource fam, resource fam_monitor)

fam_resume_monitor() resumes monitoring of a resource previously suspend using fam_suspend_monitor().

See also fam_suspend_monitor().

Zurück | Zum Anfang | Nach vorne
fam_pending | Nach oben | fam_suspend_monitor


fam_suspend_monitor

(PHP 5)

fam_suspend_monitor -- Temporarily suspend monitoring

Description

bool fam_suspend_monitor ( resource fam, resource fam_monitor)

fam_suspend_monitor() temporarily suspend monitoring of a resource previously requested using one of the fam_monitor_...() functions. Monitoring can later be continued using fam_resume_monitor() without the need of requesting a complete new monitor.

See also fam_resume_monitor(), and fam_cancel_monitor().

Zurück | Zum Anfang | Nach vorne
fam_resume_monitor | Nach oben | FrontBase Funktionen


FrontBase Funktionen

PHP Handbuch
Zurück Nach vorne

XXVIII. FrontBase Funktionen

Einführung

Über diese Funktionen können Sie auf FrontBase Datenbank-Server zugreifen. Weiterführende Informationen über FrontBase erhalten Sie unter http://www.frontbase.com/.

Die FrontBase-Dokumentation finden Sie unter http://www.frontbase.com/cgi-bin/WebObjects/FrontBase.woa/wa/productsPage?currentPage=Documentation.

Die FrontBase-Unterstützung wurde in PHP 4.0.6 eingeführt.

Anforderungen

Sie müssen den FrontBase Datenbank-Server oder die fbsql-Client-Bibliotheken installieren, um die Funktionen nutzen zu können. FrontBase können Sie über http://www.frontbase.com/ bekommen.

Installation

In order to have these functions available, you must compile PHP with fbsql support by using the --with-fbsql[=DIR] option. If you use this option without specifying the path to fbsql, PHP will search for the fbsql client libraries in the default installation location for the platform. Users who installed FrontBase in a non standard directory should always specify the path to fbsql: --with-fbsql=/path/to/fbsql. This will force PHP to use the client libraries installed by FrontBase, avoiding any conflicts.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. FrontBase configuration options

Name | Default | Changeable
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM
fbsql.autocommit | "1" | PHP_INI_SYSTEM
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM
fbsql.max_links | "128" | PHP_INI_SYSTEM
fbsql.max_connections | "128" | PHP_INI_SYSTEM
fbsql.max_results | "128" | PHP_INI_SYSTEM
fbsql.batchSize | "1000" | PHP_INI_SYSTEM
fbsql.default_host | NULL | PHP_INI_SYSTEM
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM
fbsql.default_password | "" | PHP_INI_SYSTEM
fbsql.default_database | "" | PHP_INI_SYSTEM
fbsql.default_database_password | "" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Resource Typen

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

FBSQL_ASSOC (integer)

FBSQL_NUM (integer)

FBSQL_BOTH (integer)

FBSQL_LOCK_DEFERRED (integer)

FBSQL_LOCK_OPTIMISTIC (integer)

FBSQL_LOCK_PESSIMISTIC (integer)

FBSQL_ISO_READ_UNCOMMITTED (integer)

FBSQL_ISO_READ_COMMITTED (integer)

FBSQL_ISO_REPEATABLE_READ (integer)

FBSQL_ISO_SERIALIZABLE (integer)

FBSQL_ISO_VERSIONED (integer)

FBSQL_UNKNOWN (integer)

FBSQL_STOPPED (integer)

FBSQL_STARTING (integer)

FBSQL_RUNNING (integer)

FBSQL_STOPPING (integer)

FBSQL_NOEXEC (integer)

FBSQL_LOB_DIRECT (integer)

FBSQL_LOB_HANDLE (integer)

Inhaltsverzeichnis
fbsql_affected_rows -- Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze
fbsql_autocommit -- Aktiviert oder deaktiviert Autocommit
fbsql_blob_size -- Get the size of a BLOB
fbsql_change_user -- Wechselt den eingeloggten Benutzer der aktiven Verbindun
fbsql_clob_size -- Get the size of a CLOB
fbsql_close -- Beendet eine FrontBase-Verbindung
fbsql_commit -- Wendet eine Transaktion auf die Datenbank an
fbsql_connect -- Öffnet eine Verbindung mit einem FrontBase-Server
fbsql_create_blob -- Create a BLOB
fbsql_create_clob -- Create a CLOB
fbsql_create_db -- Erstellt eine FrontBase-Datenbank
fbsql_data_seek -- Bewegt den internen Ergebnis-Zeiger
fbsql_database_password -- Sets or retrieves the password for a FrontBase database
fbsql_database -- Lesen oder setzen des Datenbanknamens, der mit einer Verbindung verwendet wird
fbsql_db_query -- Absetzen einer Anfrage an die Datenbank
fbsql_db_status -- Status einer angegebenen Datenbank überprüfen
fbsql_drop_db -- Löschen (DROP) einer FrontBase-Datenbank
fbsql_errno -- Liefert die numerische Fehlermeldung der der letzten FrontBase-Operation zurück
fbsql_error -- Liefert den Fehlertext der zuvor ausgeführten FrontBase-Operation
fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both
fbsql_fetch_assoc -- Fetch a result row as an associative array
fbsql_fetch_field -- Liefert ein Objekt mit Feldinformationen aus einem Anfrageergebnis
fbsql_fetch_lengths -- Get the length of each output in a result
fbsql_fetch_object -- Fetch a result row as an object
fbsql_fetch_row -- Liefert einen Datensatz als indiziertes Array
fbsql_field_flags -- Get the flags associated with the specified field in a result
fbsql_field_len -- Returns the length of the specified field
fbsql_field_name -- Liefert den Namen eines Feldes im Ergebnis
fbsql_field_seek -- Setzt den Ergebniszeiger auf ein bestimmtes Feldoffset
fbsql_field_table -- Liefert den Namen der Tabelle, die das genannte Feld enthält
fbsql_field_type -- Liefert den Typ eines Feldes in einem Ergebnis
fbsql_free_result -- Gibt belegten Speicher wieder frei
fbsql_get_autostart_info -- No description given yet
fbsql_hostname -- Ermittelt oder setzt den mit einer Verbindung benutzten Hostnamen
fbsql_insert_id -- Get the id generated from the previous INSERT operation
fbsql_list_dbs -- List databases available on a FrontBase server
fbsql_list_fields -- List FrontBase result fields
fbsql_list_tables -- List tables in a FrontBase database
fbsql_next_result -- Setzt den internen Ergebniskennungszeiger auf das nächste Ergebnis
fbsql_num_fields -- Anzahl der Felder in einem Ergebnis
fbsql_num_rows -- Liefert die Anzahl der Datensätze in einem Ergebnis
fbsql_password -- Liest oder setzt das Bentuzerpasswort für eine Verbindung
fbsql_pconnect -- Öffnet eine persistente Verbindung einem FrontBase-Server
fbsql_query -- Sendet eine FrontBase-Abfrage
fbsql_read_blob -- Read a BLOB from the database
fbsql_read_clob -- Read a CLOB from the database
fbsql_result -- Liefert Ergebnisdaten
fbsql_rollback -- Rollback a transaction to the database
fbsql_select_db -- Wählt eine FrontBase-Datenbank aus
fbsql_set_lob_mode -- Setzt den LOB-Lese-Modus für ein FrontBase-Ergebnis
fbsql_set_password -- Change the password for a given user
fbsql_set_transaction -- Set the transaction locking and isolation
fbsql_start_db -- Startet eine Datenbank auf einem lokalen oder entfernten Server
fbsql_stop_db -- Stoppt eine Datenbank auf einem lokalen oder entferneten Server
fbsql_tablename -- Liefert den Namen einer Tabelle
fbsql_username -- Liest oder setzt den Host-Benutzer einer Verbindung
fbsql_warnings -- Aktivieren oder Deaktivieren der FrontBase-Warnungen

Zurück | Zum Anfang | Nach vorne
fam_suspend_monitor | Nach oben | fbsql_affected_rows


fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_affected_rows -- Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze

Beschreibung

int fbsql_affected_rows ( [resource Verbindungskennung])

fbsql_affected_rows() liefert die Anzahl der von der letzten INSERT-, UPDATE- oder DELETE-Abfrage betroffenen Datensätze auf dem Server, der mit der angegebenen Verbindungskennung assoziiert ist. Wenn keine Verbindungskennung angegeben, wird die zuletzt über fbsql_connect() geöffnete Verbindung verwendet.

Anmerkung: Falls Sie Transaktionen verwenden, müssen Sie fbsql_affected_rows() unmittelbar nach Ihrer INSERT-, UPDATE-, oder DELETE-Abfrage, nicht nach dem Commit.

War die letzte Abfrage eine DELETE-Anweisung ohne WHERE-Bedingung, wurden zwar alle Datensätze aus der Tabelle gelöscht. Diese Funktion gibt in diesem Falle trotzdem Null(0) zurück.

Anmerkung: Benutzen Sie UPDATE, wird FrontBase keine Spalten aktualisieren, bei denen der Neue dem alten Wert entspricht. Die kann dazu führen, dass fbsql_affected_rows() unter umständen nicht die tatsächliche Anzahl der betroffenen Datensätze liefert, sondern nur die, die wörtlich durch die Anfrag betroffen sind.

Falls die letze Anfrage fehlschlägt, liefert diese Funktion -1 zurück.

Siehe auch: fbsql_num_rows().

Zurück | Zum Anfang | Nach vorne
FrontBase Funktionen | Nach oben | fbsql_autocommit


fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_autocommit -- Aktiviert oder deaktiviert Autocommit

Beschreibung

bool fbsql_autocommit ( resource Verbindungskennung [, bool AnAus])

Ohne den optionalen Parameter AnAus liefert fbsql_autocommit() den momentanen Autocommit-Status zurück. Wenn er angegeben ist, wird der Autocommit-Status gewechselt. Ist AnAus TRUE werden aus Abfragen resultierende Änderungen sofort in die Datenbank geschrieben (committed), wenn keine Fehler aufgetreten sind. Ist AnAus FALSE muss der Benutzer die Änderungen über fbsql_commit() schreiben (commit) oder über fbsql_rollback()die Datentransaktion rückgängig machen (rollback).

Siehe auch: fbsql_commit() und fbsql_rollback()

Zurück | Zum Anfang | Nach vorne
fbsql_affected_rows | Nach oben | fbsql_blob_size


fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_blob_size -- Get the size of a BLOB

Description

int fbsql_blob_size ( string blob_handle [, resource link_identifier])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fbsql_autocommit | Nach oben | fbsql_change_user


fbsql_change_user

(no version information, might be only in CVS)

fbsql_change_user -- Wechselt den eingeloggten Benutzer der aktiven Verbindun

Beschreibung

resource fbsql_change_user ( string Benutzer, string Passwort [, string Datenbank [, resource Verbindungskennung]])

fbsql_change_user() wechselt den eingeloggten Benutzer der momentan aktiven Verbindung oder der mit dem Parameter Verbindungskennung angegebenen Verbindung. Wenn eine Datenbank angegeben wird, wird diese nach dem Benutzerwechsel verwendet ansonsten wird weiterhin die momentane Datenbank verwendet. Wenn die Autorisation des neuen Benutzers und Passworts fehlschlägt, bleibt der momentan verbundene Benutzer aktiv.

Zurück | Zum Anfang | Nach vorne
fbsql_blob_size | Nach oben | fbsql_clob_size


fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_clob_size -- Get the size of a CLOB

Description

int fbsql_clob_size ( string clob_handle [, resource link_identifier])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fbsql_change_user | Nach oben | fbsql_close


fbsql_close

(PHP 4 >= 4.0.6, PHP 5)

fbsql_close -- Beendet eine FrontBase-Verbindung

Beschreibung

bool fbsql_close ( [resource Verbindungskennung])

Liefert TRUE bei Erfolg zurück, andernfalls FALSE.

fbsql_close() beendet eine Verbindung mit dem FrontBase-Server, welche die angegebene Verbindungskennung hat. Wenn Verbindungskennung nicht angegeben ist, wird die zuletzt geöffnete Verbindung beendet.

Die Benutzung von fbsql_close() ist normalerweise nicht nötig, da alle nicht-persistenten geöffneten Verbindungen automatisch am Ende der Scriptausführung geschlossen werden.

Beispiel 1. fbsql_close() example

<?php
    $link = fbsql_connect ("localhost", "_SYSTEM", "secret")
        or die ("Could not connect");
    print ("Connected successfully");
    fbsql_close ($link);
?>

Siehe auch: fbsql_connect() und fbsql_pconnect().

Zurück | Zum Anfang | Nach vorne
fbsql_clob_size | Nach oben | fbsql_commit


fbsql_commit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_commit -- Wendet eine Transaktion auf die Datenbank an

Beschreibung

bool fbsql_commit ( [resource Verbindungskennung])

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

fbsql_commit() beendet die momentane Transaktion durch Schreiben aller inserts, updates und deletes auf den Datenträger und Freigabe aller von der Transaktion gesperrten Reihen und Tabellen. Dieser Befehl wird nur benötigt, wenn autocommit auf FALSE gesetzt wurde.

Siehe auch: fbsql_autocommit() und fbsql_rollback()

Zurück | Zum Anfang | Nach vorne
fbsql_close | Nach oben | fbsql_connect


fbsql_connect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_connect -- Öffnet eine Verbindung mit einem FrontBase-Server

Beschreibung

resource fbsql_connect ( [string hostname [, string username [, string password]]])

Liefert bei Erfolg eine positive FrontBase-Verbindungskennung oder eine Fehlermeldung.

fbsql_connect() stellt eine Verbindung zu einem
FrontBase-Server her.  Die folgenden Standardwerte werden für fehlende, optionale Parameter gesetzt:
hostname = 'NULL',
username = '_SYSTEM' und
password = leeres Passwort.

Sollte ein zweites Mal fbsql_connect() mit den gleichen Argumenten aufgerufen werden, wird keine neue Verbindung hergestellt. In diesem Fall liefert die Funktion die Kennung der bereits bestehenden Verbindung zurück.

Die Verbindung wird geschlossen sobald die Scriptausführung beendet wird oder vorher, wenn fbsql_close() benutzt wird.

Beispiel 1. fbsql_connect()-Beispiel:

<?php

    $link = fbsql_connect ("localhost", "_SYSTEM", "geheim")
        or die ("Konnte keine Verbindung herstellen!");
    print ("Verbinden mit FrontBase erfolgreich");
    fbsql_close ($link);

?>

Siehe auch: fbsql_pconnect() und fbsql_close().

Zurück | Zum Anfang | Nach vorne
fbsql_commit | Nach oben | fbsql_create_blob


fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_blob -- Create a BLOB

Description

string fbsql_create_blob ( string blob_data [, resource link_identifier])

Returns: A resource handle to the newly created blob.

fbsql_create_blob() creates a blob from blob_data. The returned resource handle can be used with insert and update commands to store the blob in the database.

Beispiel 1. fbsql_create_blob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $filename = "blobfile.bin";
    $fp = fopen($filename, "rb");
    $blobdata = fread($fp, filesize($filename));
    fclose($fp);

    $blobHandle = fbsql_create_blob($blobdata, $link);

    $sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_clob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Zurück | Zum Anfang | Nach vorne
fbsql_connect | Nach oben | fbsql_create_clob


fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_clob -- Create a CLOB

Description

string fbsql_create_clob ( string clob_data [, resource link_identifier])

Returns: A resource handle to the newly created CLOB.

fbsql_create_clob() creates a clob from clob_data. The returned resource handle can be used with insert and update commands to store the clob in the database.

Beispiel 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $filename = "clob_file.txt";
    $fp = fopen($filename, "rb");
    $clobdata = fread($fp, filesize($filename));
    fclose($fp);

    $clobHandle = fbsql_create_clob($clobdata, $link);

    $sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Zurück | Zum Anfang | Nach vorne
fbsql_create_blob | Nach oben | fbsql_create_db


fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_create_db -- Erstellt eine FrontBase-Datenbank

Beschreibung

bool fbsql_create_db ( string Datenbankname [, resource Verbindungskennung])

fbsql_create_db() versucht eine neue Datenbank mit dem Namen Datenbankname auf dem mit der Verbindungskennung spezifizierten Server anzulegen.

Beispiel 1. fbsql_create_db() Beispiel

<?php
    $link = fbsql_pconnect ("localhost", "_SYSTEM", "geheim")
        or die ("Konnte nicht verbinden");
    if (fbsql_create_db ("my_db")) {
        print("Datenbank erfolgreich erstellt\n");
    } else {
        printf("Fehler beim Erstellen der Datenbank: %s\n", fbsql_error ());
    }
?>

Siehe auch: fbsql_drop_db().

Zurück | Zum Anfang | Nach vorne
fbsql_create_clob | Nach oben | fbsql_data_seek


fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_data_seek -- Bewegt den internen Ergebnis-Zeiger

Beschreibung

bool fbsql_data_seek ( resource Ergebniskennung, int Datensatznummer)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

bewegt den internen Datensatz-Zeiger eines Anfrageergebnisses zum Datensatz mit der übergebenen Nummer.

fbsql_data_seek() bewegt den internen Datensatz-Zeiger eines FrontBase-Abfrageergebnisses zum Datensatz mit der übergebenen Nummer. Der nächste Aufruf von fbsql_fetch_row() liefert den entsprechenden Datensatz.

Die Datensatznummer beginnt bei 0.

Beispiel 1. fbsql_data_seek() Beispiel

<?php
    $verbindung = fbsql_pconnect ("localhost", "_SYSTEM", "geheim")
        or die ("Verbindung nicht möglich");

    fbsql_select_db ("samp_db")
        or die ("Konnte Datenbank nicht auswählen");

    $abfrage = "SELECT nachname, vorname FROM freunde;";
    $ergebnis = fbsql_query ($abfrage)
        or die ("Abfrage gescheitert");

    # Datensätze in umgekehrter Reihenfolge holen

    for ($i = fbsql_num_rows ($ergebnis) - 1; $i >=0; $i--) {
        if (!fbsql_data_seek ($ergebnis, $i)) {
            printf ("Konnte nicht zum Datensatz %d wechseln\n", $i);
            continue;
        }

        if(!($row = fbsql_fetch_object ($ergebnis)))
            continue;

        printf("%s %s<BR>\n", $row->nachname, $row->vorname);
    }

    fbsql_free_result ($result);
?>

Zurück | Zum Anfang | Nach vorne
fbsql_create_db | Nach oben | fbsql_database_password


fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database_password -- Sets or retrieves the password for a FrontBase database

Description

string fbsql_database_password ( resource link_identifier [, string database_password])

Returns: The database password associated with the link identifier.

fbsql_database_password() sets and retrieves the database password used by the connection. if a database is protected by a database password, the user must call this function before calling fbsql_select_db(). if the second optional parameter is given the function sets the database password for the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

This function does not change the database password in the database nor can it be used to retrieve the database password for a database.

Beispiel 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    fbsql_database_password($link, "secret db password");
    fbsql_select_db($database, $link);
?>

See also: fbsql_connect(),
fbsql_pconnect() and
fbsql_select_db().

Zurück | Zum Anfang | Nach vorne
fbsql_data_seek | Nach oben | fbsql_database


fbsql_database

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database -- Lesen oder setzen des Datenbanknamens, der mit einer Verbindung verwendet wird

Beschreibung

string fbsql_database ( resource Verbindungskennung [, string Datenbank])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fbsql_database_password | Nach oben | fbsql_db_query


fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_db_query -- Absetzen einer Anfrage an die Datenbank

Beschreibung

resource fbsql_db_query ( string Datenbank, string Abfrage [, resource Verbindungskennung])

Liefert die positive FrontBase-Ergebniskennung des Abfrageergebnisses oder FALSE bei einem Fehler.

fbsql_db_query() wählt eine Datenbank aus und führt darauf eine Abfrage aus. Wenn die optionale Verbindungskennung nicht angegeben ist, wir die Funktion nach einer geöffneten Verbindung zum FrontBase-Server suchen. Wenn keine Verbindung gefunden wird, versucht die Funktion eine Verbindung herzustellen. Dies geschiet so, als ob fbsql_connect() ohne Argumente aufgerufen wurde.

Siehe auch fbsql_connect().

Zurück | Zum Anfang | Nach vorne
fbsql_database | Nach oben | fbsql_db_status


fbsql_db_status

(PHP 4 >= 4.1.0, PHP 5)

fbsql_db_status -- Status einer angegebenen Datenbank überprüfen

Beschreibung

int fbsql_db_status ( string Datenbankname [, resource Verbindungskennung])

Rückgabewert: Einen Integer-Wert des momentanen Datenbankstatus.

fbsql_db_status() fragt den momentanen Status der Datenbank, die mit Datenbankname spezifiziert wurde, ab. Wenn Verbindungskennung nicht angegeben ist, wird die standardmäßige Verbindungskennung verwendet.

Der Rückgabewert ist einer der folgenden Konstanten:

  • FALSE - Der Ausführungshandler für den Host war ungültig. Dieser Fehler tritt auf wenn die Verbindungskennung direkt zu einer Datenbank über eine Portnummer verbindet. FBExec kann auf dem Server verfügbar sein, aber es wurde keine Verbindung wurde hergestellt.

  • FBSQL_UNKNOWN - Der Status ist unbekannt.

  • FBSQL_STOPPED - Die Datenbank läft nicht. Benutzen Sie fbsql_start_db(), um die Datenbank zu starten.

  • FBSQL_STARTING - Die Datenbank startet.

  • FBSQL_RUNNING - Die Datenbank läft und kann für SQL-Operationen benutzt werden.

  • FBSQL_STOPPING - Die Datenbank stoppt.

  • FBSQL_NOEXEC - FBExec wird auf dem Server nicht ausgeführt und es ist nicht möglich, den Status der Datenbank auszulesen.

Siehe auch: fbsql_start_db() und fbsql_stop_db().

Zurück | Zum Anfang | Nach vorne
fbsql_db_query | Nach oben | fbsql_drop_db


fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_drop_db -- Löschen (DROP) einer FrontBase-Datenbank

Beschreibung

bool fbsql_drop_db ( string Datenbankname [, resource Verbindungskennung])

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

fbsql_drop_db() entfernt eine ganze Datenbank von dem Server, der mit der Verbindungkennung assoziert ist.

Zurück | Zum Anfang | Nach vorne
fbsql_db_status | Nach oben | fbsql_errno


fbsql_errno

(PHP 4 >= 4.0.6, PHP 5)

fbsql_errno -- Liefert die numerische Fehlermeldung der der letzten FrontBase-Operation zurück

Beschreibung

int fbsql_errno ( [resource Verbindungskennung])

Liefert die Fehlernummer der letzten fbsql-Funktion oder 0 (zero), wenn kein Fehler aufgetreten ist.

Fehler, die vom FrontBase Datenbank-Backend kommen führen nicht zu Warnungen. Stattdessen sollten Sie die Funktion fbsql_errno() verwenden, um die Fehlernummer auszulesen. Beachten Sie, dass diese Funktion nur die Fehlernummer der zuletzt ausgeführten fbsql-Funktion zurückliefert (ausgenommen sind die Funktionen fbsql_error() und fbsql_errno()). Wenn Sie diese Funktion verwenden wollen, sollten Sie den Wert überprüfen, bevor Sie eine weitere fbsql-Funktion ausführen.

<?php
fbsql_connect("marliesle");
echo fbsql_errno().": ".fbsql_error()."<BR>";
fbsql_select_db("nicht_existierende_datenbank");
echo fbsql_errno().": ".fbsql_error()."<BR>";
$conn = fbsql_query("SELECT * FROM nicht_existierende_tabelle;");
echo fbsql_errno().": ".fbsql_error()."<BR>";
?>

Siehe auch: fbsql_error() und fbsql_warnings().

Zurück | Zum Anfang | Nach vorne
fbsql_drop_db | Nach oben | fbsql_error


fbsql_error

(PHP 4 >= 4.0.6, PHP 5)

fbsql_error -- Liefert den Fehlertext der zuvor ausgeführten FrontBase-Operation

Beschreibung

string fbsql_error ( [resource Verbindungskennung])

Liefert den Fehlertext der zuletzt ausgeführten fbsql-Funktion, oder '' (eine leere Zeichenkette), falls kein Fehler aufgetreten ist.

Fehler, die vom FrontBase-Server kommen, führen nicht mehr zu einer Ausgabe von Warnungen. Stattdessen sollten Sie die Funktion fbsql_error() verwenden, um den Fehlertext zu erhalten. Beachten Sie, dass diese Funktion nur den Fehlertext der zuletzt ausgeführten fbsql-Operation liefert (ausgenommen sind die Funktionen fbsql_error() und fbsql_errno()). Wenn Sie die Funktion verwenden wollen, sollten Sie den Wert überprüfen, bevor Sie eine weitere fbsql-Funktion aufrufen.

<?php
fbsql_connect("marliesle");
echo fbsql_errno().": ".fbsql_error()."<BR>";
fbsql_select_db("nicht_existierende_datenbank");
echo fbsql_errno().": ".fbsql_error()."<BR>";
$conn = fbsql_query("SELECT * FROM nicht_existierende_tabelle;");
echo fbsql_errno().": ".fbsql_error()."<BR>";
?>

Siehe auch: fbsql_errno() und fbsql_warnings().

Zurück | Zum Anfang | Nach vorne
fbsql_errno | Nach oben | fbsql_fetch_array


fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both

Description

array fbsql_fetch_array ( resource result [, int result_type])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_array() is an extended version of fbsql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must the numeric index of the column or make an alias for the column.

select t1.f1 as foo t2.f1 as bar from t1, t2

An important thing to note is that using fbsql_fetch_array() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

The optional second argument result_type in fbsql_fetch_array() is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

For further details, see also fbsql_fetch_row() and fbsql_fetch_assoc().

Beispiel 1. fbsql_fetch_array() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select user_id, fullname from table");
while ($row = fbsql_fetch_array($result)) {
    echo "user_id: " . $row["user_id"] . "<br />\n";
    echo "user_id: " . $row[0] . "<br />\n";
    echo "fullname: " . $row["fullname"] . "<br />\n";
    echo "fullname: " . $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

Zurück | Zum Anfang | Nach vorne
fbsql_error | Nach oben | fbsql_fetch_assoc


fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_assoc -- Fetch a result row as an associative array

Description

array fbsql_fetch_assoc ( resource result)

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_assoc() is equivalent to calling fbsql_fetch_array() with FBSQL_ASSOC for the optional second parameter. It only returns an associative array. This is the way fbsql_fetch_array() originally worked. If you need the numeric indices as well as the associative, use fbsql_fetch_array().

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use fbsql_fetch_array() and have it return the numeric indices as well.

An important thing to note is that using fbsql_fetch_assoc() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

For further details, see also fbsql_fetch_row() and fbsql_fetch_array().

Beispiel 1. fbsql_fetch_assoc() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_assoc($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result($result);
?>

Zurück | Zum Anfang | Nach vorne
fbsql_fetch_array | Nach oben | fbsql_fetch_field


fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_field -- Liefert ein Objekt mit Feldinformationen aus einem Anfrageergebnis

Beschreibung

object fbsql_fetch_field ( resource Ergebnis-Kennung [, int Feld-Offset])

Gibt ein Objekt mit Feldinformationen zurück.

fbsql_fetch_field() kann benutzt werden, um Informationen über Felder in einem bestimmten Anfrageergebnis zu erhalten. Wenn der Feld-Offset nicht angegeben wird, werden die Information des nächsten, noch nicht mit fbsql_fetch_field() erfragten Feldes, geliefert.

Die Eigenschaften des Objekts sind:

  • name - Feldname

  • table - Name der Tabelle zu der das Feld gehört

  • max_length - maximale Länge des Feldes

  • not_null - 1, wenn das Feld nicht NULL sein kann

  • type - der Typ des Feldes

Beispiel 1. fbsql_fetch_field() Beispiel

<?php
fbsql_connect ($host, $user, $password)
    or die ("Keine Verbindung möglich");
$result = fbsql_db_query ("database", "select * from table")
    or die ("Abfrage gescheitert");
# get column metadata
$i = 0;
while ($i < fbsql_num_fields ($result)) {
    echo "Information für Feld $i:<BR>\n";
    $meta = fbsql_fetch_field ($result);
    if (!$meta) {
        echo "Keine Information verfügbar<BR>\n";
    }
    echo "<PRE>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</PRE>";
    $i++;
}
fbsql_free_result ($result);
?>

Siehe auch fbsql_field_seek().

Zurück | Zum Anfang | Nach vorne
fbsql_fetch_assoc | Nach oben | fbsql_fetch_lengths


fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_lengths -- Get the length of each output in a result

Description

array fbsql_fetch_lengths ( [resource result])

Returns: An array that corresponds to the lengths of each field in the last row fetched by fbsql_fetch_row(), or FALSE on error.

fbsql_fetch_lengths() stores the lengths of
each result column in the last row returned by
fbsql_fetch_row(),
fbsql_fetch_array() and
fbsql_fetch_object() in an array, starting at
offset 0.

See also: fbsql_fetch_row().

Zurück | Zum Anfang | Nach vorne
fbsql_fetch_field | Nach oben | fbsql_fetch_object


fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_object -- Fetch a result row as an object

Description

object fbsql_fetch_object ( resource result [, int result_type])

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_object() is similar to fbsql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

The optional argument result_type is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

Speed-wise, the function is identical to fbsql_fetch_array(), and almost as quick as fbsql_fetch_row() (the difference is insignificant).

Beispiel 1. fbsql_fetch_object() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result($result);
?>

See also: fbsql_fetch_array() and fbsql_fetch_row().

Zurück | Zum Anfang | Nach vorne
fbsql_fetch_lengths | Nach oben | fbsql_fetch_row


fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_row -- Liefert einen Datensatz als indiziertes Array

Beschreibung

array fbsql_fetch_row ( resource Ergebnis-Kennung)

Rückgabewert: Ein Array das der Ergebniszeile entspricht oder FALSE wenn keine weiteren Zeilen verfügbar sind.

fbsql_fetch_row() liefert einen Datensatz aus dem Anfrageergebnis mit der übergebenen Kennung. Der Datensatz wird als Array geliefert. Jedes Feld wird in einem Array-Offset abgelegt, der Offset beginnt bei 0.

Wiederholtes Aufrufen von fbsql_fetch_row() liefert den nächsten Datensatz des Anfrageergebnisses oder FALSE, wenn keine weiteren Datensätze verfügbar sind.

Siehe auch: fbsql_fetch_array(),
fbsql_fetch_object(),
fbsql_data_seek(),
fbsql_fetch_lengths() und
fbsql_result().

Zurück | Zum Anfang | Nach vorne
fbsql_fetch_object | Nach oben | fbsql_field_flags


fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_flags -- Get the flags associated with the specified field in a result

Description

string fbsql_field_flags ( resource result, int field_offset)

fbsql_field_flags() returns the field flags of the specified field. The flags are reported as a single word per flag separated by a single space, so that you can split the returned value using explode().

Zurück | Zum Anfang | Nach vorne
fbsql_fetch_row | Nach oben | fbsql_field_len


fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_len -- Returns the length of the specified field

Description

int fbsql_field_len ( resource result, int field_offset)

fbsql_field_len() returns the length of the specified field.

Zurück | Zum Anfang | Nach vorne
fbsql_field_flags | Nach oben | fbsql_field_name


fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_name -- Liefert den Namen eines Feldes im Ergebnis

Beschreibung

string fbsql_field_name ( resource Ergebnis, int Feldindex)

fbsql_field_name() liefert den Namen des angegebenen Feldindexes. Ergebnis muss eine gültige Ergebniskennung sein und Feldindex der numerische Offset des Feldes.

Anmerkung: field_index beginnt bei 0.

z.B. Der Feldindex des dritten Feldes ist 2, der Index des vierten 3 u.s.w.

Beispiel 1. fbsql_field_name() Beispiel

<?php
// The users table consists of three fields:
//   user_id
//   username
//   password.

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

Das vorherige Beispiel würde folgende Ausgabe produzieren:

user_id
passwort

Zurück | Zum Anfang | Nach vorne
fbsql_field_len | Nach oben | fbsql_field_seek


fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_seek -- Setzt den Ergebniszeiger auf ein bestimmtes Feldoffset

Beschreibung

bool fbsql_field_seek ( resource Ergebnis, int Feldoffset)

Setzt den Feldzeiger auf den angegeben Feldoffset. Wird beim nächsten Aufruf von fbsql_fetch_field() kein Feldoffset übergeben, wird der Feldoffset zurückgeliefert, der bei fbsql_field_seek() angegeben wurde.

Siehe auch: fbsql_fetch_field().

Zurück | Zum Anfang | Nach vorne
fbsql_field_name | Nach oben | fbsql_field_table


fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_table -- Liefert den Namen der Tabelle, die das genannte Feld enthält

Beschreibung

string fbsql_field_table ( resource Ergebnis-Kennung, int Feldoffset)

Liefert den Namen der Tabelle, die das genannte Feld enthält.

Zurück | Zum Anfang | Nach vorne
fbsql_field_seek | Nach oben | fbsql_field_type


fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_type -- Liefert den Typ eines Feldes in einem Ergebnis

Beschreibung

string fbsql_field_type ( resource Ergebnis, int Feldoffset)

fbsql_field_type() ist ähnlich zur Funktion fbsql_field_name(). Die Argumente sind identisch, allerdings wird der Feldtyp stattdessen zurückgeliefert. Der Feldtyp ist einer der folgenden Werte: "int", "real", "string", "blob", und andere näher in der FrontBase Dokumentation beschriebene Werte.

Beispiel 1. fbsql_field_type() Beispiel

<?php

fbsql_connect ("localhost", "_SYSTEM", "");
fbsql_select_db ("wisconsin");
$result = fbsql_query ("SELECT * FROM onek;");
$fields = fbsql_num_fields ($result);
$rows   = fbsql_num_rows ($result);
$i = 0;
$table = fbsql_field_table ($result, $i);
echo "Ihre '".$table."' Tabelle hat ".$fields." Felder und ".$rows." Datensaetze <BR>";
echo "Die Tabelle hat die folgenden Felder <BR>";
while ($i < $fields) {
    $type  = fbsql_field_type  ($result, $i);
    $name  = fbsql_field_name  ($result, $i);
    $len   = fbsql_field_len   ($result, $i);
    $flags = fbsql_field_flags ($result, $i);
    echo $type." ".$name." ".$len." ".$flags."<BR>";
    $i++;
}
fbsql_close();

?>

Zurück | Zum Anfang | Nach vorne
fbsql_field_table | Nach oben | fbsql_free_result


fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_free_result -- Gibt belegten Speicher wieder frei

Description

bool fbsql_free_result ( resource Ergebnis-Kennung)

fbsql_free_result() gibt den Speicher frei, der mit der Ergebnis-Kennung assoziert ist.

Die Funktion muss nur dann aufgerufen werden, wenn Sie sich bei Anfragen, die große Ergebnismengen liefern, Sorgen über den Speicherverbrauch zur Laufzeit des PHP-Skripts machen. Nach Ablauf des PHP-Skripts wird der Speicher ohnehin freigegeben.

Zurück | Zum Anfang | Nach vorne
fbsql_field_type | Nach oben | fbsql_get_autostart_info


fbsql_get_autostart_info

(PHP 4 >= 4.1.0, PHP 5)

fbsql_get_autostart_info -- No description given yet

Description

array fbsql_get_autostart_info ( [resource link_identifier])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fbsql_free_result | Nach oben | fbsql_hostname


fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5)

fbsql_hostname -- Ermittelt oder setzt den mit einer Verbindung benutzten Hostnamen

Beschreibung

string fbsql_hostname ( resource Verbindungskennung [, string host_name])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fbsql_get_autostart_info | Nach oben | fbsql_insert_id


fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5)

fbsql_insert_id -- Get the id generated from the previous INSERT operation

Description

int fbsql_insert_id ( [resource link_identifier])

fbsql_insert_id() returns the ID generated for an column defined as DEFAULT UNIQUE by the previous INSERT query using the given link_identifier. If link_identifier isn't specified, the last opened link is assumed.

fbsql_insert_id() returns 0 if the previous query does not generate an DEFAULT UNIQUE value. If you need to save the value for later, be sure to call fbsql_insert_id() immediately after the query that generates the value.

Anmerkung: The value of the FrontBase SQL function fbsql_insert_id() always contains the most recently generated DEFAULT UNIQUE value, and is not reset between queries.

Zurück | Zum Anfang | Nach vorne
fbsql_hostname | Nach oben | fbsql_list_dbs


fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_dbs -- List databases available on a FrontBase server

Description

resource fbsql_list_dbs ( [resource link_identifier])

fbsql_list_dbs() will return a result pointer containing the databases available from the current fbsql daemon. Use the fbsql_tablename() function to traverse this result pointer.

Beispiel 1. fbsql_list_dbs() example

$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}

The above example would produce the following output:

database1
database2
database3
...

Anmerkung: The above code would just as easily work with fbsql_fetch_row() or other similar functions.

Zurück | Zum Anfang | Nach vorne
fbsql_insert_id | Nach oben | fbsql_list_fields


fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_fields -- List FrontBase result fields

Description

resource fbsql_list_fields ( string database_name, string table_name [, resource link_identifier])

fbsql_list_fields() retrieves information
about the given tablename. Arguments are the database name and
the table name. A result pointer is returned which can be used
with fbsql_field_flags(),
fbsql_field_len(),
fbsql_field_name(), and
fbsql_field_type().

A result identifier is a positive integer. The function returns FALSE if an error occurs. A string describing the error will be placed in $phperrmsg, and unless the function was called as @fbsql() then this error string will also be printed out.

Beispiel 1. fbsql_list_fields() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

The above example would produce the following output:

field1
field2
field3
...

Zurück | Zum Anfang | Nach vorne
fbsql_list_dbs | Nach oben | fbsql_list_tables


fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_tables -- List tables in a FrontBase database

Description

resource fbsql_list_tables ( string database [, resource link_identifier])

fbsql_list_tables() takes a database name and returns a result pointer much like the fbsql_db_query() function. The fbsql_tablename() function should be used to extract the actual table names from the result pointer.

Zurück | Zum Anfang | Nach vorne
fbsql_list_fields | Nach oben | fbsql_next_result


fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_next_result -- Setzt den internen Ergebniskennungszeiger auf das nächste Ergebnis

Beschreibung

bool fbsql_next_result ( resource result_id)

Wenn mehr als eine SQL-Anweisung an den Server gesendet wird oder eine gespeicherte Prozedur mit mehreren Ergebnissen ausgeführt wird, liefert der Server mehrere Ergebnisse zurück. Diese Funktion überprüft auf zusätzliche auf dem Server verfügbare Ergebnisse. Wenn weitere Ergebnisse existieren, wird das existierende Ergebnis geleert und mit dem nächsten Ergebnis gefüllt. Die Funktion liefert TRUE zurück, wenn ein zusätzliches Ergebnis verfügbar war, ansonsten wird FALSE zurückgeliefert.

Beispiel 1. fbsql_next_result() Beispiel

<?php
    $link = fbsql_connect ("localhost", "_SYSTEM", "secret");
    fbsql_select_db("MyDB", $link);
    $SQL = "Select * from table1; select * from table2;";
    $rs = fbsql_query($SQL, $link);
    do {
        while ($row = fbsql_fetch_row($rs)) {
        }
    } while (fbsql_next_result($rs));
    fbsql_free_result($rs);
    fbsql_close ($link);
?>

Zurück | Zum Anfang | Nach vorne
fbsql_list_tables | Nach oben | fbsql_num_fields


fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_fields -- Anzahl der Felder in einem Ergebnis

Beschreibung

int fbsql_num_fields ( resource Ergebniskennung)

fbsql_num_fields() liefert die Anzahl der Felder zurück.

Siehe auch:
fbsql_db_query(),
fbsql_query(),
fbsql_fetch_field() und
fbsql_num_rows().

Zurück | Zum Anfang | Nach vorne
fbsql_next_result | Nach oben | fbsql_num_rows


fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_rows -- Liefert die Anzahl der Datensätze in einem Ergebnis

Beschreibung

int fbsql_num_rows ( resource Ergebnis-Kennung)

fbsql_num_rows() liefert die Anzahl der Datensaätze einer Ergebnismenge. Diese Funktion ist nur für SELECT-Abfragen gültig. Um die Anzahl der betroffenen Datensätze bei INSERT-, UPDATE- oder DELETE-Abfragen zu ermittelt, müssen Sie die Funktion fbsql_affected_rows() verwenden.

Beispiel 1. fbsql_num_rows() Beispiel

<?php

$link = fbsql_connect("localhost", "username", "passwort");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows Rows\n";

?>

Siehe auch: fbsql_affected_rows(),
fbsql_connect(),
fbsql_select_db() und
fbsql_query().

Zurück | Zum Anfang | Nach vorne
fbsql_num_fields | Nach oben | fbsql_password


fbsql_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_password -- Liest oder setzt das Bentuzerpasswort für eine Verbindung

Beschreibung

string fbsql_password ( resource Verbindungskennung [, string Passwort])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fbsql_num_rows | Nach oben | fbsql_pconnect


fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_pconnect -- Öffnet eine persistente Verbindung einem FrontBase-Server

Beschreibung

resource fbsql_pconnect ( [string Server [, string Benutzername [, string Benutzerkennwort]]])

Rückgabewert: Eine positive, MySQL-persistente Verbindungs-Kennung im Erfolgsfall oder FALSE im Fehlerfall.

fbsql_pconnect() baut eine Verbindung zu einem FrontBase-Server auf. Für fehlende optionale Parameter werden folgende Standardwerte angenommen: Server = 'localhost', Benutzername = "_SYSTEM" und Benutzerkennwort = leeres Kennwort.

Um die Port-Nummer für den FrontBase server zu setzen, verwenden Sie bitte die Funktion fbsql_select_db().

fbsql_pconnect() verhält sich sehr ähnlich zu fbsql_connect(), weist aber zwei wesentliche Unterschiede auf.

Erstens: vor dem Verbindungsaufbau wird zunächst versucht eine offene (persistente) Verbindung zum gleichen Host, mit dem gleichen Benutzernamen und Benutzerkennwort zu finden. Wenn das gelingt, wird die Verbindungskennung dieser Verbindung zurückgeliefert anstatt eine neue Verbindung aufzubauen.

Zweitens: die Verbindung zum SQL Server wird beim Beenden des PHP-Skripts nicht geschlossen. Sie bleibt zur zukünftigen Verwendung bestehen.

Deshalb wird dieser Verbindungstyp 'persistent' genannt.

Zurück | Zum Anfang | Nach vorne
fbsql_password | Nach oben | fbsql_query


fbsql_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_query -- Sendet eine FrontBase-Abfrage

Beschreibung

resource fbsql_query ( string Abfrage [, resource Verbindungskennung])

fbsql_query() sendet eine Abfrage an die momentan active Datenbank auf dem Server, der mit der Verbindungskennung spezifiziert ist. Wenn die Verbindungskennung nicht angegeben ist, wird die zuletzt geöffnete Verbindung verwendet. Wenn keine Verbindung offen ist, wird versucht eine Verbindung aufzubauen. Dies geschieht in der gleichen Weise, als ob fbsql_connect() was ohne Argumente aufgerufen wird.

Anmerkung: Der Abfrage-String soll immer mit einem Semikolon enden.

fbsql_query() liefert zur Überprüfung des Erfolgs der Abfrage TRUE (Nicht NULL) oder FALSE zurück. Ein TRUE-Rückgabewert bestätigt, dass die Abfrage gültig war und vom Server ausgeführt werden konnte. Über den Rückgabewert können nicht die betroffenen oder selektierten Datensätze ermittelt werden. Es ist sogar möglich, dass die Abfrage erfolgreich war, aber keine Datensätze betroffen oder selektiert werden.

Die folgende Abfrage ist syntaktisch falsch, so dass fbsql_query() fehlschlägt und FALSE zurückliefert:

Beispiel 1. fbsql_query() Beispiel

<?php
$result = fbsql_query ("SELECT * WHERE 1=1")
    or die ("Abfrage gescheitert");
?>

Die folgende Abfrage ist sematisch falsch, wenn my_col keine Spalte in der Tabelle my_tbl ist. Deshalb schlägt fbsql_query() fehl und liefert FALSE zurück:

Beispiel 2. fbsql_query() example

<?php
$result = fbsql_query ("SELECT my_col FROM my_tbl")
    or die ("Abfrage gescheitert");
?>

fbsql_query() schlägt ebenso fehl und liefert FALSE, wenn Sie keine Berechtigung zum Zugriff auf die verwiesene(n) Tabelle(n) haben.

Wenn die Abfrage ist erfolgreich ist, können Sie fbsql_num_rows() aufrufen, um herauszufinden wie viele Datensätze von einer SELECT-Abfrage zurückgeliefert wurde. Falls Sie eine DELETE-, INSERT-, REPLACE- oder UPDATE-Abfrage verwendet haben, können Sie fbsql_affected_rows() verwendet, um die betroffenen Datensätze herauszufinden.

Nur bei SELECT-Abfragen wird fbsql_query() eine neue Ergebniskennung zurück, die Sie an fbsql_result() übergeben können. Wenn die Bearbeitung des Ergebnisses abgeschlossen ist, können Sie die belegten Resourcen durch den Aufruf von fbsql_free_result() freigeben. Bei Scriptende wird der belegte Speicher automatisch freigegeben.

Siehe auch: fbsql_affected_rows(),
fbsql_db_query(),
fbsql_free_result(),
fbsql_result(),
fbsql_select_db() und
fbsql_connect().

Zurück | Zum Anfang | Nach vorne
fbsql_pconnect | Nach oben | fbsql_read_blob


fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_blob -- Read a BLOB from the database

Description

string fbsql_read_blob ( string blob_handle [, resource link_identifier])

Returns: A string containing the BLOB specified by blob_handle.

fbsql_read_blob() reads BLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_blob() to get the actual BLOB data from the database.

Beispiel 1. fbsql_read_blob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the blob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the BLOB data in the first row
    $blob_data = fbsql_read_blob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Zurück | Zum Anfang | Nach vorne
fbsql_query | Nach oben | fbsql_read_clob


fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_clob -- Read a CLOB from the database

Description

string fbsql_read_clob ( string clob_handle [, resource link_identifier])

Returns: A string containing the CLOB specified by clob_handle.

fbsql_read_clob() reads CLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_clob() to get the actual CLOB data from the database.

Beispiel 1. fbsql_read_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the clob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the CLOB data in the first row
    $clob_data = fbsql_read_clob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Zurück | Zum Anfang | Nach vorne
fbsql_read_blob | Nach oben | fbsql_result


fbsql_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_result -- Liefert Ergebnisdaten

Beschreibung

mixed fbsql_result ( resource Ergebnis-Kennung, int Datensatz [, mixed Feld])

fbsql_result() liefert den Inhalt eines Felds aus einem FrontBase-Anfrageergebnis. Das Argument Feld kann der Feldname, der Feldoffset ein Bezeichner in der Form (Tabellenname.Feldname) sein. Wenn das Feld einen Alias besitzt ('select foo as bar from...') muss der Alias anstatt des Feldnamens verwendet werden.

Wenn auf Anfrageergebnisse mit vielen Datensätzen zugegriffen werden soll, sollten Sie Funktionen, die auf ganze Datensätze zugreifen,in Betracht ziehen (siehe unten). Diese Funktionen liefern bei einem einzigen Aufruf den Inhalt mehrerer Felder und sind aus diesem Grund SEHR viel schneller als fbsql_result(). Beachten Sie auch, dass die Angabe eines numerischen Offsets für ein Feld sehr viel schneller ist als die Angabe eines Feldnamens oder tabellenname.feldname.

Aufrufe von fbsql_result() sollten nicht mit Aufrufen anderer Funktionen verschachtelt werden, die auch auf das Ergebnis zugreifen.

Empfohlende, leistungsfähigere Alternativen:
fbsql_fetch_row(),
fbsql_fetch_array() und
fbsql_fetch_object().

Zurück | Zum Anfang | Nach vorne
fbsql_read_clob | Nach oben | fbsql_rollback


fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5)

fbsql_rollback -- Rollback a transaction to the database

Description

bool fbsql_rollback ( [resource link_identifier])

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

fbsql_rollback() ends the current transaction by rolling back all statements issued since last commit. This command is only needed if autocommit is set to false.

See also: fbsql_autocommit() and fbsql_commit()

Zurück | Zum Anfang | Nach vorne
fbsql_result | Nach oben | fbsql_select_db


fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_select_db -- Wählt eine FrontBase-Datenbank aus

Beschreibung

bool fbsql_select_db ( string Datenbankname [, resource Verbindungskennung])

fbsql_select_db() setzt die momentan aktuelle Datenbank auf dem mit der Verbindungskennung assozierten Server. Wenn keine Verbindungskennung angegeben ist, wird die zuletzt geöffnete Verbindung verwendet. Wenn keine Verbindung geöffnet ist, wird die Funktion versuchen, eine Verbindung herzustellen. Dies geschiet so, als ob fbsql_connect() aufgerufen wird.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Der Client kontaktiert FBExec, um die Portnummer für die Datenbankverbindung abzufragen. Wenn der Datenbankname eine Nummer ist, wird FBExec nicht abgefragt und die Nummer als Portnummer verwendet. Der FrontBase-Server kann über FrontBase -FBExec=No -port=<port number> <database name>. gestartet werden.

Jeder nachfolgende Aufruf von fbsql_query() wird auf der aktiven Datenbank ausgeführt.

Wenn die Datenbank mit einem Passwort geschützt ist, muss vorher fbsql_database_password() aufgerufen werden.

Siehe auch

fbsql_connect(),
fbsql_pconnect(),
fbsql_database_password() und
fbsql_query().

Zurück | Zum Anfang | Nach vorne
fbsql_rollback | Nach oben | fbsql_set_lob_mode


fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_lob_mode -- Setzt den LOB-Lese-Modus für ein FrontBase-Ergebnis

Beschreibung

bool fbsql_set_lob_mode ( resource Ergebnis, string Datenbankname)

Liefert bei Erfolg TRUE zurück, andernfalls FALSE.

fbsql_set_lob_mode() setzt den Modus für das Auslesen von LOB-Daten aus der Datenbank. BLOB- und CLOB-Daten können in der FrontBase-Datenbank direkt oder indirekt gespeichert werden. Direktgespeicherte LOB-Daten werden immer ohne Berücksichtigung des gesetzten LOB-Modus geholt. Wenn die LOB-Daten kleiner als 512 Bytes sind, werden sie immer direkt gespeichert.

  • FBSQL_LOB_DIRECT - LOB-Daten werden direkt geholt. Wenn Daten aus der Datenbank mit fbsql_fetch_row() oder einer anderen fetch-Funktion geholt werden, werden alle CLOB- und BLOB-Spalten als gewöhnliche Spalten geliefert. Dies ist der Standardwert bei einem neuen FrontBase-Ergebnis

  • FBSQL_LOB_HANDLE - LOB-Daten werden als Datenhandles geholt. Wenn Daten aus der Datenbank mit fbsql_fetch_row () oder einer anderen fetch-Funtion geholt werden, werden bei indirekt gespeicherten LOB-Daten das Handle zu den eigentlichen Daten geliefert. Ein Handle wird als 27 Byte langer String mit der Formatierung "@'000000000000000000000000'" zurückgeliefert. Bei direkt gespeicherten Daten werden die Daten an sich geliefert.

Siehe auch:
    fbsql_create_blob(),
    fbsql_create_clob(),
    fbsql_read_blob() und
    fbsql_read_clob().

Zurück | Zum Anfang | Nach vorne
fbsql_select_db | Nach oben | fbsql_set_password


fbsql_set_password

(PHP 5)

fbsql_set_password -- Change the password for a given user

Description

bool fbsql_set_password ( resource link_identifier, string user, string password, string old_password)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fbsql_set_lob_mode | Nach oben | fbsql_set_transaction


fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_transaction -- Set the transaction locking and isolation

Description

void fbsql_set_transaction ( resource link_identifier, int Locking, int Isolation)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fbsql_set_password | Nach oben | fbsql_start_db


fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_start_db -- Startet eine Datenbank auf einem lokalen oder entfernten Server

Beschreibung

bool fbsql_start_db ( string Datenbankname [, resource Verbindungskennung])

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

fbsql_start_db()

Siehe auch

fbsql_db_status() und fbsql_stop_db().

Zurück | Zum Anfang | Nach vorne
fbsql_set_transaction | Nach oben | fbsql_stop_db


fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_stop_db -- Stoppt eine Datenbank auf einem lokalen oder entferneten Server

Beschreibung

bool fbsql_stop_db ( string Datenbankname [, resource Verbindungskennung])

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

fbsql_stop_db()

Siehe auch: fbsql_db_status() und fbsql_start_db().

Zurück | Zum Anfang | Nach vorne
fbsql_start_db | Nach oben | fbsql_tablename


fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5)

fbsql_tablename -- Liefert den Namen einer Tabelle

Beschreibung

string fbsql_tablename ( resource Ergebnis-Kennung, int i)

fbsql_tablename() termittelt aus einer Ergebnis-Kennung, die von fbsql_list_tables() ageliefert wurde, sowie einem Index vom Typ integer, den Namen der Tabelle Die Funktion fbsql_num_rows() kann verwendet werden, um die Anzahl der Tabellen in der Ergebnis-Kennung zu ermitteln.

Beispiel 1. fbsql_tablename() Beispiel

<?php
fbsql_connect ("localhost", "_SYSTEM", "");
$ergebnis = fbsql_list_tables ("wisconsin");
$i = 0;
while ($i < fbsql_num_rows ($ergebnis)) {
    $tb_namen[$i] = fbsql_tablename ($ergebnis, $i);
    echo $tb_namen[$i] . "<BR>";
    $i++;
}
?>

Zurück | Zum Anfang | Nach vorne
fbsql_stop_db | Nach oben | fbsql_username


fbsql_username

(PHP 4 >= 4.0.6, PHP 5)

fbsql_username -- Liest oder setzt den Host-Benutzer einer Verbindung

Beschreibung

string fbsql_username ( resource Verbindungskennung [, string Benutzername])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fbsql_tablename | Nach oben | fbsql_warnings


fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5)

fbsql_warnings -- Aktivieren oder Deaktivieren der FrontBase-Warnungen

Beschreibung

bool fbsql_warnings ( [bool OnOff])

Liefert bei eingeschalteten Warnmeldungen TRUE zurück, andernfalls FALSE.

fbsql_warnings() Aktiviert oder deaktiviert FrontBase-Warnungen.

Zurück | Zum Anfang | Nach vorne
fbsql_username | Nach oben | filePro Funktionen


filePro Funktionen

PHP Handbuch
Zurück Nach vorne

XXIX. filePro Funktionen

Diese Funktionen erlauben Lesezugriff auf die Daten, die in einer filePro Datenbank gespeichert sind.

filePro ist eingetragenes Warenzeichen von fP Technologies, Inc. Mehr Informationen zu filePro finden Sie unterhttp://www.fptech.com/.

Inhaltsverzeichnis
filepro_fieldcount -- bestimmt, wie viele Felder sich in einer filePro Datenbank befinden
filepro_fieldname -- ermittelt des Namens eines Feldes
filepro_fieldtype -- ermittelt den Typ eines Feldes
filepro_fieldwidth -- ermittelt die Breite eines Feldes
filepro_retrieve -- empfängt Daten aus einer filePro Datenbank
filepro_rowcount -- bestimmt, wie viele Reihen sich in einer filePro Datenbank befinden
filepro -- lesen und überprüfen der Kartendatei

Zurück | Zum Anfang | Nach vorne
fbsql_warnings | Nach oben | filepro_fieldcount


filepro_fieldcount

(PHP 3, PHP 4 , PHP 5)

filepro_fieldcount -- bestimmt, wie viele Felder sich in einer filePro Datenbank befinden

Beschreibung

int filepro_fieldcount ( void )

Gibt die Anzahl der Felder (Spalten) in der geöffneten filePro Datenbank zurück.

Siehe auch filepro().

Zurück | Zum Anfang | Nach vorne
filePro Funktionen | Nach oben | filepro_fieldname


filepro_fieldname

(PHP 3, PHP 4 , PHP 5)

filepro_fieldname -- ermittelt des Namens eines Feldes

Beschreibung

string filepro_fieldname ( int field_number)

Gibt den Namen des Feldes, das field_number entspricht, zurück.

Zurück | Zum Anfang | Nach vorne
filepro_fieldcount | Nach oben | filepro_fieldtype


filepro_fieldtype

(PHP 3, PHP 4 , PHP 5)

filepro_fieldtype -- ermittelt den Typ eines Feldes

Beschreibung

string filepro_fieldtype ( int field_number)

Gibt den Typ des Feldes, das field_number entspricht, zurück.

Zurück | Zum Anfang | Nach vorne
filepro_fieldname | Nach oben | filepro_fieldwidth


filepro_fieldwidth

(PHP 3, PHP 4 , PHP 5)

filepro_fieldwidth -- ermittelt die Breite eines Feldes

Beschreibung

int filepro_fieldwidth ( int field_number)

Gibt die Breite des Feldes, das field_number entspricht, zurück.

Zurück | Zum Anfang | Nach vorne
filepro_fieldtype | Nach oben | filepro_retrieve


filepro_retrieve

(PHP 3, PHP 4 , PHP 5)

filepro_retrieve -- empfängt Daten aus einer filePro Datenbank

Beschreibung

string filepro_retrieve ( int row_number, int field_number)

Gibt die Daten aus einem festgelegten Platz der Datenbank zurück.

Zurück | Zum Anfang | Nach vorne
filepro_fieldwidth | Nach oben | filepro_rowcount


filepro_rowcount

(PHP 3, PHP 4 , PHP 5)

filepro_rowcount -- bestimmt, wie viele Reihen sich in einer filePro Datenbank befinden

Beschreibung

int filepro_rowcount ( void )

Gibt die Anzahl der Reihen in der geöffneten filePro Datenbank zurück.

Siehe auch filepro().

Zurück | Zum Anfang | Nach vorne
filepro_retrieve | Nach oben | filepro


filepro

(PHP 3, PHP 4 , PHP 5)

filepro -- lesen und überprüfen der Kartendatei

Beschreibung

bool filepro ( string directory)

Diese Funktion lies und überprüft die Kartendatei, in der die Feldanzahl und die Feldinformationen gespeichert sind.

Es wird keine Sperrung durchgeführt, daher sollten Sie eine Veränderung der filePro Datenbank, während sie in PHP geöffnet sein könnte, vermeiden.

Zurück | Zum Anfang | Nach vorne
filepro_rowcount | Nach oben | Funktionen des Dateisystems


Funktionen des Dateisystems

PHP Handbuch
Zurück Nach vorne

XXX. Funktionen des Dateisystems

Einführung

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Dateisystem und Streams Konfigurationsoptionen

Name | Standardwert | Änderbar
allow_url_fopen | "1" | PHP_INI_ALL
user_agent | NULL | PHP_INI_ALL
default_socket_timeout | "60" | PHP_INI_ALL
from | NULL | ??
auto_detect_line_endings | "Off" | PHP_INI_ALL

Hier eine kurze Erklärung der Konfigurationsoptionen:

allow_url_fopen boolean

Diese Option aktiviert den URL-aware fopen wrappern, welche den Zugriff auf URL Objekt ähnliche Dateien ermöglicht. Standardmäßig stehen Wrapper für den Zugriff auf entfernte Dateien über das FTP oder HTTP Protokoll zur Verfügung, manche Erweiterungen wie zlib können über weitere Wrapper verfügen.

Anmerkung: Die Option wurde unmittelbar nach der Freigabe von PHP 4.0.3 eingeführt. In den Versionen bis zu inklusive 4.0.3 können Sie diese Eigenschaft nur während des Kompilierens mittels der Konfigurationsoption --disable-url-fopen-wrapper deaktivieren.

Warnung

In den Windowsversionen vor PHP 4.3.0 unterstützen die folgenden Funktionen den Zugriff auf entfernte Dateien nicht: include(), include_once(), require(), require_once(), sowie die imagecreatefromXXX Funktionen in der Verweis XLI, Grafik-Funktionen Erweiterung.

user_agent string

Definiert den User Agent, den PHP senden soll.

default_socket_timeout integer

Standardtimeout (in Sekunden) für Socket basierte Streams.

Anmerkung: Diese Konfigurationsoption wurde in PHP 4.3.0 eingeführt.

from="joe@example.com" string

Definiert das anonyme FTP Passwort (Ihre E-Mail Adresse).

auto_detect_line_endings boolean

Wenn aktiviert, prüft PHP die mittels fgets() und file() gelesenen Daten auf die Verwendung der Konventionen für Zeilenenden von Unix, MS-Dos oder Macintosh.

Dies ermöglich PHP die Kompatibilität mit Macintosh Systemen, ist jedoch standardmäßig deaktiviert, da die Ermittlung der EOL Konventionen der ersten Zeile einen kleinen Performanceverlust bedeutet. Weiters verwenden einige Leute Carriage-Returns als Trennzeichen für Elemente, was auf Unix Systemen ein nicht rückwärtskompatibles Verhalten bedeuten würde.

Anmerkung: Diese Konfigurationsoption wurde in PHP 4.3.0 eingeführt.

Resource Typen

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

GLOB_BRACE (integer)

GLOB_ONLYDIR (integer)

GLOB_MARK (integer)

GLOB_NOSORT (integer)

GLOB_NOCHECK (integer)

GLOB_NOESCAPE (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

FILE_USE_INCLUDE_PATH (integer)

FILE_APPEND (integer)

FILE_IGNORE_NEW_LINES (integer)

FILE_SKIP_EMPTY_LINES (integer)

Siehe auch

Verwandte Funktionen finden Sie in den Abschnitten Verzeichnis-Funktionen und Funktionen zur Programmausführung.

Eine Liste mit Erklärungen der verschiedenen URL Wrapper, welche Sie auch als entfernte Dateien nutzen können, finden Sie unter Anhang J.

Inhaltsverzeichnis
basename -- Extrahiert den Namen einer Datei aus einer vollständigen Pfadangabe
chgrp -- Wechselt die Gruppenzugehörigkeit einer Datei
chmod -- Ändert die Zugriffsrechte einer Datei
chown -- Ändert den Eigentümer einer Datei
clearstatcache -- Löscht den Status Cache
copy -- Kopiert eine Datei
delete -- Siehe unlink() oder unset()
dirname -- Extrahiert den Verzeichnis-Namen aus einer vollständigen Pfadangabe
disk_free_space -- Liefert den freien Speicherplatz in einem Verzeichnis
disk_total_space -- Liefert die Gesamtgröße eines Verzeichnisses
diskfreespace -- Ist ein Alias für disk_free_space()
fclose -- Schließt einen offenen Dateizeiger
feof -- Prüft, ob der Dateizeiger am Ende der Datei steht
fflush -- Schreibt den Ausgabepuffer in eine Datei
fgetc -- Liest das Zeichen, auf welches der Dateizeiger zeigt
fgetcsv -- Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)
fgets -- Liest eine Zeile von der Position des Dateizeigers
fgetss -- Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
file_exists -- Prüft, ob eine Datei oder ein Verzeichnis existiert
file_get_contents -- Liest die gesamte Datei in einen String
file_put_contents -- Write a string to a file
file -- Liest eine Datei komplett in ein Array
fileatime -- Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei
filectime -- Liefert Datum und Uhrzeit der letzten Änderung des Dateizeigers Inode
filegroup -- Liefert die Gruppenzugehörigkeit einer Datei
fileinode -- Liefert die Inode-Nummer einer Datei
filemtime -- Liefert Datum und Uhrzeit der letzten Dateiänderung
fileowner -- Liefert den Dateieigentümer
fileperms -- Liefert die Zugriffsrechte einer Datei
filesize -- Liefert die Größe einer Datei
filetype -- Liefert den Typ einer Datei
flock -- Portables Datei-Verriegelungs-Verfahren
fnmatch -- Match filename against a pattern
fopen -- Öffnet eine Datei oder URL
fpassthru -- Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.
fputs -- Schreibt Daten an die Position des Dateizeigers
fread -- Liest Binärdaten aus einer Datei
fscanf -- Interpretiert den Input einer Datei entsprechend einem angegebenen Format
fseek -- Positioniert den Dateizeiger
fstat -- Liefert Informationen über eine Datei mit offenem Dateizeiger
ftell -- Ermittelt die aktuelle Position des Dateizeigers
ftruncate -- Kürzt eine Datei auf die angegebene Länge
fwrite -- Schreibt Binärdaten in eine Datei
glob -- Find pathnames matching a pattern
is_dir -- Prüft, ob der gegebene Dateiname ein Verzeichnis ist
is_executable -- Prüft, ob eine Datei ausführbar ist
is_file -- Prüft, ob der Dateiname eine reguläre Datei ist
is_link -- Prüft, ob der Dateiname ein symbolischer Link ist
is_readable -- Prüft, ob eine Datei lesbar ist
is_uploaded_file -- Prüft, ob die Datei mittels HTTP POST upgeloaded wurde
is_writable -- Prüft, ob in eine Datei geschrieben werden kann
is_writeable -- Prüft, ob in eine Datei geschrieben werden kann
link -- Erzeugt einen absoluten Link
linkinfo -- Liefert Informationen über einen Link
lstat -- Liefert Informationen über eine Datei oder einen symbolischen Link.
mkdir -- Erstellt ein Verzeichnis
move_uploaded_file -- Verschiebt eine upgeloadete Datei an einen neuen Ort
parse_ini_file -- Analysiert eine Konfigurationsdatei
pathinfo -- Liefert Informationen über den Dateipfad
pclose -- Schließt einen Prozess-Dateizeiger
popen -- Öffnet einen Prozesszeiger
readfile -- Gibt eine Datei aus
readlink -- Liefert das Ziel eines symbolischen Links
realpath -- Erzeugt einen kanonisch absoluten Pfadnamen
rename -- Benennt eine Datei oder ein Verzeichnis um
rewind -- Setzt den Dateizeiger auf das erste Byte der Datei
rmdir -- Löscht ein Verzeichnis
set_file_buffer -- Alias für stream_set_write_buffer()
stat -- Liefert diverse Informationen über eine Datei
symlink -- Erzeugt einen symbolischen Link
tempnam -- Erzeugt eine Datei mit eindeutigem Dateinamen
tmpfile -- Legt eine temporäre Datei an
touch -- Setzt die Zugriffs- und Modifizierungszeit einer Datei
umask -- Ändert die aktuelle umask (Zugriffsrechte)
unlink -- Löscht eine Datei

Zurück | Zum Anfang | Nach vorne
filepro | Nach oben | basename


basename

(PHP 3, PHP 4 , PHP 5)

basename -- Extrahiert den Namen einer Datei aus einer vollständigen Pfadangabe

Beschreibung

string basename ( string path [, string suffix])

Diese Funktion extrahiert aus einer vollständigen Pfadangabe den Namen der Datei und gibt diesen zurück. Endet der Dateiname mit suffix, wird dieses Ende ebenfalls abgeschnitten.

Unter Windows wird sowohl der Slash (/) als auch der Backslash (\) als Trennzeichen bei Pfadangaben benutzt. Unter anderen Betriebssystemen hingegen nur der Slash (/).

Beispiel 1. basename()

$path = "/home/httpd/html/index.php";
$file = basename($path);         // $file enthält den Wert "index.php"
$file = basename ($path,".php"); // $file enthält den Wert "index"

Anmerkung: Der Parameter suffix wurde in PHP 4.1.0. eingeführt.

Siehe auch dirname().

Zurück | Zum Anfang | Nach vorne
Funktionen des Dateisystems | Nach oben | chgrp


chgrp

(PHP 3, PHP 4 , PHP 5)

chgrp -- Wechselt die Gruppenzugehörigkeit einer Datei

Beschreibung

int chgrp ( string filename, mixed group)

Weist der Datei filename die Benutzergruppe group zu (spezifiziert durch Name oder Nummer). Um diese Funktion ausführen zu können, müssen Sie Superuser sein. Andere Benutzer können die Gruppenzugehörigkeit einer Datei in jede Gruppe ändern, derer sie angehören.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch chown() und chmod().

Zurück | Zum Anfang | Nach vorne
basename | Nach oben | chmod


chmod

(PHP 3, PHP 4 , PHP 5)

chmod -- Ändert die Zugriffsrechte einer Datei

Beschreibung

bool chmod ( string filename, int mode)

Diese Funktion ändert die Zugriffsrechte der Datei spezifiziert in filename in die Zugriffsrechte um, die in mode spezifiziert sind.

Bedenken Sie, dass mode nicht automatisch für einen Oktalwert gehalten wird. Um sicher zu gehen, dass die Operation wie erwartet verläuft, sollten Sie mode mit dem Prefix NULL (0) versehen:

<?php
chmod ("/somedir/somefile", 755);   // dezimal; möglicherweise falsch
chmod ("/somedir/somefile", "u+rwx,go+rx"); // String; falsch
chmod ("/somedir/somefile", 0755);  // oktal; richtiger Wert von mode
?>

Der mode Parameter besteht aus drei oktalen Nummernteilen, welche die Zugriffsbeschränkungen für den Eigentümer, die Benutzergruppe des Eigentümers, und allen anderen in dieser Reihenfolge spezifiziert. Eine Komponente kann mittels Addition derbenötigten Rechte für die gewünschten Benutzer berechnet werden. Die Zahl 1 bedeutet das Recht zum Ausführen, die Zahl 2 bedeutet das Recht zum Schreiben der Datei und mit der Zahl 4 machen Sie die Datei lesbar. Addieren Sie diese Zahlen, um die benötigten Rechte zu spezifizieren. Weitere Informationen zu den Modi finden Sie auf Unix Systemen mit 'man 1 chmod' and 'man 2 chmod'.

<?php
// Lesen und Schreiben für den Eigentümer, nichts für alle anderen
chmod ("/somedir/somefile", 0600);

// Lesen und Schreiben für den Eigentümer, Lesen für alle anderen
chmod ("/somedir/somefile", 0644);

// Alles für den Eigentümer, Lesen und Ausführen für andere
chmod ("/somedir/somefile", 0755);

// Alles für den Eigentümer, Lesen und Ausführen für die
// Benutzergruppe des Eigentümers
chmod ("/somedir/somefile", 0750);
?>

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Der aktuelle Benutzer ist der, unter dem PHP läuft. Das ist unter Umständen nicht der Benutzer, den Sie für normale Shell- oder FTP-Zugriffe benutzen.

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Siehe auch chown() und chgrp().

Zurück | Zum Anfang | Nach vorne
chgrp | Nach oben | chown


chown

(PHP 3, PHP 4 , PHP 5)

chown -- Ändert den Eigentümer einer Datei

Beschreibung

bool chown ( string filename, mixed user)

Ändert den Eigentümer der Datei filename in Benutzer user. Nur der Superuser kann den Eigentümer einer Datei ändern.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Siehe auch chmod().

Zurück | Zum Anfang | Nach vorne
chmod | Nach oben | clearstatcache


clearstatcache

(PHP 3, PHP 4 , PHP 5)

clearstatcache -- Löscht den Status Cache

Beschreibung

void clearstatcache ( void )

Wenn Sie stat, lstat oder eine andere in der nachstehenden Liste der betroffenen Funktionen verwenden, speichert (cached) PHP die von diesen Funktionen zurückgeggebenen Informationen temporär, um eine bessere Performance zu bieten. In manchen Fällen könnten Sie jedoch wollen, dass diese zwischengespeicherten Informationen gelöscht werden. Wird z.B. die selbe Datei innerhalb eines Skriptes mehrmals geprüft und ist es wahrscheinlich, dass diese Datei während der Ausführung des Skriptes gelöscht oder verändert wird, könnten Sie sich dafür entscheiden, den Status Cache zu löschen. In solchen Fällen empfiehlt es sich, die von PHP zwischengespeicherten Informationen über eine Datei mittels clearstatcache() zu löschen.

Anmerkung: Diese Funktion speichert Informationen über bestimmte Dateinamen, weshalb Sie clearstatcache() nur aufrufen müssen, wenn Sie mehrere Operationen an dem selben Dateinamen durchführen, und die Informationen über genau diese Datei nicht gespeichert werden sollen.

Folgende Funktionen betreffen den Dateistatus:
stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype() und
fileperms().

Zurück | Zum Anfang | Nach vorne
chown | Nach oben | copy


copy

(PHP 3, PHP 4 , PHP 5)

copy -- Kopiert eine Datei

Beschreibung

bool copy ( string source, string dest)

Diese Funktion kopiert die Datei source nach dest. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. copy()

<?php
if (!copy($file, $file.'.bak')) {
    print ("failed to copy $file...<br>\n");
}
?>

Anmerkung: Ab PHP 4.3.0 können die Parameter source und dest auch URLs sein, wenn "fopen wrappers" aktiviert ist. Weitere Details hierzu finden Sie unter fopen(). Ist dest eine URL, könnte der Kopiervorgang scheitern, sollte der Wrapper das Überschreiben von existierenden Dateien nicht unterstützen.

Warnung

Sollte die Zieldatei bereits existieren, wird sie überschrieben.

Siehe auch move_uploaded_file(), rename(), und den Abschnitt über Steuerung von Dateiuploads.

Zurück | Zum Anfang | Nach vorne
clearstatcache | Nach oben | delete


delete

(no version information, might be only in CVS)

delete -- Siehe unlink() oder unset()

Beschreibung

void delete ( string file)

Dieses ist ein "Dummy Handbuch Eintrag" für diejenigen, die nach einer Funktion wie unlink() oder unset() an der falschen Stelle suchen.

Siehe auch unlink() um Dateien zu löschen, unset() um Variablen zu löschen.

Zurück | Zum Anfang | Nach vorne
copy | Nach oben | dirname


dirname

(PHP 3, PHP 4 , PHP 5)

dirname -- Extrahiert den Verzeichnis-Namen aus einer vollständigen Pfadangabe

Beschreibung

string dirname ( string path)

Bei einer vollständigen Pfadangabe gibt diese Funktion den Verzeichnispfad zurück.

Unter Windows wird sowohl der Slash (/) als auch der Backslash (\) als Trennzeichen bei Pfadangaben benutzt. Unter anderen Betriebssystemen hingegen nur der Slash (/).

Beispiel 1. dirname()

$path = "/etc/passwd";
$file = dirname ($path); // $file enthält den Wert "/etc"

Anmerkung: Seit PHP 4.0.3 entspricht dirname() dem POSIX-Standard. Im Grunde heißt das, dass wenn keine Slashes in path vorhanden sind, wird ein Punkt ('.') zurückgegeben, womit das aktuelle Verzeichnis gemeint ist. Andernfalls enthält der zurückgegebene String path, jedoch ohne den hinteren /component. Beachten Sie, dass Sie von dirname() oft einen Slash oder Punkt zurückbekommen, wo die alte Funktionalität einen leeren String lieferte.

Siehe auch basename(), pathinfo() und realpath().

Zurück | Zum Anfang | Nach vorne
delete | Nach oben | disk_free_space


disk_free_space

(PHP 4 >= 4.1.0, PHP 5)

disk_free_space -- Liefert den freien Speicherplatz in einem Verzeichnis

Beschreibung

float disk_free_space ( string directory)

Diese Funktion gibt den freien Speicherplatz eines Verzeichnisses in Byte zurück.

Beispiel 1. disk_free_space()

$df = disk_free_space("/"); // $df hält die Anzahl an freien Bytes
                            // im Verzeichnis  "/"

Zurück | Zum Anfang | Nach vorne
dirname | Nach oben | disk_total_space


disk_total_space

(PHP 4 >= 4.1.0, PHP 5)

disk_total_space -- Liefert die Gesamtgröße eines Verzeichnisses

Beschreibung

float disk_total_space ( string directory)

Anhand des übergebenen Strings mit dem Verzeichnisnamen gibt diese Funktion die Anzahl Bytes auf dem korrespondierenden Dateisystem oder der Disk Partition zurück.

Beispiel 1. disk_total_space()

$df = disk_total_space("/"); // $df enthält die Gesamtanzahl
                             // verfügbarer Bytes in "/"

Zurück | Zum Anfang | Nach vorne
disk_free_space | Nach oben | diskfreespace


diskfreespace

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

diskfreespace -- Ist ein Alias für disk_free_space()

Beschreibung

float diskfreespace ( string directory)

Von diesem Alias wird abgeraten, benutzen Sie stattdessen disk_free_space().

Zurück | Zum Anfang | Nach vorne
disk_total_space | Nach oben | fclose


fclose

(PHP 3, PHP 4 , PHP 5)

fclose -- Schließt einen offenen Dateizeiger

Beschreibung

bool fclose ( resource handle)

Die Datei, auf die handle zeigt, wird geschlossen.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Der Datei-Zeiger muss gültig sein, d.h. die Datei, auf die gezeigt wird muss zuvor mit fopen() oder fsockopen() geöffnet worden sein.

Beispiel 1. Ein einfaches Beispiel für fclose()

<?php

  $handle = fopen('somefile.txt', 'r');

  fclose($handle);

?>

Zurück | Zum Anfang | Nach vorne
diskfreespace | Nach oben | feof


feof

(PHP 3, PHP 4 , PHP 5)

feof -- Prüft, ob der Dateizeiger am Ende der Datei steht

Beschreibung

bool feof ( resource handle)

Gibt TRUE zurück, falls der Dateizeiger am Ende der Datei steht oder ein Fehler aufgetreten ist, andernfalls FALSE.

Der Dateizeiger muss gültig sein, d.h. die Datei, auf die gezeigt wird, muss zuvor mit fopen(), popen() oder fsockopen() geöffnet worden sein.

Zurück | Zum Anfang | Nach vorne
fclose | Nach oben | fflush


fflush

(PHP 4 >= 4.0.1, PHP 5)

fflush -- Schreibt den Ausgabepuffer in eine Datei

Beschreibung

bool fflush ( resource handle)

Diese Funktion erzwingt das Schreiben des gesamten Ausgabepuffers in die von dem Dateizeiger handle angegebene Datei. Gibt bei Erfolg TRUE, andernfalls FALSE zurück.

Der Dateizeiger muss gültig sein, und auf eine mittels fopen(), popen(), oder fsockopen() erfolgreich geöffnete Datei zeigen.

Zurück | Zum Anfang | Nach vorne
feof | Nach oben | fgetc


fgetc

(PHP 3, PHP 4 , PHP 5)

fgetc -- Liest das Zeichen, auf welches der Dateizeiger zeigt

Beschreibung

string fgetc ( resource handle)

Gibt einen String zurück, welcher ein einzelnes Zeichen von der aktuellen Position des Dateizeigers handle enthält. Gibt FALSE zurück, wenn der Dateizeiger am Ende der Datei steht (wie die Funktion feof()).

Der Dateizeiger muss gültig sein, d.h. die Datei, auf die gezeigt wird, muss zuvor mit fopen(), popen() oder fsockopen() geöffnet worden sein.

Anmerkung: Diese Funktion ist "binary safe".

Siehe auch fread(),
fopen(), popen(),
fsockopen() und fgets().

Zurück | Zum Anfang | Nach vorne
fflush | Nach oben | fgetcsv


fgetcsv

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

fgetcsv -- Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)

Beschreibung

array fgetcsv ( resource handle, int length [, string delimiter [, string enclosure]])

Die Funktion fgetcsv() ist ähnlich der Funktion fgets(), nur dass fgetcsv() die eingelesene Zeile auf Felder im CSV Format (kommaseparierte Felder) hin überprüft, und ein Array mit den gelesenen Feldern zurückgibt. Ist der optionale dritte Parameter delimiter (Trennzeichen) nicht angegeben, wird standardmäßig das Komma benutzt. Der optionale Parameter enclosure ist auf ein Zeichen limitiert und darf nicht null sein. Enthält enclosure mehr als ein Zeichen, wird nur das erste verwendet.

Anmerkung: Der Parameter enclosure wurde in PHP 4.3.0 eingeführt.

Der Parameter handle muss ein gültiger Dateizeiger sein, d.h. die Datei, auf die gezeigt wird, muss zuvor mit fopen(), popen() oder fsockopen() geöffnet worden sein.

Length muss größer sein als die längste in der CSV-Datei vorhandene Zeile (um das Erkennen von EndOfLine (Ende der Zeile) Zeichen zu ermöglichen).

fgetcsv() gibt bei Lesefehlern und am Dateiende FALSE zurück.

Anmerkung: Eine leere Zeile der CSV-Datei wird als Array mit einem Feld das den Wert NULL hält zurückgegeben. Sie wird nicht als Fehler behandelt.

Beispiel 1. Lesen und Ausgeben des gesamten Inhalts einer CSV-Datei

<?php
$row = 1;                                      // Anzahl der Arrays
$handle = fopen ("test.csv","r");              // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 1000, ",")) !== FALSE ) { // Daten werden aus der Datei
                                               // in ein Array $data gelesen
    $num = count ($data);                      // Felder im Array $data
                                               // werden gezählt
    print "<p> $num fields in line $row: <br>\n";
    $row++;                                    // Anzahl der Arrays wird
                                               // inkrementiert
    for ($c=0; $c < $num; $c++) {              // FOR-Schleife, um Felder
        print $data[$c] . "<br>\n";            // des Arrays auszugeben
    }
}
fclose ($handle);
?>

Siehe auch explode(), file() und pack().

Zurück | Zum Anfang | Nach vorne
fgetc | Nach oben | fgets


fgets

(PHP 3, PHP 4 , PHP 5)

fgets -- Liest eine Zeile von der Position des Dateizeigers

Beschreibung

string fgets ( resource handle [, int length])

Gibt eine Zeile bis zu length -1 Bytes Länge zurück, welche aus der Datei von der aktuellen Position des Dateizeigers handle aus ausgelesen wird. Die Zeile endet an einem Zeilenumbruch (welcher im Rückgabewert enthalten ist), EOF (Ende der Datei) oder bei length - 1 Bytes (je nachdem, was eher auftritt). Ist keine Länge angegeben, wird diese auf 1k bzw. 1024 Bytes gesetzt.

Wenn ein Fehler auftritt, wird FALSE zurückgegeben.

Häufig auftretende Fehler:

Wenn Sie an die C-Semantik von fgets() gewöhnt sind, sollten Sie auf die unterschiedliche Behandlung von EOF (genauer: wie EOF zurückgegeben wird) achten.

Der Datei-Zeiger fp muss gültig sein, d.h. die Datei, auf die gezeigt wird, muss zuvor mit fopen(), popen(), oder fsockopen() geöffnet worden sein.

Ein einfaches Beispiel:

Beispiel 1. Eine Datei Zeile für Zeile einlesen

$handle = fopen ("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
    $buffer = fgets($handle, 4096);
    echo $buffer;
}
fclose ($handle);

Anmerkung: Der Parameter length wurde in PHP 4.2.0 optional. Ist er nicht angegeben, wird als Zeilenlänge 1024 angenommen. Seit PHP 4.3 wird bei einem fehlenden Parameter length so lange gelesen, bis das Ende der Zeile erreicht ist. Ist der Großteil der Zeilen in der Datei größer als 8 kB, ist es effizienter, wenn Sie die maximale Zeilenlänge spezifizieren.

Anmerkung: Diese Funktion ist seit PHP 4.3 "binary safe", was aus frühere Versionen nicht zutrifft.

Anmerkung: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

Siehe auch fread(), fopen(),
popen(), fgetc(),
fsockopen() und
socket_set_timeout().

Zurück | Zum Anfang | Nach vorne
fgetcsv | Nach oben | fgetss


fgetss

(PHP 3, PHP 4 , PHP 5)

fgetss -- Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.

Beschreibung

string fgetss ( resource handle, int length [, string allowable_tags])

Diese Funktion ist identisch mit der Funktion fgets(), außer dass fgetss() versucht, vorhandene HTML und PHP-Tags aus dem gelesenen Text zu entfernen.

Optional können mit dem dritten Parameter allowable_tags Tags spezifiziert werden, die nicht entfernt werden sollen.

Anmerkung: allowable_tags wurden in PHP 3.0.13 bzw. PHP 4.0.0 hinzugefügt.

Anmerkung: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

Siehe auch fgets(),
fopen(), fsockopen(),
popen() und strip_tags().

Zurück | Zum Anfang | Nach vorne
fgets | Nach oben | file_exists


file_exists

(PHP 3, PHP 4 , PHP 5)

file_exists -- Prüft, ob eine Datei oder ein Verzeichnis existiert

Beschreibung

bool file_exists ( string filename)

Gibt TRUE zurück, wenn die mit filename spezifizierte Datei bzw. das Verzeichnis existiert, andernfalls FALSE.

Zum Prüfen von Dateien auf Windows network shares verwenden Sie bitte //computername/share/filename oder \\computername\share\filename.

Beispiel 1. Testen, ob eine Datei existiert

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
    print "The file $filename exists";
} else {
    print "The file $filename does not exist";
}
?>

Anmerkung: The results of this function are cached. See clearstatcache() for more details.

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Siehe auch is_readable(), is_writable(), is_file() und file().

Zurück | Zum Anfang | Nach vorne
fgetss | Nach oben | file_get_contents


file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents -- Liest die gesamte Datei in einen String

Beschreibung

string file_get_contents ( string filename [, int use_include_path [, resource context]])

Diese Funktion ist mit file() identisch, außer dass file_get_contents() die Datei in einem String zurückgibt.

file_get_contents() ist die bevorzugte Methode, um die Inhalte einer Datei in einen String einzulesen. Falls von Ihrem Betriebssystem unterstützt, verwendet es Memory Mapping Techniken, um die Performance zu erhöhen.

Anmerkung: Diese Funktion ist binary safe.

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

Anmerkung: Die Kontext-Unterstützung wurde in PHP 5.0.0 eingeführt.

Siehe auch: fgets(), file(),
fread(), include()
und readfile().

Zurück | Zum Anfang | Nach vorne
file_exists | Nach oben | file_put_contents


file_put_contents

(PHP 5)

file_put_contents -- Write a string to a file

Description

int file_put_contents ( string filename, string data [, int flags [, resource context]])

Identical to calling fopen(), fwrite(), and fclose() successively. The function returns the amount of bytes that were written to the file.

flags can take FILE_USE_INCLUDE_PATH and/or FILE_APPEND, however the FILE_USE_INCLUDE_PATH option should be used with caution.

Anmerkung: Diese Funktion ist binary safe.

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

See also:
fopen(),
fwrite(),
fclose(), and
file_get_contents().

Zurück | Zum Anfang | Nach vorne
file_get_contents | Nach oben | file


file

(PHP 3, PHP 4 , PHP 5)

file -- Liest eine Datei komplett in ein Array

Beschreibung

array file ( string filename [, int use_include_path])

Die Funktion file() ist identisch mit readfile(), außer dass die eingelesene Datei als Array zurückgegeben wird. Jedes Feld des Arrays korrespondiert mit einer Zeile der Datei. Der Zeilenumbruch bleibt erhalten. Im Fehlerfall gibt file() FALSE zurück.

Anmerkung: Jede Zeile in dem resultierenden Array enthält das Zeilenende ('\0'), weshalb Sie trim() verwenden müssen, falls Sie dieses Zeichen nicht vorhanden sein soll.

Anmerkung: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

Optional kann der Parameter use_include_path benutzt und auf '1' gesetzt werden, wenn in dem include_path ebenfalls nach der Datei gesucht werden soll.

<?php
// Liest eine Datei in ein Array. Hier gehen wir über HTTP, um die
// HTML Datei einer URL zu bekommen
$lines = file ('http://www.example.com/');

// Durchgehen des Arrays und Anzeigen des HTML Source inkl. Zeilennummern
foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";
}

// Ein anderes Beispiel: Einlesen einer Webseite in einen String.
// Siehe auch file_get_contents().
$html = implode ('', file ('http://www.example.com/'));
?>

Anmerkung: Ab PHP 4.3.0 können Sie file_get_contents() verwenden, um den Inhalt einer Datei als String zurückzugeben.

Mit PHP 4.3.0 ist file() "Binary Safe".

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

Siehe auch readfile(),
fopen(), fsockopen(),
popen(), file_get_contents(),
und include().

Zurück | Zum Anfang | Nach vorne
file_put_contents | Nach oben | fileatime


fileatime

(PHP 3, PHP 4 , PHP 5)

fileatime -- Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei

Beschreibung

int fileatime ( string filename)

Gibt Datum und Uhrzeit des letzten Zugriffs auf eine Datei zurück, oder FALSE wenn ein Fehler auftrat. Das Datum wird als UNIX-Timestamp zurückgegeben.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Anmerkung: Die atime einer Datei ist vorgesehen sich immer zu ändern, sobald Datenblöcke einer Datei gelesen werden. Das kann sich folgenschwer auf die Performance auswirken, wenn eine Anwendung regelmäßig auf eine große Anzahl Dateien oder Verzeichnisse zugreift. Manche Unix Dateisysteme können mit deaktivierter atime-Aktualisierung gemountet werden, um die Performance solcher Applikationen zu erhöhen; USENET news spools sind ein häufiges Beispiel. Auf solchen Dateisystemen wird diese Funktion nutzlos.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Zurück | Zum Anfang | Nach vorne
file | Nach oben | filectime


filectime

(PHP 3, PHP 4 , PHP 5)

filectime -- Liefert Datum und Uhrzeit der letzten Änderung des Dateizeigers Inode

Beschreibung

int filectime ( string filename)

Gibt Zeit der letzten Änderung des Dateizeigers Inode zurück, oder FALSE wenn ein Fehler auftrat. Die Zeit wird als UNIX-Timestamp zurückgegeben.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Anmerkung: Bei den meisten Unix Dateisystemen gilt eine Datei als geändert, sobald ihre Inode-Daten geändert wurden; d.h. wenn die Rechte, Eigentümer, Gruppe, oder andere Metadaten des Inodes aktualisiert werden. Siehe auch filemtime() (das ist was Sie suchen, wenn Sie Fußzeilen mit "Zuletzt Aktualisiert" für Webseiten erstellen möchten) und fileatime().

Beachten Sie auch, dass in einigen Unix-Texten ctime als die Zeit der Erstellung der Datei beschrieben wird. Das ist falsch. Bei den meisten Unix Dateisystemen gibt es keine Zeitangabe für die Erstellung von Unix Dateien.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Zurück | Zum Anfang | Nach vorne
fileatime | Nach oben | filegroup


filegroup

(PHP 3, PHP 4 , PHP 5)

filegroup -- Liefert die Gruppenzugehörigkeit einer Datei

Beschreibung

int filegroup ( string filename)

Gibt die Gruppen ID einer Datei zurück, oder FALSE wenn ein Fehler auftrat. Die Gruppen ID wird im numerischen Format zurückgegeben. Mit der Funktion posix_getgrgid() können Sie diese zu ihrem Gruppennamen auflösen.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Anmerkung: Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Zurück | Zum Anfang | Nach vorne
filectime | Nach oben | fileinode


fileinode

(PHP 3, PHP 4 , PHP 5)

fileinode -- Liefert die Inode-Nummer einer Datei

Beschreibung

int fileinode ( string filename)

Gibt die Inode-Nummer einer Datei zurück, oder FALSE wenn ein Fehler auftrat.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Zurück | Zum Anfang | Nach vorne
filegroup | Nach oben | filemtime


filemtime

(PHP 3, PHP 4 , PHP 5)

filemtime -- Liefert Datum und Uhrzeit der letzten Dateiänderung

Beschreibung

int filemtime ( string filename)

Gibt Datum und Uhrzeit zurück, wann die Datei das letzte mal modifiziert wurde, oder FALSE wenn ein Fehler auftrat. Das Datum wird als UNIX-Timestamp zurückgegeben, was für die Funktion date() sehr passend ist.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Anmerkung: Diese Funktion gibt den Zeitpunkt zurück, an dem in die Datenblöcke einer Datei geschrieben wurde; d.h. den Zeitpunkt der Änderung des Inhalts der Datei.

Beispiel 1. filemtime() Beispiel

<?php
// Gibt z.B. aus:  somefile.txt was last modified: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}
?>

Siehe auch filectime(), stat(), touch() und getlastmod().

Zurück | Zum Anfang | Nach vorne
fileinode | Nach oben | fileowner


fileowner

(PHP 3, PHP 4 , PHP 5)

fileowner -- Liefert den Dateieigentümer

Beschreibung

int fileowner ( string filename)

Gibt die Benutzer ID des Eigentümers einer Datei zurück, oder FALSE wenn ein Fehler auftrat. Die Benutzer ID wird in numerischem Format zurückgegeben und kann mit der Funktion posix_getpwuid() zum Benutzernamen aufgelöst werden.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Zurück | Zum Anfang | Nach vorne
filemtime | Nach oben | fileperms


fileperms

(PHP 3, PHP 4 , PHP 5)

fileperms -- Liefert die Zugriffsrechte einer Datei

Beschreibung

int fileperms ( string filename)

Gibt die Zugriffsrechte einer Datei zurück, oder FALSE wenn ein Fehler auftrat.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Zurück | Zum Anfang | Nach vorne
fileowner | Nach oben | filesize


filesize

(PHP 3, PHP 4 , PHP 5)

filesize -- Liefert die Größe einer Datei

Beschreibung

int filesize ( string filename)

Gibt die Größe einer Datei in Bytes zurück, oder FALSE wenn ein Fehler auftrat.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Zurück | Zum Anfang | Nach vorne
fileperms | Nach oben | filetype


filetype

(PHP 3, PHP 4 , PHP 5)

filetype -- Liefert den Typ einer Datei

Beschreibung

string filetype ( string filename)

Gibt den Typ einer Datei zurück. Mögliche Werte sind fifo, char, dir, block, link, file und unknown.

Gibt FALSE zurück, wenn ein Fehler auftrat. filetype() erzeugt auch eine E_NOTICE Meldung, wenn der stat-Aufruf fehlschlägt oder der Dateityp ubekannt ist.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Siehe auch: is_dir(), is_file(),
is_link(), file_exists() und
stat().

Zurück | Zum Anfang | Nach vorne
filesize | Nach oben | flock


flock

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

flock -- Portables Datei-Verriegelungs-Verfahren

Beschreibung

bool flock ( resource handle, int operation [, int &wouldblock])

PHP liefert einen portablen Weg, Dateien in einer "beratenden" Art und Weise zu verriegeln. D.h. alle zugreifende Programme müssen die gleiche Art und Weise der Verriegelung benutzen, oder es funktioniert nicht.

flock() arbeitet mit handle, welcher ein existierender Dateizeiger sein muss. Der Parameter operation bestimmt die Art der Verriegelung und kann einen der folgenden Werte annehmen:

  • Um eine verteilte, nur lesende Verriegelung zu erhalten, setzen Sie operation auf LOCK_SH (bzw. 1 vor PHP 4.0.1).

  • Um eine exklusive, nur schreibende Verriegelung zu erhalten, setzen Sie operation auf LOCK_EX (bzw. 2 vor PHP 4.0.1).

  • Um eine Verriegelung freizugeben (lesend oder schreibend), setzen Sie operation auf LOCK_UN (bzw. 3 vor PHP 4.0.1).

  • Wenn Sie Zugriffe während der Verriegelung durch flock() erlauben wollen, fügen Sie LOCK_NB (bzw. 4 vor PHP 4.0.1) zu operation hinzu.

flock() erlaubt es Ihnen ein einfaches Leser/Schreiber Modell zu erstellen, welches auf fast jeder Plattform benutzt werden kann (inkl. den meisten UNIX-Derivaten und auch Windows). Das optionale dritte Argument ist auf TRUE gesetzt, wenn die Verriegelung sperren sollte (EWOULDBLOCK errno Bedingung).

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Da flock() einen Dateizeiger benötigt, könnten Sie eine spezielle Sperrdatei benutzen, um den Zugriff auf eine Datei zu schützen, welche Sie mittels Öffnen im Schreibmodus (mit dem Argument "w" or "w+" von fopen()) kürzen wollen.

Warnung

flock() funktioniert nicht auf NFS und verschiedenen anderen vernetzten Dateisystemen. Für weitere Detail konsultieren Sie bitte Ihre Betriebssystemdokumentation.

Bei einigen Betriebssystemen ist flock() auf dem Prozesslevel implementiert. Wenn Sie ein multithreaded Server API wie ISAPI benutzen können Sie sich nicht auf flock() verlassen, um Dateien vor anderen PHP-Skripten zu schützen, welche in parallelen Threads der gleichen Server-Instanz laufen!

flock() wird antiquierten Dateisystemen wie FAT und dessen Derivate nicht unterstützt, und gibt deshalb in solchen Umgebungen immer FALSE zurück (Dies ist speziell bei Windows 98 Benutzern der Fall).

Zurück | Zum Anfang | Nach vorne
filetype | Nach oben | fnmatch


fnmatch

(PHP 4 >= 4.3.0, PHP 5)

fnmatch -- Match filename against a pattern

Description

array fnmatch ( string pattern, string string [, int flags])

fnmatch() checks if the passed string would match the given shell wildcard pattern.

This is especially useful for filenames, but may also be used on regular strings. The average user may be used to shell patterns or at least in their simplest form to '?' and '*' wildcards so using fnmatch() instead of ereg() or preg_match() for frontend search expression input may be way more convenient for non-programming users.

Beispiel 1. Checking a color name against a shell wildcard pattern.

<?php
if (fnmatch("*gr[ae]y", $color)) {
  echo "some form of gray ...";
}
?>

Warnung

For now this function is not available on Windows or other non-POSIX compliant systems.

See also glob(),
ereg(),
preg_match()
and the Unix manpage on fnmatch(3) for flag names
(as long as they are not documented here ).

Zurück | Zum Anfang | Nach vorne
flock | Nach oben | fopen


fopen

(PHP 3, PHP 4 , PHP 5)

fopen -- Öffnet eine Datei oder URL

Beschreibung

resource fopen ( string filename, string mode [, int use_include_path [, resource zcontext]])

fopen() bindet eine benannte Resource, welche mittels filename spezifiziert wurde, an einen Stream. Hat filename die Form "schema://..." wird angenommen, dass es sich hier um eine URL handelt und PHP sucht nach einem Protokollhandler (auch als Wrapper bekannt) für dieses Schema. Sind keine Wrapper für dieses Protokoll registriert, gibt PHP als Hilfe zum Verfolgen potentieller Probleme in Ihrem Skript einen Hinweis aus und setzt dann weiter fort, obwohl filename eine reguläre Datei spezifiziert.

Ist PHP zu dem Schluss gekommen, dass filename eine lokale Datei spezifiziert, wird es versuchen, einen Stream an dieser Datei zu öffnen. Die Datei muss für PHP verfügbar sein, weshalb Sie sicherstellen müssen, dass die Dateirechte diesen Zugriff ermöglichen. Wenn Sie safe mode oder open_basedir aktiviert haben, können weitere Einschränkungen zutreffen.

Kam PHP zum Schluss, dass es sich bei filename um ein registriertes Protokoll handelt, und ist dieses Protokoll als eine Netzwerk URL registriert, prüft PHP, ob allow_url_fopen aktiviert ist. Ist es nicht aktiviert, gibt PHP eine Warnung aus, und der Aufruf von fopen wird scheitern.

Anmerkung: Die Liste der unterstützten Wrapper finden Sie unter Anhang J.

Der Parameter mode spezifiziert den von Ihnen gewünschten Zugriffstyp auf den Stream und kann die folgenden Werte haben:

Tabelle 1. Liste von möglichen Modi für fopen() mit mode

mode | Beschreibung
'r' | Öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei.
'r+' | Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.
'w' | Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.
'w+' | Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a' | Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
'a+' | Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.

Anmerkung: Zusätzlich kann mode der Buchstabe 'b' hinzugefügt werden, der die Behandlung von Binärdateien erlaubt. Dies ist nur auf Systemen sinnvoll, welche zwischen Binär- und Text-Dateien unterscheiden (z.B. Windows. Ist bei Unix sinnlos). Wenn das Feature nicht gebraucht wird, wird es einfach ignoriert. Sie sollten den 'b' Flag verwenden, um Ihre Skripte portabler zu machen.

Sie können den optionalen Parameter use_include_path auf '1' oder TRUE setzten, wenn Sie die Datei auch im include_path suchen möchten.

Der optionale vierte Parameter zcontext wird zur Spezifikation von Einstellungsparametern und Callbacks verwendet.

Scheitert das Öffnen der Datei, gibt die Funktion FALSE zurück.

Beispiel 1. fopen() Beispiele

<?php
$handle = fopen ("/home/rasmus/file.txt", "r");
$handle = fopen ("/home/rasmus/file.gif", "wb");
$handle = fopen ("http://www.example.com/", "r");
$handle = fopen ("ftp://user:password@example.com/somefile.txt", "w");
?>

Wenn Sie Probleme mit dem Lesen oder Schreiben von Dateien haben und PHP als Servermodul benutzen, stellen Sie zunächst sicher, dass die Dateien und Verzeichnisse die Sie benutzen wollen auch für den Server-Prozess zugänglich sind (Rechtevergabe).

Achten Sie auf Windows-Systemen darauf, dass Sie als Verzeichnistrenner normale Schrägstriche '/' benutzen um plattformunabhängig programmieren zu können. Sollten Sie dennoch Backslashes verwenden, vergessen Sie nicht diese zu escapen '\\'

<?php
$handle = fopen ("c:\\data\\info.txt", "r");
?>

Siehe auch Anhang J,
fclose(),
fgets(),
fsockopen(),
file(),
file_exists(),
is_readable(),
socket_set_timeout() und
popen().

Zurück | Zum Anfang | Nach vorne
fnmatch | Nach oben | fpassthru


fpassthru

(PHP 3, PHP 4 , PHP 5)

fpassthru -- Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.

Beschreibung

int fpassthru ( resource handle)

Die Funktion liest alle Daten von der aktuellen Position des Dateizeigers bis EOF aus und schreibt die Daten in den Ausgabepuffer.

Wenn ein Fehler auftritt, gibt fpassthru() FALSE zurück. Andernfalls gibt fpassthru() die Anzahl der von handle gelesenen und zur Ausgabe weitergeleiteten Zeichen zurück.

Der Dateizeiger muss gültig sein und auf eine erfolgreich durch fopen(), popen() oder fsockopen() geöffnete Datei zeigen. Eventuell müssen Sie rewind() aufrufen, um den Dateizeiger auf den Beginn der Datei zurückzusetzen, wenn Sie bereits Daten in die Datei geschrieben haben. Die Datei wird geschlossen, wenn fpassthru() die Datei komplett gelesen hat (hinterlässt nutzloses handle).

Wenn Sie den Inhalt einer Datei nur nur in den Ausgabepuffer schreiben wollen ohne diese ändern bzw. an eine bestimmte Stelle gehen wollen, sollten Sie besser readfile() benutzen, bei der Sie sich den Aufruf von fopen() ersparen.

Anmerkung: Wenn Sie fpassthru() auf eine binäre Datei unter Windows anwenden, sollten Sie sicherstellen, dass die Datei im Binärmodus geöffnet wurde, indem Sie ein b an den Mode-Parameter von fopen() anhängen.

Auch wenn es Ihr System nicht verlangt, sollten Sie den b Flag bei Binärdateien verwenden, um die Portabilität Ihrer Skripte zu erhöhen.

Siehe auch readfile(),
fopen(), popen() und
fsockopen()

Zurück | Zum Anfang | Nach vorne
fopen | Nach oben | fputs


fputs

(PHP 3, PHP 4 , PHP 5)

fputs -- Schreibt Daten an die Position des Dateizeigers

Beschreibung

int fputs ( resource handle, string str [, int length])

fputs() ist ein Alias für die Funktion fwrite(), und ist in jeder Hinsicht identisch mit ihr. Beachten Sie, dass der Parameter length optional ist, und dass, wenn er nicht benutzt wird, die gesamte Zeichenkette geschrieben wird.

Zurück | Zum Anfang | Nach vorne
fpassthru | Nach oben | fread


fread

(PHP 3, PHP 4 , PHP 5)

fread -- Liest Binärdaten aus einer Datei

Beschreibung

string fread ( resource handle, int length)

fread() liest length Bytes vom Dateizeiger handle. Das Lesen wird beendet, wenn length Bytes gelesen oder EOF (end of file bzw. Dateiende) erreicht wurde (was eben früher zutrifft).

<?php
// liest den Inhalt einer Datei in einen String
$filename = "/usr/local/simi.txt";
$handle = fopen ($filename, "r");
$contents = fread ($handle, filesize ($filename));
fclose ($handle);
?>

Anmerkung: Auf Systemen, welche zwischen Binär- und Textdateien (z.B. Windows) unterscheiden, muss die Datei mit 'b' im fopen() Mode-Parameter geöffnet werden.

<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen ($filename, "rb");
$contents = fread ($handle, filesize ($filename));
fclose ($handle);
?>

Siehe auch fwrite(), fopen(),
fsockopen(), popen(),
fgets(), fgetss(),
fscanf(), file() und
fpassthru().

Zurück | Zum Anfang | Nach vorne
fputs | Nach oben | fscanf


fscanf

(PHP 4 >= 4.0.1, PHP 5)

fscanf -- Interpretiert den Input einer Datei entsprechend einem angegebenen Format

Beschreibung

mixed fscanf ( resource handle, string format [, string var1])

Die Funktion fscanf() ist sscanf() ähnlich, wobei sie ihren Input aus der mit handle angegebenen Datei nimmt, und entsprechend dem angegebenen format interpretiert. Sind nur 2 Parameter angegeben, werden die analysierten Werte als Array zurückgegeben. Werden auch optionale Parameter übergeben, gibt die Funktion die Anzahl der ermittelten Werte zurück. Die optionalen Parameter müssen referenziert übergeben werden.

Irgendwelche Whitespace-Zeichen (z.B. Leerzeichen, Tabulator, etc.) im Format String gelten mit irgendwelchen Whitespace-Zeichen des Input-Streams als übereinstimmend. Das heißt, dass auch ein Tabulator \t im Format String mit einem einzigen Leerzeichen im Input-Stream als übereinstimmend gelten kann.

Beispiel 1. fscanf()

<?php
$handle = fopen ("users.txt","r");
while ($userinfo = fscanf ($handle, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... Tue etwas mit den Werten
}
fclose($handle);
?>

Beispiel 2. users.txt

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

Anmerkung: Vor PHP 4.3.0 war die maximale Anzahl der von der Datei eingelesenen Zeichen 512 (oder bis zu dem ersten \n, was zuerst eintrat). Seit PHP 4.3.0 werden beliebig lange Zeilen gelesen und interprtiert.

Siehe auch fread(), fgets(),
fgetss(), sscanf(),
printf(), und sprintf().

Zurück | Zum Anfang | Nach vorne
fread | Nach oben | fseek


fseek

(PHP 3, PHP 4 , PHP 5)

fseek -- Positioniert den Dateizeiger

Beschreibung

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

Setzt den Dateizeiger einer mit handle angegebenen Datei auf eine neue Position. Diese neue Position, angegeben in Bytes vom Begin der Datei an, wird definiert durch Hinzufügen von offset zu der Position spezifiziert durch whence, deren Werte wie folgt definiert sind:

SEEK_SET - Setzt Position gleich offset bytes.
SEEK_CUR - Setzt Position auf die aktuelle Stelle plus offset.
SEEK_END - Setzt die Position ans Ende der Datei plus offset. (Um zu einer Position vor EOF zu gelangen, übergeben Sie in offset einen negativen Wert.)

Wenn whence nicht angegeben wurde, wird SEEK_SET angenommen.

Bei Erfolg wird '0' zurückgegeben, andernfalls '-1'. Beachten Sie, dass die Überschreitung des Dateiendes (EOF) nicht als Fehler bewertet wird.

Diese Funktion sollte nicht auf Dateizeiger angewandt werden, die durch die Verwendung von "http://" oder "ftp://" bei der Funktion fopen() erhalten wurden.

Anmerkung: Das whence-Argument wurde nach PHP 4.0.0 eingeführt.

Siehe auch ftell() und rewind().

Zurück | Zum Anfang | Nach vorne
fscanf | Nach oben | fstat


fstat

(PHP 4 , PHP 5)

fstat -- Liefert Informationen über eine Datei mit offenem Dateizeiger

Beschreibung

array fstat ( resource handle)

Trägt die Statistiken der mittel des Dateizeigers handle geöffneten Datei zusammen. Diese Funktion ist ähnlich der Funktion stat(), außer dass sie mit einem offenen Dateizeiger anstatt eines Dateinamens arbeitet.

Gibt die Statistiken einer Datei in Form eines Arrays zurück. Das Format des zurückgegebenen Arrays wird in stat() im Detail beschrieben.

Anmerkung: The results of this function are cached. See clearstatcache() for more details.

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Zurück | Zum Anfang | Nach vorne
fseek | Nach oben | ftell


ftell

(PHP 3, PHP 4 , PHP 5)

ftell -- Ermittelt die aktuelle Position des Dateizeigers

Beschreibung

int ftell ( resource handle)

Gibt die aktuelle Position des Dateizeigers handle zurück, z.B. seinen Offset im Dateistream.

Wenn ein Fehler auftritt, wird FALSE zurückgegeben.

Der Dateizeiger muss gültig sein und auf eine erfolgreich durch fopen() oder popen() geöffnete Datei zeigen.

Siehe auch fopen(),
popen(), fseek() und
rewind().

Zurück | Zum Anfang | Nach vorne
fstat | Nach oben | ftruncate


ftruncate

(PHP 4 , PHP 5)

ftruncate -- Kürzt eine Datei auf die angegebene Länge

Beschreibung

bool ftruncate ( resource handle, int size)

Nimmt den Dateizeiger handle, und verkürzt die Datei auf die Länge size. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ftell | Nach oben | fwrite


fwrite

(PHP 3, PHP 4 , PHP 5)

fwrite -- Schreibt Binärdaten in eine Datei

Beschreibung

int fwrite ( resource handle, string string [, int length])

fwrite() schreibt den Inhalt einer Zeichenkette string in die Datei, auf welche der Dateizeiger handle zeigt. Wenn der length Parameter gegeben ist, wird das Schreiben nach length Bytes beendet, oder wenn das Dateiende (EOF) erreicht ist. Je nachdem was eher eintritt.

fwrite() gibt bei Erfolg die Anzahl der geschriebenen Bytes zurück, andernfalls FALSE.

Sollte der length Parameter gesetzt sein, so ist zu beachten, dass die magic_quotes_runtime Konfigurations-Option ignoriert wird und somit keine Schrägstriche mehr von der Zeichenkette string entfernt werden.

Anmerkung: Auf Systemen, welche zwischen Binär- und Textdateien (z.B. Windows) unterscheiden, muss die Datei mit 'b' im fopen() Mode-Parameter geöffnet werden.

Beispiel 1. Ein einfaches Beispiel für fwrite

<?php
$filename = 'test.txt';
$somecontent = "Füge dies Datei hinzu\n";

// Sichergehen, dass die Datei existiert und beschreibbar ist
if (is_writable($filename)) {

    // Wir öffnen $filename im "Anhänge" - Modus.
    // Der Dateizeiger befindet sich am Ende der Datei, und
    // dort wird $somecontent später mit fwrite() geschrieben.
    if (!$handle = fopen($filename, "a")) {
         print "Kann die Datei $filename nicht öffnen";
         exit;
    }

    // Schreibe $somecontent in die geöffnete Datei.
    if (!fwrite($handle, $somecontent)) {
        print "Kann in die Datei $filename nicht schreiben";
        exit;
    }

    print "Fertig, in Datei $filename wurde $somecontent geschrieben";

    fclose($handle);

} else {
    print "Die Datei $filename ist nicht schreibbar";
}
?>

Siehe auch fread(),
fopen(), fsockopen(),
popen() und fputs().

Zurück | Zum Anfang | Nach vorne
ftruncate | Nach oben | glob


glob

(PHP 4 >= 4.3.0, PHP 5)

glob -- Find pathnames matching a pattern

Description

array glob ( string pattern [, int flags])

The glob() function searches for all the pathnames matching pattern according to the rules used by the shell. No tilde expansion or parameter substitution is done.

Returns an array containing the matched files/directories or FALSE on error.

Valid flags:

  • GLOB_MARK - Adds a slash to each item returned

  • GLOB_NOSORT - Return files as they appear in the directory (no sorting)

  • GLOB_NOCHECK - Return the search pattern if no files matching it were found

  • GLOB_NOESCAPE - Backslashes do not quote metacharacters

  • GLOB_BRACE - Expands {a,b,c} to match 'a', 'b', or 'c'

  • GLOB_ONLYDIR - Return only directory entries which match the pattern

Anmerkung: Before PHP 4.3.3 GLOB_ONLYDIR was not available on Windows and other systems not using the GNU C library.

Beispiel 1. Convenient way how glob() can replace opendir() and friends.

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

Output will look something like:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

See also opendir(),
readdir(),
closedir(), and fnmatch().

Zurück | Zum Anfang | Nach vorne
fwrite | Nach oben | is_dir


is_dir

(PHP 3, PHP 4 , PHP 5)

is_dir -- Prüft, ob der gegebene Dateiname ein Verzeichnis ist

Beschreibung

bool is_dir ( string filename)

Gibt TRUE zurück, wenn der Dateiname existiert und es sich hierbei um ein Verzeichnis handelt. Ist filename ein relativer Dateiname, so wird er auch relativ zu dem aktuellen Verzeichnis geprüft.

Anmerkung: The results of this function are cached. See clearstatcache() for more details.

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Siehe auch chdir(), dir,
opendir(), is_file() und
is_link().

Zurück | Zum Anfang | Nach vorne
glob | Nach oben | is_executable


is_executable

(PHP 3, PHP 4 , PHP 5)

is_executable -- Prüft, ob eine Datei ausführbar ist

Beschreibung

bool is_executable ( string filename)

Gibt TRUE zurück, wenn die Datei existiert und ausführbar ist.

is_executable() wurde für Windows in PHP Version 5.0.0 eingeführt.

Anmerkung: The results of this function are cached. See clearstatcache() for more details.

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Siehe auch is_file() und is_link().

Zurück | Zum Anfang | Nach vorne
is_dir | Nach oben | is_file


is_file

(PHP 3, PHP 4 , PHP 5)

is_file -- Prüft, ob der Dateiname eine reguläre Datei ist

Beschreibung

bool is_file ( string filename)

Gibt TRUE zurück, wenn die Datei existiert und eine reguläre Datei ist.

Anmerkung: The results of this function are cached. See clearstatcache() for more details.

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Siehe auch is_dir() und is_link().

Zurück | Zum Anfang | Nach vorne
is_executable | Nach oben | is_link


is_link

(PHP 3, PHP 4 , PHP 5)

is_link -- Prüft, ob der Dateiname ein symbolischer Link ist

Beschreibung

bool is_link ( string filename)

Gibt TRUE zurück, wenn der Dateiname existiert und es sich um einen symbolischen Link handelt.

Anmerkung: The results of this function are cached. See clearstatcache() for more details.

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Siehe auch is_dir(), is_file() und readlink().

Zurück | Zum Anfang | Nach vorne
is_file | Nach oben | is_readable


is_readable

(PHP 3, PHP 4 , PHP 5)

is_readable -- Prüft, ob eine Datei lesbar ist

Beschreibung

bool is_readable ( string filename)

Gibt TRUE zurück wenn die Datei existiert und lesbar ist.

Bedenken Sie, dass PHP mit der Benutzer ID auf die Datei zugreift, unter welcher der Webserver läuft (oftmals ist dieses 'nobody'). Beschränkungen durch safe_mode werden nicht berücksichtigt.

Anmerkung: The results of this function are cached. See clearstatcache() for more details.

Anmerkung: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem.

Siehe auch is_writable(),
file_exists() und
fgets().

Zurück | Zum Anfang | Nach vorne
is_link | Nach oben | is_uploaded_file


is_uploaded_file

(PHP 3>= 3.0.17, PHP 4 >= 4.0.3, PHP 5)

is_uploaded_file -- Prüft, ob die Datei mittels HTTP POST upgeloaded wurde

Beschreibung

bool is_uploaded_file ( string filename)

Gibt TRUE zurück, wenn die Datei filename mittels HTTP POST upgeloaded wurde. Das ist hilfreich sicherzustellen, dass kein böswilliger User versucht hat das Script zu überlisten, indem er es Dateien bearbeiten lässt, die es gar nicht bearbeiten sollte. Zum Beispiel /etc/passwd.

Diese Prüfung ist speziell dort interessant, wo irgendeine Aktion mit upgeloadeten Dateien deren Inhalt dem User zugänglich machen könnte (oder auch anderen Usern auf dem selben System).

is_uploaded_file() ist in PHP 3 nur nach Version 3.0.16, und in PHP 4 nur nach Version 4.0.2 verfügbar. Sollten Sie eine frühere Version benutzen, können Sie sich mit der folgenden Funktion weiterhelfen:

Anmerkung: Das folgende Beispiel funktioniert nicht in Versionen nach PHP 4.0.2. Das liegt an der internen Funktionalität von PHP, welche sich nach dieser Version geändert hat.

<?php
/* Userland Test für hochgeladene Datei. */
function is_uploaded_file($filename) {
    if (!$tmp_file = get_cfg_var('upload_tmp_dir')) {
        $tmp_file = dirname(tempnam('', ''));
    }
    $tmp_file .= '/' . basename($filename);
    /* Der Benutzer könnte einen führenden Slash in php.ini haben... */
    return (ereg_replace('/+', '/', $tmp_file) == $filename);
}

/* So verwenden Sie sie, nachdem Sie in diesen älteren
* Versionen auch keine move_uploaded_file() haben: */
if (is_uploaded_file($HTTP_POST_FILES['userfile'])) {
    copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file");
} else {
    echo "Mögliche Dateiupload-Attacke: Dateiname '$HTTP_POST_FILES[userfile]'.";
}
?>

Siehe auch move_uploaded_file(), und das Kapitel Steuerung von Dateiuploads für ein einfaches Anwendungsbeispiel.

Zurück | Zum Anfang | Nach vorne
is_readable | Nach oben | is_writable


is_writable

(PHP 4 , PHP 5)

is_writable -- Prüft, ob in eine Datei geschrieben werden kann

Beschreibung

bool is_writable ( string filename)

Gibt TRUE zurück, wenn die Datei existiert und nicht schreibgeschützt ist. Das Dateinamen-Argument filename kann ein Verzeichnisname sein. So können Sie überprüfen, ob in ein Verzeichnis geschrieben werden kann.

Bedenken Sie, dass PHP mit der Benutzer ID auf die Datei zugreift, unter welcher der Webserver läuft (oftmals ist dieses 'nobody'). Beschränkungen durch safe_mode werden nicht berücksichtigt.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Siehe auch is_readable().

Zurück | Zum Anfang | Nach vorne
is_uploaded_file | Nach oben | is_writeable


is_writeable

(PHP 3, PHP 4 , PHP 5)

is_writeable -- Prüft, ob in eine Datei geschrieben werden kann

Beschreibung

bool is_writeable ( string filename)

Dies ist ein Alias für is_writable()

Zurück | Zum Anfang | Nach vorne
is_writable | Nach oben | link


link

(PHP 3, PHP 4 , PHP 5)

link -- Erzeugt einen absoluten Link

Beschreibung

int link ( string target, string link)

link() erzeugt einen absoluten Link mit dem Ziel target.

Siehe auch symlink() um symbolische Links zu erstellen und readlink() zusammen mit linkinfo().

Zurück | Zum Anfang | Nach vorne
is_writeable | Nach oben | linkinfo


linkinfo

(PHP 3, PHP 4 , PHP 5)

linkinfo -- Liefert Informationen über einen Link

Beschreibung

int linkinfo ( string path)

linkinfo() gibt das st_dev Feld des UNIX C stat structure resultierend aus dem lstat System Call zurück. Diese Funktion wird benutzt, um zu verifizieren ob ein Link (auf den mit path gezeigt wird) wirklich existiert (Hierbei wird die gleiche Methode benutzt, die in dem S_ISLNK Makro in stat.h definiert ist). Gibt 0 oder FALSE zurück wenn ein Fehler auftrat.

Siehe auch symlink(), link(), und readlink().

Zurück | Zum Anfang | Nach vorne
link | Nach oben | lstat


lstat

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

lstat -- Liefert Informationen über eine Datei oder einen symbolischen Link.

Beschreibung

array lstat ( string filename)

Ermittelt statistische Informationen über eine Datei oder symbolischen Link, spezifiziert in filename. Diese Funktion ist identisch mit der Funktion stat(), außer dass wenn der Parameter filename ein symbolischer Link ist, dessen Status zurückgegeben wird und nicht der Status der Datei, auf die der symbolische Link zeigt.

Gibt einen Array mit statistischen Informationen über die Datei als Array-Elemente zurück:

  1. Laufwerk

  2. inode

  3. Anzahl der Links

  4. Benutzer ID des Inhabers

  5. Gruppen ID des Inhabers

  6. Laufwerkstyp wenn inode Laufwerk *

  7. Größe in Bytes

  8. Zeitpunkt des letzten Zugriffs

  9. Zeitpunkt der letzten Modifikation

  10. Zeitpunkt der letzen Änderung

  11. Blockgröße für das Dateisystem I/O *

  12. Anzahl der zugewiesenen Blöcke

* - nur gültig auf Systemen, die st_blksize unterstützen. Andere Systeme (z.B. Windows) geben '-1' zurück.

lstat() ist nicht für remote Dateien geeignet.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.

Zurück | Zum Anfang | Nach vorne
linkinfo | Nach oben | mkdir


mkdir

(PHP 3, PHP 4 , PHP 5)

mkdir -- Erstellt ein Verzeichnis

Beschreibung

int mkdir ( string pathname [, int mode])

Versucht ein Verzeichnis mit dem spezifiziertem Namen zu erstellen.

Bedenken Sie, dass sie wahrscheinlich den Mode als oktalen Wert spezifizieren wollen, was bedeutet, dass er eine voranstehende Null haben sollte. Der Mode wird ebenfalls mit der aktuellen umask modifiziert, welchen Sie mittels umask() ändern können.

Anmerkung: Mode wird unter Windows ignoriert, und wurde in PHP 4.2.0 optional.

Mode ist standardmäßig 0777 was den weitestmöglichen Zugriff bedeutet. Weitere Informationen zu den Modi finden Sie auf der Seite chmod().

mkdir ("/path/to/my/dir", 0700);

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch rmdir().

Zurück | Zum Anfang | Nach vorne
lstat | Nach oben | move_uploaded_file


move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

move_uploaded_file -- Verschiebt eine upgeloadete Datei an einen neuen Ort

Beschreibung

bool move_uploaded_file ( string filename, string destination)

Diese Funktion prüft, ob die mit filename bezeichnete Datei eine gültige Upload-Datei ist (d.h., dass sie mittels PHP's HTTP POST Upload-Mechanismus upgeloaded wurde). Ist die Datei gültig, wird sie zum in destination bezeichneten Dateinamen verschoben.

Wenn filename keine gültige Datei ist, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück.

Wenn filename eine gültige Datei ist, jedoch aus irgendeinem Grund nicht verschoben werden kann, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück. Zusätzlich wird eine Warnung ausgegeben.

Diese Prüfung ist speziell dort interessant, wo irgendeine Aktion mit upgeloadeten Dateien deren Inhalt dem User zugänglich machen könnte (oder auch anderen Usern auf dem selben System).

Anmerkung: Wenn Safe Mode aktiviert ist, überprüft PHP, ob die Dateien/Verzeichnisse die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.

Anmerkung: move_uploaded_file() ist von den normalen safe mode UID-Einschränkungen nicht betroffen. Dies ist nicht unsicher, da move_uploaded_file() nur mit via PHP hochgeladenen Dateien arbeitet.

Warnung

Sollte die Zieldatei bereits existieren, wird sie überschrieben.

Siehe auch is_uploaded_file(), und das Kapitel Steuerung von Dateiuploads für ein einfaches Anwendungsbeispiel.

Zurück | Zum Anfang | Nach vorne
mkdir | Nach oben | parse_ini_file


parse_ini_file

(PHP 4 , PHP 5)

parse_ini_file -- Analysiert eine Konfigurationsdatei

Beschreibung

array parse_ini_file ( string filename [, bool process_sections])

parse_ini_file() lädt die in filename angegebene Datei, und gibt die darin enthaltenen Einstellungen in einem assoziativen Array zurück. Setzen Sie den letzten Parameter process_sections auf TRUE, erhalten Sie ein mehrdimensionales Array mit den Gruppennamen und Einstellungen. Ist process_sections nicht angegeben, wird FALSE angenommen.

Anmerkung: Diese Funktion hat nichts mit der php.ini zu tun, denn diese ist bereits abgearbeitet, wenn Sie Ihr Skript ausführen. Diese Funktion ist vorgesehen, um Konfigurationsdateien für Ihre eigenen Applikationen einzulesen.

Anmerkung: Enthält ein Wert in der ini Datei nicht alphanumerische Zeichen, so muss dieser von doppelten Anführungszeichen (") eingeschlossen sein.

Anmerkung: Seit PHP 4.2.1 wird diese Funktion auch von safe mode und open_basedir beeinflusst.

Die Struktur der ini Datei ist der von php.ini ähnlich.

Konstanten können in der ini Datei ebenfalls geparsed werden. Wenn Sie eine Konstante als einen ini Wert definieren bevor Sie parse_ini_file() aufrufen, wird diese in den Ergebnissen enthalten sein. Es werden nur ini Werte ausgewertet. Zum Beispiel:

Beispiel 1. Inhalt der sample.ini

; Dies ist ein Beispiel für eine Konfigurationsdatei
; Kommentare beginnen wie in der php.ini mit ';'

[erste_gruppe]
eins = 1
fünf = 5
animal = BIRD

[zweite_gruppe]
pfad = /usr/local/bin
URL = "http://www.example.com/~username"

Beispiel 2. parse_ini_file()

<?php

define ('BIRD', 'Dodo bird');

// Ohne Gruppen analysieren
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Mit Gruppen analysieren
$ini_array = parse_ini_file("sample.ini", TRUE);
print_r($ini_array);

?>

Würde wie folgt ausgeben:

Array
(
    [eins] => 1
    [fünf] => 5
    [animal] => Dodo bird
    [pfad] => /usr/local/bin
    [URL] => http://www.example.com/~username
)
Array
(
    [erste_gruppe] => Array
        (
            [eins] => 1
            [fünf] => 5
            [animal] = Dodo bird
        )

    [zweite_gruppe] => Array
        (
            [pfad] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

)

Zurück | Zum Anfang | Nach vorne
move_uploaded_file | Nach oben | pathinfo


pathinfo

(PHP 4 >= 4.0.3, PHP 5)

pathinfo -- Liefert Informationen über den Dateipfad

Beschreibung

array pathinfo ( string path)

pathinfo() gibt ein assoziatives Array mit Informationen über den Pfad path zurück. Die folgenden Arrayelemente werden zurückgegeben: den Verzeichnisnamen dirname, den Dateinamen basename, und die Dateinamenserweiterung extension.

Beispiel 1. pathinfo()

<?php

$path_parts = pathinfo("/www/htdocs/index.html");

echo $path_parts["dirname"] . "\n";
echo $path_parts["basename"] . "\n";
echo $path_parts["extension"] . "\n";

?>

Würde ausgeben:

/www/htdocs
index.html
html

Anmerkung: Informationen über das Wiederauffinden der aktuellen Pfadinformation finden Sie unter Vordefinierte Variablen.

Siehe auch dirname(),
basename(), parse_url()
und realpath().

Zurück | Zum Anfang | Nach vorne
parse_ini_file | Nach oben | pclose


pclose

(PHP 3, PHP 4 , PHP 5)

pclose -- Schließt einen Prozess-Dateizeiger

Beschreibung

int pclose ( resource handle)

Schließt einen Prozess-Dateizeiger, der durch einen Aufruf von popen() geöffnet wurde.

Der Dateizeiger muss gültig sein und durch einen erfolgreichen Funktionsaufruf von popen() zurückgegeben worden sein.

Gibt den End-Status eines laufenden Prozesses zurück.

Siehe auch popen().

Zurück | Zum Anfang | Nach vorne
pathinfo | Nach oben | popen


popen

(PHP 3, PHP 4 , PHP 5)

popen -- Öffnet einen Prozesszeiger

Beschreibung

resource popen ( string command, string mode)

Öffnet eine Verbindung zu einem Prozess, der durch die Anweisung command ausgeführt wurde.

Gibt einen Dateizeiger zurück, der identisch ist mit dem, der bei der Funktion fopen() zurückgegeben wird, außer dass dieser nur in eine Richtung funktioniert (entweder lesend oder schreibend) und mit der Funktion pclose() geschlossen werden muss. Dieser Zeiger kann mit den Funktionen fgets(), fgetss() und fputs() benutzt werden.

Wenn ein Fehler auftritt, gibt diese Funktion FALSE zurück.

Anmerkung: Wenn Sie bidirektionale Unterstützung wünschen, verwenden Sie bitte proc_open().

Beispiel 1. popen() Beispiel

<?php
$handle = popen ("/bin/ls", "r");
?>

Anmerkung: Wenn das auszuführende Kommando nicht gefunden werden konnte, wird eine gültige Ressource zurückgegeben. Das mag seltsam erscheinen, macht aber Sinn. Es ermöglicht Ihnen, auf von der Shell zurückgegebene Fehlermeldungen zuzugreifen:

<?php
error_reporting(E_ALL);

/* Umleitung hinzufügen, dass wir stderr erhalten können */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Siehe auch pclose(), fopen() und proc_open().

Zurück | Zum Anfang | Nach vorne
pclose | Nach oben | readfile


readfile

(PHP 3, PHP 4 , PHP 5)

readfile -- Gibt eine Datei aus

Beschreibung

int readfile ( string filename [, int use_include_path])

Liest den Inhalt einer Datei und schreibt ihn in den Ausgabepuffer.

Gibt die Anzahl der gelesenen Bytes einer Datei zurück. Wenn ein Fehler auftritt wird FALSE zurückgegeben und eine Fehlermeldung wird auf der Standardausgabe ausgegeben. Die Ausgabe einer Fehlermeldung kann durch Voranstellen eines '@' verhindert werden (@readfile).

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

Sie können optional den zweiten Parameter benutzen und diesen auf '1' setzen, wenn Sie auch im include_path nach der Datei suchen möchten.

Siehe auch fpassthru(),
file(), fopen(),
include(), require(),
virtual() und Anhang J.

Zurück | Zum Anfang | Nach vorne
popen | Nach oben | readlink


readlink

(PHP 3, PHP 4 , PHP 5)

readlink -- Liefert das Ziel eines symbolischen Links

Beschreibung

string readlink ( string path)

readlink() ist von der Funktionalität her identisch mit der 'readlink C Funktion' und gibt den Inhalt des Pfades des symbolischen Links zurück oder 0, wenn der Aufruf fehlschlug.

Siehe auch is_link(), symlink() und linkinfo().

Zurück | Zum Anfang | Nach vorne
readfile | Nach oben | realpath


realpath

(PHP 4 , PHP 5)

realpath -- Erzeugt einen kanonisch absoluten Pfadnamen

Beschreibung

string realpath ( string path)

realpath() expandiert alle symbolischen Links, und beseitigt Verweise zu '/./', '/../' und extra '/' Zeichen im Input path, und gibt den absoluten Pfadnamen kanonisch zurück. Der Pfad im Ergebnis enthält keine Komponenten eines symbolischen Links mehr, wie '/./' or '/../'.

realpath() gibt im Fehlerfall FALSE zurück, z.B. wenn die Datei nicht existiert.

Beispiel 1. realpath()

$real_path = realpath("../../index.php");

Siehe auch: basename(),
dirname() und
pathinfo().

Zurück | Zum Anfang | Nach vorne
readlink | Nach oben | rename


rename

(PHP 3, PHP 4 , PHP 5)

rename -- Benennt eine Datei oder ein Verzeichnis um

Beschreibung

bool rename ( string oldname, string newname [, resource context])

Versucht oldname in newname umzubenennen.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. Beispiel mit rename()

<?php
  rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Anmerkung: In Versionen vor PHP 4.3.3 konnte rename() auf *nix-basierten Systemen nicht partitionsübergreifend verschieben.

Anmerkung: Ab PHP 5.0.0 kann rename() mit manchen Url-Wrappern benutzt werden. Siehe Anhang J für eine Liste von Wrappern die rename() unterstützen. Wenn Wrapper verwendet werden, muss für oldname und newname der gleiche Wrapper benutzt werden.

Anmerkung: Der context Parameter ist ab PHP 5.0.0 verfügbar.

Siehe auch copy(), unlink() und move_uploaded_file().

Zurück | Zum Anfang | Nach vorne
realpath | Nach oben | rewind


rewind

(PHP 3, PHP 4 , PHP 5)

rewind -- Setzt den Dateizeiger auf das erste Byte der Datei

Beschreibung

int rewind ( resource handle)

Setzt den Dateizeiger (Datei-Positions-Indikator) für handle an den Anfang des Dateistreams.

Wenn ein Fehler auftritt gibt die Funktion 0, andernfalls 1 zurück.

Der Dateizeiger muss gültig sein und auf eine Datei zeigen, die zuvor erfolgreich durch fopen() geöffnet wurde.

Anmerkung: Haben Sie eine Datei im Append-Modus ("a") geöffnet, werden unabhängig von der Dateiposition alle zu schreibenden Daten angehängt.

Siehe auch fseek() und ftell().

Zurück | Zum Anfang | Nach vorne
rename | Nach oben | rmdir


rmdir

(PHP 3, PHP 4 , PHP 5)

rmdir -- Löscht ein Verzeichnis

Beschreibung

int rmdir ( string dirname)

Versucht ein Verzeichnis spezifiziert durch die Pfadangabe dirname zu löschen. Das Verzeichnis muss leer sein und die relevanten Rechte müssen erteilt sein. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch mkdir() und unlink().

Zurück | Zum Anfang | Nach vorne
rewind | Nach oben | set_file_buffer


set_file_buffer

set_file_buffer -- Alias für stream_set_write_buffer()

Beschreibung

Diese Funktion ist ein ??? für stream_set_write_buffer().

Zurück | Zum Anfang | Nach vorne
rmdir | Nach oben | stat


stat

(PHP 3, PHP 4 , PHP 5)

stat -- Liefert diverse Informationen über eine Datei

Beschreibung

array stat ( string filename)

Sammelt Informationen über eine Datei spezifiziert in filename.

Gibt einen Array mit folgenden statistischen Informationen als Array- Elemente zurück:

  1. Laufwerk

  2. inode

  3. inode protection mode

  4. Anzahl der Links

  5. Benutzer ID des Inhabers

  6. Gruppen ID des Inhabers

  7. Laufwerkstyp wenn Inode-Laufwerk *

  8. Größe in Bytes

  9. Zeitpunkt des letzten Zugriffs

  10. Zeitpunkt der letzten Modifizierung

  11. Zeitpunkt der letzten Änderung

  12. Blockgröße für das Dateisystem I/O *

  13. Anzahl der zugewiesenen Blöcke

* - nur gültig auf Systemen, die st_blksize unterstützen. Andere Systeme (z.B. Windows) geben '-1' zurück.

Gibt FALSE zurück, wenn ein Fehler auftrat.

stat() ist nicht für remote Dateien geeignet.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.

Zurück | Zum Anfang | Nach vorne
set_file_buffer | Nach oben | symlink


symlink

(PHP 3, PHP 4 , PHP 5)

symlink -- Erzeugt einen symbolischen Link

Beschreibung

int symlink ( string target, string link)

symlink() erzeugt einen symbolischen Link von dem gegebenen Parameter target mit dem spezifiziertem Namen link.

Siehe auch link() um absolute Links zu erstellen, und readlink() zusammen mit linkinfo().

Zurück | Zum Anfang | Nach vorne
stat | Nach oben | tempnam


tempnam

(PHP 3, PHP 4 , PHP 5)

tempnam -- Erzeugt eine Datei mit eindeutigem Dateinamen

Beschreibung

string tempnam ( string dir, string prefix)

Erzeugt eine Datei mit einem eindeutigen Dateinamen in dem spezifizierten Verzeichnis. Wenn das Verzeichnis nicht existiert, erstellt tempnam() eine Datei im temporären Verzeichnis des Systems, und gibt den Dateinamen zurück.

Vor PHP 4.0.6 war das Verhalten von tempnam() systemabhängig. Unter Windows wird die TMP-Umgebungsvariable den dir Parameter überschreiben, unter Linux-Systemen hat die TMPDIR Umgebungsvariable Vorrang, während SVR4 immer den spezifizierten Verzeichnisnamen benutzen wird, wenn dieses existiert. Wenn Sie nicht genau wissen, wie Ihr System tempnam() behandelt, dann konsultieren Sie bitte Ihre System-Dokumentation.

Gibt den neuen temporären Dateinamen bei Erfolg, oder eine FALSE Zeichenkette wenn ein Fehler auftritt zurück.

Beispiel 1. tempnam()

$tmpfname = tempnam ("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "schreibe in Tämporärdatei");
fclose($handle);

// tue hier etwas

unlink($tmpfname);

Anmerkung: Diese Funktion hat ihr Verhalten seit PHP 4.0.3 geändert. Die temporäre Datei wird ebenfalls angelegt um eine "Hetzsituation" zu vermeiden, wo in der Zeit nach dem Generieren des Strings, und bevor das Script dazukommt die Datei anzulegen, die Datei im Dateisystem erscheinen könnte. Beachten Sie, dass falls Sie die Datei nicht mehr benötigen, Sie diese wieder entfernen müssen (dies geschieht nicht automatisch).

Siehe auch tmpfile() und unlink().

Zurück | Zum Anfang | Nach vorne
symlink | Nach oben | tmpfile


tmpfile

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

tmpfile -- Legt eine temporäre Datei an

Beschreibung

resource tmpfile ( void )

Erstellt eine temporäre Datei mit einem eindeutigen Dateinamen im Schreibmodus und gibt einen Dateizeiger ähnlich wie es bei der Funktion fopen() erfolgt, zurück. Die Datei wird automatisch gelöscht, wenn sie geschlossen wird (mit fclose()), oder das Skript beendet wird.

Für Details konsultieren Sie bitte die Dokumentation Ihres Betriebssystems bzgl. der tmpfile(3) Funktion, wie auch die stdio.h Header-Datei.

Beispiel 1. tmpfile()

$temp = tmpfile();
fwrite($temp, "schreibt in Temporärdatei");
fclose($temp); // dies entfernt die Datei

Siehe auch tempnam().

Zurück | Zum Anfang | Nach vorne
tempnam | Nach oben | touch


touch

(PHP 3, PHP 4 , PHP 5)

touch -- Setzt die Zugriffs- und Modifizierungszeit einer Datei

Beschreibung

int touch ( string filename [, int time [, int atime]])

Setzt Datum und Uhrzeit der letzten Änderung und des letzten Zugriffs der durch filename spezifizierten Datei auf den durch time spezifizierten Wert. Wenn die Option time nicht angegeben wurde, wird die aktuelle Zeit benutzt. Dies ist äquivalent zu dem, was utime tut (manchmal wird auch als utimes davon gesprochen). Ist die dritte Option atime angegeben, so wird die Zugriffszeit auf atime gesetzt. Beachten Sie, dass die Zugriffszeit unabhängig von der Anzahl der Parameter stets modifiziert wird.

Wenn die Datei nicht existiert, wird sie erzeugt.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. touch()

if (touch ($DateiName)) {
    print "$DateiName Modifizierungs-Zeit wurde auf das aktuelle
          Datum und die aktuelle Uhrzeit gesetzt.";
} else {
    print "Tut mir leid, Modifikations-Zeit von $DateiName konnte
          nicht geändert werden.";
}

Zurück | Zum Anfang | Nach vorne
tmpfile | Nach oben | umask


umask

(PHP 3, PHP 4 , PHP 5)

umask -- Ändert die aktuelle umask (Zugriffsrechte)

Beschreibung

int umask ( [int mask])

umask() setzt PHP's umask auf mask & 0777 und gibt die alte umask zurück. Wird PHP als Servermodul benutzt, wird die umask zurückgespeichert wenn die jeweilige Anfrage beendet ist.

umask() ohne Argumente gibt einfach die aktuelle umask zurück.

Zurück | Zum Anfang | Nach vorne
touch | Nach oben | unlink


unlink

(PHP 3, PHP 4 , PHP 5)

unlink -- Löscht eine Datei

Beschreibung

int unlink ( string filename)

Löscht filename. Ähnlich der UNIX C unlink() Funktion.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch rmdir() um Verzeichnisse zu löschen.

Zurück | Zum Anfang | Nach vorne
umask | Nach oben | Forms Data Format Funktionen


Forms Data Format Funktionen

PHP Handbuch
Zurück Nach vorne

XXXI. Forms Data Format Funktionen

Einführung

Forms Data Format (FDF) ist ein Format zur Verarbeitung von Formularen innerhalb von PDF Dokumenten. Weiterführende Informationen zu FDF und dessen Verwendung sind unter http://partners.adobe.com/asn/acrobat/forms.jsp zu finden.

Der Ansatz den FDF verfolgt, ist vergleichbar mit dem üblicher HTML Formulare. Die wesentlichen Unterschiede liegen in der Übertragung der Daten nach Absenden des Formulars (dies ist das eigentliche Form Data Format), sowie in dem Format des Dokuments welches das Formular enthält(PDF). Die Verarbeitung der FDF Daten ist eine der Möglichkeiten, die die FDF Funktionen bereitstellen. Darüber hinaus kann man beispielsweise innerhalb eines vorhandenen PDF Formulars die Input Felder dynamisch mit Daten füllen, ohne das Formular selbst zu verändern. Hierzu erzeugt man das FDF Dokument (fdf_create()), setzt die Werte der jeweiligen Input Felder (fdf_set_value()) und verbindet es mit dem jeweiligen PDF Formular (fdf_set_file()). Nachdem man das FDF Dokument, mit dem passenden MimeType application/vnd.fdf versehen, ausgegeben hat, erkennt das Acrobat Reader PlugIn des Browsers den MimeType und füllt das Zielformular mit den Daten des FDF Dokuments.

Betrachtet man ein FDF Dokument mit einem Text Editor, findet sich dort ein Katalog-Objekt FDF. Dieses Objekt kann mehrere Einträge der Art Fields, F, Status etc.. enthalten. Die gebräuchlichsten Einträge sind Fields, welches zu einer Anzahl von Input Feldern verweist, sowie F das den Dateinamen des zugehörigen PDF Dokuments enthält. Diese Einträge finden sich in der FDF Dokumentation unter /F-Key oder /Status-Key. Modifikationen dieser Einträge werden mit Hilfe der Funktionen fdf_set_file() und fdf_set_status() vorgenommen. Felder werden u.a. mit fdf_set_value(), fdf_set_opt() modifiziert.

Anforderungen

Benötigt wird das FDF-Toolkit-SDK, welches unter http://partners.adobe.com/asn/acrobat/forms.jsp heruntergeladen werden kann. Ab PHP-Version 4.3 ist mindestens die Version 5.0 des FDF-SDKs erforderlich. Die FDF-Toolkit Bibliothek steht ausschließlich vorkompiliert zur Verfügung. Von Adobe unterstütze Plattformen sind Win32, Linux, Solaris und AIX.

Installation

You must compile PHP with --with-fdftk[=DIR].

Anmerkung: If you run into problems configuring PHP with fdftk support, check whether the header file fdftk.h and the library libfdftk.so are at the right place. The configure script supports both the directory structure of the FDF SDK distribution and the usual DIR/include / DIR/lib layout, so you can point it either directly to the unpacked distribution directory or put the header file and the appropriate library for your platform into e.g. /usr/local/include and /usr/local/lib and configure with --with-fdftk=/usr/local.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy fdftk.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32)

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

fdf

Die meisten FDF-Funktionen benötigen an erster Stelle einen fdf Ressource-Parameter. Der Parameter fdf ist ein Zeiger auf eine geöffnete FDF-Datei. fdf Ressource-Parameter werden von den Funktionen fdf_create(), fdf_open() und fdf_open_string() zurückgegeben.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

FDFValue (integer)

FDFStatus (integer)

FDFFile (integer)

FDFID (integer)

FDFFf (integer)

FDFSetFf (integer)

FDFClearFf (integer)

FDFFlags (integer)

FDFSetF (integer)

FDFClrF (integer)

FDFAP (integer)

FDFAS (integer)

FDFAction (integer)

FDFAA (integer)

FDFAPRef (integer)

FDFIF (integer)

FDFEnter (integer)

FDFExit (integer)

FDFDown (integer)

FDFUp (integer)

FDFFormat (integer)

FDFValidate (integer)

FDFKeystroke (integer)

FDFCalculate (integer)

FDFNormalAP (integer)

FDFRolloverAP (integer)

FDFDownAP (integer)

Beispiele

Das Beispiel zeigt die Auswertung der Formular Daten.

Beispiel 1. Auswertung eines FDF_Dokuments

<?php
// Speichern der FDF Daten in eine temporäre Datei
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Öffnen der temporären Datei und Auswertung der Daten
// Das PDF Formular enthält verschiedene Eingabefelder mit den zugehörigen Namen
// band, datum, kommentar, verleger, bearbeiter, sowie zwei Checkboxen
// zeige_verleger und zeige_bearbeiter.

$fdf = fdf_open("test.fdf");
$band = fdf_get_value($fdf, "band");
echo "Das Feld Band hat den Wert '<B>$band</B>'<BR>";

$datum = fdf_get_value($fdf, "datum");
echo "Das Feld Datum hat den Wert '<B>$datum</B>'<BR>";

$kommentar = fdf_get_value($fdf, "kommentar");
echo "Das Feld Kommentar hat den Wert '<B>$kommentar</B>'<BR>";

if (fdf_get_value($fdf, "zeige_verleger") == "On") {
    $verleger = fdf_get_value($fdf, "verleger");
    echo "Das Feld Verleger hat den Wert '<B>$verleger</B>'<BR>";
} else {
  echo "Verleger soll nicht angezeigt werden.<BR>";
}

if (fdf_get_value($fdf, "zeige_bearbeiter") == "On") {
  $bearbeiter = fdf_get_value($fdf, "bearbeiter");
  echo "Das Feld Bearbeiter hat den Wert '&<B>$bearbeiter</B>'<BR>";
} else {
  echo "Bearbeiter soll nicht angezeigt werden.<BR>";
}
fdf_close($fdf);
?>

Inhaltsverzeichnis
fdf_add_doc_javascript -- Fügt JavaScript Code in ein FDF Dokument ein.
fdf_add_template -- Fügt dem FDF Dokument ein Template hinzu
fdf_close -- Schließt ein FDF Dokument
fdf_create -- Erzeugt ein neues FDF Dokument
fdf_enum_values -- Call a user defined function for each document value
fdf_errno -- Return error code for last fdf operation
fdf_error -- Return error description for fdf error code
fdf_get_ap -- Get the appearance of a field
fdf_get_attachment -- Extracts uploaded file embedded in the FDF
fdf_get_encoding -- Get the value of the /Encoding key
fdf_get_file -- Gibt den Wert des /F Schlüssels zurück
fdf_get_flags -- Gets the flags of a field
fdf_get_opt -- Gets a value from the opt array of a field
fdf_get_status -- Gibt den Wert des /STATUS Schlüssels zurück
fdf_get_value -- Gibt den Wert eines Feldes zurück
fdf_get_version -- Gets version number for FDF API or file
fdf_header -- Sets FDF-specific output headers
fdf_next_field_name -- Gibt den Namen des nächsten Feldes zurück
fdf_open_string -- Read a FDF document from a string
fdf_open -- Öffnet ein FDF Dokument
fdf_remove_item -- Sets target frame for form
fdf_save_string -- Returns the FDF document as a string
fdf_save -- Speichern eines FDF Dokuments
fdf_set_ap -- Legt das Aussehen eines Feldes fest
fdf_set_encoding -- Legt die Kodierung des FDF Zeichensatzes fest
fdf_set_file -- Definiert ein PDF-Dokument, das FDF-Daten anzeigen soll
fdf_set_flags -- Setzt Flags eines Feldes
fdf_set_javascript_action -- Weist einem Feld eine Javascript Aktion zu
fdf_set_opt -- Setzt die Option eines Feldes
fdf_set_status -- Setzt den Wert des /STATUS Schlüssels
fdf_set_submit_form_action -- Setzt die 'Submit Form Action' für ein Feld
fdf_set_target_frame -- Set target frame for form display
fdf_set_value -- Setzt den Wert eines Feldes
fdf_set_version -- Sets version number for a FDF file

Zurück | Zum Anfang | Nach vorne
unlink | Nach oben | fdf_add_doc_javascript


fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_add_doc_javascript -- Fügt JavaScript Code in ein FDF Dokument ein.

Beschreibung

bool fdf_add_doc_javascript ( resource fdfdoc, string script_name, string script_code)

Fügt ein Script zum FDF Dokument, welches Acrobat zu den doc-level scripts des Dokuments hinzufügt, sobald FTF eingefügt wird. Es wird unbedingt empfohlen '\r' für Zeilenumbrüche innerhalb von script_code zu verwenden.

Beispiel 1. Adding JavaScript code to a FDF

<?php
$fdf = fdf_create();
fdf_add_doc_javascript($fdf, "PlusOne", "function PlusOne(x)\r{\r  return x+1;\r}\r");
fdf_save($fdf);
?>

will create a FDF like this:

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Zurück | Zum Anfang | Nach vorne
Forms Data Format Funktionen | Nach oben | fdf_add_template


fdf_add_template

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

fdf_add_template -- Fügt dem FDF Dokument ein Template hinzu

Beschreibung

bool fdf_add_template ( int fdfdoc, int newpage, string filename, string template, int rename)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fdf_add_doc_javascript | Nach oben | fdf_close


fdf_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_close -- Schließt ein FDF Dokument

Beschreibung

bool fdf_close ( resource fdf_document)

Die Funktion fdf_close() schließt das FDF Dokument.

Siehe auch fdf_open().

Zurück | Zum Anfang | Nach vorne
fdf_add_template | Nach oben | fdf_create


fdf_create

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_create -- Erzeugt ein neues FDF Dokument

Beschreibung

resource fdf_create ( void )

Die Funktion fdf_create() erzeugt ein neues FDF Dokument. Diese Funktion wird benötigt, wenn man Eingabefelder in einem PDF Dokument mit Daten belegen möchte.

Beispiel 1. Füllen von Formularwerten in einem PDF Dokument

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "band", $band, 0);

fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");
fdf_save($outfdf, "outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest.fdf", "r");
fpassthru($fp);
unlink("outtest.fdf");
?>

Siehe auch fdf_close(),
fdf_save(),
fdf_open().

Zurück | Zum Anfang | Nach vorne
fdf_close | Nach oben | fdf_enum_values


fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5)

fdf_enum_values -- Call a user defined function for each document value

Description

bool fdf_enum_values ( resource fdfdoc, callback function [, mixed userdata])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fdf_create | Nach oben | fdf_errno


fdf_errno

(PHP 4 >= 4.3.0, PHP 5)

fdf_errno -- Return error code for last fdf operation

Description

int fdf_errno ( void )

fdf_errno() returns the error code set by the last fdf_...() function call. This is zero for a successfull operation or a non-zero error code on failure. A textual description may be obtained using the fdf_error() function.

See also fdf_error().

Zurück | Zum Anfang | Nach vorne
fdf_enum_values | Nach oben | fdf_error


fdf_error

(PHP 4 >= 4.3.0, PHP 5)

fdf_error -- Return error description for fdf error code

Description

string fdf_error ( [int error_code])

fdf_error() returns a textual description for the fdf error code given in error_code. The function uses the internal error code set by the last operation if no error_code is given, so fdf_error() is a convenient shortcut for fdf_error(fdf_errno()).

See also fdf_errno().

Zurück | Zum Anfang | Nach vorne
fdf_errno | Nach oben | fdf_get_ap


fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_ap -- Get the appearance of a field

Description

bool fdf_get_ap ( resource fdf_document, string field, int face, string filename)

The fdf_get_ap() function gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file. The possible values of face are FDFNormalAP, FDFRolloverAP and FDFDownAP. The appearance is stored in filename.

Zurück | Zum Anfang | Nach vorne
fdf_error | Nach oben | fdf_get_attachment


fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_attachment -- Extracts uploaded file embedded in the FDF

Description

array fdf_get_attachment ( resource fdf_document, string fieldname, string savepath)

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath. savepath may be the name of a plain file or an existing directory in which the file is to be created under its original name. Any existing file under the same name will be overwritten.

Anmerkung: There seems to be no other way to find out the original filename but to store the file using a directory as savepath and check for the basename it was stored under.

The returned array contains the following fields:

  • path - path were the file got stored

    size - size of the stored file in bytes

    type - mimetype if given in the FDF

Beispiel 1. Storing an uploaded file

<?php
  $fdf = fdf_open_string($HTTP_FDF_DATA);
  $data = fdf_get_attachment($fdf, "filename", "/tmpdir");
  echo "The uploaded file is stored in $data[path]";
?>

Zurück | Zum Anfang | Nach vorne
fdf_get_ap | Nach oben | fdf_get_encoding


fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_encoding -- Get the value of the /Encoding key

Description

string fdf_get_encoding ( resource fdf_document)

The fdf_get_encoding() returns the value of the /Encoding key. An empty string is returned if the default PDFDocEncoding/Unicode scheme is used.

See also fdf_set_encoding().

Zurück | Zum Anfang | Nach vorne
fdf_get_attachment | Nach oben | fdf_get_file


fdf_get_file

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_get_file -- Gibt den Wert des /F Schlüssels zurück

Beschreibung

string fdf_get_file ( resource fdf_document)

Die Funktion fdf_set_file() gibt den Wert des /F Schlüssels zurück.

Siehe auch fdf_set_file().

Zurück | Zum Anfang | Nach vorne
fdf_get_encoding | Nach oben | fdf_get_flags


fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_flags -- Gets the flags of a field

Description

fdf_get_flags ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fdf_get_file | Nach oben | fdf_get_opt


fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_opt -- Gets a value from the opt array of a field

Description

mixed fdf_get_opt ( resource fdfdof, string fieldname [, int element])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fdf_get_flags | Nach oben | fdf_get_status


fdf_get_status

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_get_status -- Gibt den Wert des /STATUS Schlüssels zurück

Beschreibung

string fdf_get_status ( resource fdf_document)

Die Funktion fdf_get_status() gibt den Wert des /STATUS Schlüssels zurück.

Siehe auch fdf_set_status().

Zurück | Zum Anfang | Nach vorne
fdf_get_opt | Nach oben | fdf_get_value


fdf_get_value

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_get_value -- Gibt den Wert eines Feldes zurück

Beschreibung

string fdf_get_value ( resource fdf_document, string fieldname [, int which])

Die Funktion fdf_get_value() gibt den Wert für den Parameter fieldname zurück.

Elemente eines Arrays können abgefragt werden, indem der optionale Parameter which übergeben wird. Die Elemente des abzufragenden Arrays starten bei Null. Bei Nicht-Array-Feldern wird der Parameter which ignoriert.

Anmerkung: Der optionale Parameter which und die Möglichkeit Arrays abzufragen wurden ab PHP-Version 4.3 hinzugefügt.

Siehe auch fdf_set_value().

Zurück | Zum Anfang | Nach vorne
fdf_get_status | Nach oben | fdf_get_version


fdf_get_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_version -- Gets version number for FDF API or file

Description

string fdf_get_version ( [resource fdf_document])

This function will return the fdf version for the given fdf_document, or the toolkit API version number if no parameter is given.

For the current FDF toolkit 5.0 the API version number is '5.0' and the document version number is either '1.2', '1.3' or '1.4'.

See also fdf_set_version().

Zurück | Zum Anfang | Nach vorne
fdf_get_value | Nach oben | fdf_header


fdf_header

(PHP 4 >= 4.3.0, PHP 5)

fdf_header -- Sets FDF-specific output headers

Description

bool fdf_header ( void )

This is a convenience function to set appropriate HTTP headers for FDF output. It sets the Content-type: to application/vnd.fdf.

Zurück | Zum Anfang | Nach vorne
fdf_get_version | Nach oben | fdf_next_field_name


fdf_next_field_name

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_next_field_name -- Gibt den Namen des nächsten Feldes zurück

Beschreibung

string fdf_next_field_name ( resource fdf_document, string fieldname)

Die Funktion fdf_next_field_name() gibt den Namen des Feldes nach fieldname oder den Namen des ersten Feldes zurück, wenn der Parameter NULL ist.

Beispiel 1. Detecting all fieldnames in a FDF

<?php
    $fdf = fdf_open($HTTP_FDF_DATA);
    for($field = fdf_next_field_name($fdf);
       $field != "";
       $field = fdf_next_field_name($fdf, $field)) {
      echo "field: $field\n";
    }
?>

Siehe auch fdf_set_field(), fdf_get_field().

Zurück | Zum Anfang | Nach vorne
fdf_header | Nach oben | fdf_open_string


fdf_open_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_open_string -- Read a FDF document from a string

Description

resource fdf_open_string ( string fdf_data)

The fdf_open_string() function reads form data from a string. fdf_data must contain the data as returned from a PDF form or created using fdf_create() and fdf_save_string().

You can fdf_open_string() together with $HTTP_FDF_DATA to process fdf form input from a remote client.

Beispiel 1. Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

See also
fdf_open(),
fdf_close(),
fdf_create() and
fdf_save_string().

Zurück | Zum Anfang | Nach vorne
fdf_next_field_name | Nach oben | fdf_open


fdf_open

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_open -- Öffnet ein FDF Dokument

Beschreibung

resource fdf_open ( string filename)

Die Funktion fdf_open() öffnet eine Datei mit Formulardaten. Diese Datei muss entweder die von einem PDF Formular zurückgegebenen Formulardaten oder Formulardaten, die mit fdf_create() und fdf_save() erzeugt wurden, enthalten.

Das Ergebnis eines per POST übergebenen PDF-Formulars kann verarbeitet werden, indem die Daten aus $HTTP_FDF_DATA in eine Datei geschrieben und mit Hilfe von fdf_open() zugänglich gemacht werden. Ab PHP-Version 4.3 steht darüber hinaus die Funktion fdf_open_string() zur Verfügung, die die temporäre Dateierzeugung und -löschung übernimmt.

Beispiel 1. Zugang zu den Formulardaten

<?php
// Speichern der FDF Daten in eine temporäre Datei
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Öffnen der temporären Datei und Auswertung der Daten
$fdf = fdf_open("test.fdf");
...
fdf_close($fdf);
?>

Siehe auch
fdf_open_string(),
fdf_close(),
fdf_create() und
fdf_save().

Zurück | Zum Anfang | Nach vorne
fdf_open_string | Nach oben | fdf_remove_item


fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5)

fdf_remove_item -- Sets target frame for form

Description

bool fdf_remove_item ( resource fdfdoc, string fieldname, int item)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
fdf_open | Nach oben | fdf_save_string


fdf_save_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_save_string -- Returns the FDF document as a string

Description

string fdf_save_string ( resource fdf_document)

The fdf_save_string() function returns the FDF document as a string.

Beispiel 1. Retrieving FDF as a string

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

will output something like

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

See also fdf_save(),
fdf_open_string(),
fdf_create() and
fdf_close().

Zurück | Zum Anfang | Nach vorne
fdf_remove_item | Nach oben | fdf_save


fdf_save

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_save -- Speichern eines FDF Dokuments

Beschreibung

bool fdf_save ( resource fdf_document [, string filename])

Die Funktion fdf_save() function speichert ein FDF Dokument. Das erzeugte Dokument wird in der Datei filename gespeichert. Ohne den Parameter filename gibt fdf_save() das Dokument an der Standardausgabe aus.

Siehe auch fdf_save_string(),
fdf_create() und
fdf_close().

Zurück | Zum Anfang | Nach vorne
fdf_save_string | Nach oben | fdf_set_ap


fdf_set_ap

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_ap -- Legt das Aussehen eines Feldes fest

Beschreibung

bool fdf_set_ap ( resource fdf_document, string field_name, int face, string filename, int page_number)

Die Funktion fdf_set_ap() legt das Aussehen eines Feldes (d.h. den Wert des /AP Schlüssels) fest. Mögliche Werte von face sind FDFNormalAP, FDFRolloverAP und FDFDownAP.

Zurück | Zum Anfang | Nach vorne
fdf_save | Nach oben | fdf_set_encoding


fdf_set_encoding

(PHP 4 >= 4.1.0, PHP 5)

fdf_set_encoding -- Legt die Kodierung des FDF Zeichensatzes fest

Beschreibung

bool fdf_set_encoding ( resource fdf_document, string encoding)

fdf_set_encoding() legt die Kodierung des Zeichensatzes innerhalb des FDF Dokuments fdf_document fest. In Acrobat 5.0 sind "Shift_JIS", "UHC", "GBK","BigFive" gültige Werte für den Parameter encoding. Ein leerer String setzt die Kodierung auf den voreingestellten Wert PDFDocEncoding/Unicode.

Die Funktion fdf_set_encoding() ist ab PHP-4.1.0 oder später verfügbar.

Zurück | Zum Anfang | Nach vorne
fdf_set_ap | Nach oben | fdf_set_file


fdf_set_file

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_file -- Definiert ein PDF-Dokument, das FDF-Daten anzeigen soll

Beschreibung

bool fdf_set_file ( resource fdf_document, string filename [, string target_frame])

Die Funktion fdf_set_file() wählt ein PDF-Dokument aus, in dem FDF-Formulardaten angezeigt werden sollen. Der Parameter url muss als absolute URL angegeben werden.

Der Rahmen in den das Dokument angezeigt werden soll, kann mit dem optionalen Parameter target_frame oder der Funktion fdf_set_target_frame() festgelegt werden.

Beispiel 1. FDF-Daten in einem anderen Dokument anzeigen

<?php
  /* set content type for Adobe FDF */
  fdf_header();

  /* start new fdf */
  $fdf = fdf_create();

  /* set field "foo" to value "bar" */
  $fdf_set_value($fdf, "foo", "bar");

  /* tell client to display FDF data using "fdf_form.pdf" */
  fdf_set_file($fdf, "http://www.example.com/fdf_form.pdf");

  /* output fdf */
  fdf_save();

  /* clean up */
  fdf_close();
?>

Siehe auch fdf_get_file() und fdf_set_target_frame().

Zurück | Zum Anfang | Nach vorne
fdf_set_encoding | Nach oben | fdf_set_flags


fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_flags -- Setzt Flags eines Feldes

Beschreibung

bool fdf_set_flags ( resource fdf_document, string fieldname, int whichFlags, int newFlags)

Die Funktion fdf_set_flags() setzt bestimmte Flags des Feldes fieldname.

Siehe auch fdf_set_opt().

Zurück | Zum Anfang | Nach vorne
fdf_set_file | Nach oben | fdf_set_javascript_action


fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_javascript_action -- Weist einem Feld eine Javascript Aktion zu

Beschreibung

bool fdf_set_javascript_action ( resource fdf_document, string fieldname, int trigger, string script)

fdf_set_javascript_action() weist dem Feld fieldname eine Javascript Aktion zu.

Siehe auch fdf_set_submit_form_action().

Zurück | Zum Anfang | Nach vorne
fdf_set_flags | Nach oben | fdf_set_opt


fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_opt -- Setzt die Option eines Feldes

Beschreibung

bool fdf_set_opt ( resource fdf_document, string fieldname, int element, string str1, string str2)

Die Funktion fdf_set_opt() setzt Optionen des Feldes fieldname.

Siehe auch fdf_set_flags().

Zurück | Zum Anfang | Nach vorne
fdf_set_javascript_action | Nach oben | fdf_set_status


fdf_set_status

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_status -- Setzt den Wert des /STATUS Schlüssels

Beschreibung

bool fdf_set_status ( resource fdf_document, string status)

Die Funktion fdf_set_status() setzt den Wert des /STATUS Schlüssels. Dieser wird bei der Anzeige in einem Warnungsfeld angezeigt.

Siehe auch fdf_get_status().

Zurück | Zum Anfang | Nach vorne
fdf_set_opt | Nach oben | fdf_set_submit_form_action


fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_submit_form_action -- Setzt die 'Submit Form Action' für ein Feld

Beschreibung

bool fdf_set_submit_form_action ( resource fdf_document, string fieldname, int trigger, string script, int flags)

Die Funktion fdf_set_submit_form_action() setzt die 'Submit Form Action' für das Feld fieldname.

Siehe auch fdf_set_javascript_action().

Zurück | Zum Anfang | Nach vorne
fdf_set_status | Nach oben | fdf_set_target_frame


fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_target_frame -- Set target frame for form display

Description

bool fdf_set_target_frame ( resource fdf_document, string frame_name)

Sets the target frame to display a result PDF defined with fdf_save_file() in.

See also fdf_save_file().

Zurück | Zum Anfang | Nach vorne
fdf_set_submit_form_action | Nach oben | fdf_set_value


fdf_set_value

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_value -- Setzt den Wert eines Feldes

Beschreibung

bool fdf_set_value ( resource fdf_document, string fieldname, string value [, int isName])

Die Funktion fdf_set_value() setzt den Wert value eines Feldes fieldname. Der Parameter value wird als String, falls der übergebene Wert ein Array ist, als Array gespeichert.

Anmerkung: In älteren Versionen des FDF-Toolkits legte der letzte Parameter fest, ob der Wert in einen PDF-Namen (isName = 1) konvertiert oder als PDf-String (isName = 0) behandelt werden sollte. Dieser Parameter wird in Version 5.0 des Toolkits nicht mehr benutzt. Aus Kompatibilitätsgründen wird der Parameter ab PHP-Version 4.3 als optional unterstützt aber ignoriert.

die Unterstützung für Arrays als Parameter value wurde ab PHP-Version 4.3 hinzugefügt.

Siehe auch fdf_get_value() und fdf_remove_item().

Zurück | Zum Anfang | Nach vorne
fdf_set_target_frame | Nach oben | fdf_set_version


fdf_set_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_version -- Sets version number for a FDF file

Description

string fdf_set_version ( resource fdf_document, string version)

This function will set the fdf version for the given fdf_document. Some features supported by this extension are only available in newer fdf versions. For the current FDF toolkit 5.0 version may be either '1.2', '1.3' or '1.4'.

See also fdf_get_version().

Zurück | Zum Anfang | Nach vorne
fdf_set_value | Nach oben | FriBiDi Funktionen


FriBiDi Funktionen

PHP Handbuch
Zurück Nach vorne

XXXII. FriBiDi Funktionen

Inhaltsverzeichnis
fribidi_log2vis -- Einen logischen String in einen visuellen konvertieren

Zurück | Zum Anfang | Nach vorne
fdf_set_version | Nach oben | fribidi_log2vis


fribidi_log2vis

(PHP 4 >= 4.0.4)

fribidi_log2vis -- Einen logischen String in einen visuellen konvertieren

Beschreibung

string fribidi_log2vis ( string str, string direction, int charset)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
FriBiDi Funktionen | Nach oben | FTP-Funktionen


FTP-Funktionen

PHP Handbuch
Zurück Nach vorne

XXXIII. FTP-Funktionen

FTP ist die Abkürzung für File Transfer Protocol (Datei-Übertragungs-Protokoll).

Die folgenden Konstanten sind definiert, sobald das FTP-Modul benutzt wird: FTP_ASCII und FTP_BINARY.

Beispiel 1. ftp()-Beispiel:

<?php
// Herstellen der Basis-Verbindung
$conn_id = ftp_connect("$ftp_server");

// Einloggen mit Benutzername und Kennwort
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
        echo "Ftp-Verbindung nicht hergestellt!";
        echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich";
        die;
    } else {
        echo "Verbunden mit $ftp_server als Benutzer $ftp_user_name";
    }

// Upload der Datei
$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);

// Upload-Status überprüfen
if (!$upload) {
        echo "Ftp upload war fehlerhaft!";
    } else {
        echo "Datei $source_file auf $ftp_server als $destination_file geschrieben";
    }

// Schließen des FTP-Streams
ftp_quit($conn_id);
?>

Inhaltsverzeichnis
ftp_alloc -- Allocates space for a file to be uploaded.
ftp_cdup -- Wechselt in das um eine Ebene höhere Verzeichnis
ftp_chdir -- Verzeichnis-Wechsel auf einem FTP-Server
ftp_chmod -- Setzt die Zugriffsrechte einer Datei über FTP
ftp_close -- Beendet eine FTP Verbindung
ftp_connect -- Stellt eine FTP-Verbindung her
ftp_delete -- Löscht eine Datei auf dem FTP-Server
ftp_exec -- Fordert die Ausführung eines Programmes auf dem FTP-Server an
ftp_fget -- Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete, lokale Datei (download)
ftp_fput -- Übertragt eine geöffnete Datei auf einen FTP-Server (upload)
ftp_get_option -- Ruft diverse Laufzeitoptionen des ausgewählten FTP-Streams ab
ftp_get -- Liest eine Datei von einem FTP-Server und speichert sie lokal (download)
ftp_login -- Anmelden einer FTP-Verbindung (Login)
ftp_mdtm -- Ermittelt die letzte Änderungszeit der angegebenen Datei
ftp_mkdir -- Erzeugt ein Verzeichnis
ftp_nb_continue -- Nimmt die Übertragung einer Datei wieder auf (nicht blockierend)
ftp_nb_fget -- Überträgt den Inhalt einer Datei von dem FTP-Server und speichert sie in eine lokal geöffnete Datei (nicht blockierend)
ftp_nb_fput -- Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)
ftp_nb_get -- Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)
ftp_nb_put -- Speichert eine Datei auf dem FTP-Server (nicht blockierend)
ftp_nlist -- Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück
ftp_pasv -- Schaltet den passiven Modus ein oder aus
ftp_put -- Überträgt eine Datei auf einen FTP-Server (upload)
ftp_pwd -- Gibt den aktuellen Verzeichnis-Namen zurück
ftp_quit -- Schließt / beendet eine FTP-Verbindung
ftp_raw -- Sendet ein beliebiges Kommando an den FTP-Server
ftp_rawlist -- Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück
ftp_rename -- Benennt eine Datei auf dem FTP-Server um
ftp_rmdir -- Löscht ein Verzeichnis
ftp_set_option -- Setzt diverse FTP Laufzeitoptionen
ftp_site -- Sendet ein SITE-Kommando zum Server
ftp_size -- Ermittelt die Größe einer angegebenen Datei
ftp_ssl_connect -- Öffnet eine sichere SSL-FTP Verbindung
ftp_systype -- Ermittelt den Systemtyp des entfernten FTP-Servers

Zurück | Zum Anfang | Nach vorne
fribidi_log2vis | Nach oben | ftp_alloc


ftp_alloc

(PHP 5)

ftp_alloc -- Allocates space for a file to be uploaded.

Description

bool ftp_alloc ( resource ftp_stream, int filesize [, string &result])

Sends an ALLO command to the remote FTP server to allocate filesize bytes of space. Returns TRUE on success, or FALSE on failure.

Anmerkung: Many FTP servers do not support this command. These servers may return a failure code (FALSE) indicating the command is not supported or a success code (TRUE) to indicate that pre-allocation is not necessary and the client should continue as though the operation were successful. Because of this, it may be best to reserve this function for servers which explicitly require preallocation.

A textual representation of the servers response will be returned by reference in result is a variable is provided.

Beispiel 1. ftp_alloc() example

<?php

$file = "/home/user/myfile";

/* connect to the server */
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
  echo "Space successfully allocated on server.  Sending $file.\n";
  ftp_put($conn_id, '/incomming/myfile', $file, FTP_BINARY);
} else {
  echo "Unable to allocate space on server.  Server said: $result\n";
}

ftp_close($conn_id);

?>

See also: ftp_put(), and ftp_fput().

Zurück | Zum Anfang | Nach vorne
FTP-Funktionen | Nach oben | ftp_cdup


ftp_cdup

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_cdup -- Wechselt in das um eine Ebene höhere Verzeichnis

Beschreibung:

int ftp_cdup ( int ftp_stream)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Geht eine Verzeichnisebene höher.

Zurück | Zum Anfang | Nach vorne
ftp_alloc | Nach oben | ftp_chdir


ftp_chdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_chdir -- Verzeichnis-Wechsel auf einem FTP-Server

Beschreibung:

int ftp_chdir ( int ftp_stream, string Verzeichnis)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Wechselt in den durch Verzeichnis angegebenen Datei-Ordner.

Zurück | Zum Anfang | Nach vorne
ftp_cdup | Nach oben | ftp_chmod


ftp_chmod

(PHP 5)

ftp_chmod -- Setzt die Zugriffsrechte einer Datei über FTP

Beschreibung

string ftp_chmod ( resource ftp_stream, int mode, string filename)

Diese Funktion ändert die Zugriffsrechte der Datei spezifiziert in filename zu mode Gegeben als Oktal Wert.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: chmod()

Zurück | Zum Anfang | Nach vorne
ftp_chdir | Nach oben | ftp_close


ftp_close

(PHP 4 >= 4.2.0, PHP 5)

ftp_close -- Beendet eine FTP Verbindung

Beschreibung

void ftp_close ( resource ftp_stream)

ftp_close() schließt ftp_stream und gibt resource frei. Nach diesem Funktionsaufruf ist die FTP-Verbindung nicht mehr nutzbar und es muss eine neue mit Hilfe von ftp_connect() erstellt werden.

Siehe auch ftp_connect()

Zurück | Zum Anfang | Nach vorne
ftp_chmod | Nach oben | ftp_connect


ftp_connect

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_connect -- Stellt eine FTP-Verbindung her

Beschreibung

int ftp_connect ( string Host [, int Port])

Gibt bei Erfolg einen Stream zurück, sonst FALSE.

ftp_connect() stellt eine FTP-Verbindung zum angegebenen Host her. Der Port-Parameter enthält optional einen alternativer Port für die Verbindung. Fehlt er oder ist er NULL, wird der Standard-FTP-Port 21 benutzt.

Zurück | Zum Anfang | Nach vorne
ftp_close | Nach oben | ftp_delete


ftp_delete

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_delete -- Löscht eine Datei auf dem FTP-Server

Beschreibung

int ftp_delete ( int ftp_stream, string path)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ftp_delete() löscht die per path angegebene Datei auf dem FTP-Server.

Zurück | Zum Anfang | Nach vorne
ftp_connect | Nach oben | ftp_exec


ftp_exec

(PHP 4 >= 4.0.3, PHP 5)

ftp_exec -- Fordert die Ausführung eines Programmes auf dem FTP-Server an

Beschreibung

bool ftp_exec ( resource ftp_stream, string command)

Sendet ein SITE EXEC Kommando (command) an den FTP-Server. Gibt TRUE zurück, wenn das Kommando erfolgreich ausgeführt wurde (der Server antwortete mit code: 200). Sonst wird FALSE zurückgegeben.

Beispiel 1. ftp_exec() Beispiel

<?php

$kommando = 'ls -al';

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ($res = ftp_exec($conn_id, $kommando)) {
    echo $kommando . " wurde erfolgreich ausgeführt<br />\n";
    echo nl2br($res);
} else {
    echo "Konnte " . $kommando . " nicht ausführen";
}
?>

Siehe auch: ftp_raw()

Zurück | Zum Anfang | Nach vorne
ftp_delete | Nach oben | ftp_fget


ftp_fget

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_fget -- Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete, lokale Datei (download)

Beschreibung:

int ftp_fget ( int ftp_stream, int fp, string remote_file, int mode)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ftp_fget() lädt das remote_file vom FTP-Server und schreibt es in die per Datei-Pointer angegebene Datei fp. Der Transfer-Modus-Parameter mode muss entweder FTP_ASCII oder FTP_BINARY sein.

Zurück | Zum Anfang | Nach vorne
ftp_exec | Nach oben | ftp_fput


ftp_fput

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_fput -- Übertragt eine geöffnete Datei auf einen FTP-Server (upload)

Beschreibung:

int ftp_fput ( int ftp_stream, string remote_file, int fp, int mode)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ftp_fput() übertragt das per Datei-Zeiger fp benannte und geöffnete File zum FTP-Server. Die übertragenen Daten werden in der über remote_file bestimmten Datei auf dem FTP-Server gespeichert. Der mode-Übertragungs-Parameter muss entweder FTP_ASCII oder FTP_BINARY sein.

Zurück | Zum Anfang | Nach vorne
ftp_fget | Nach oben | ftp_get_option


ftp_get_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_get_option -- Ruft diverse Laufzeitoptionen des ausgewählten FTP-Streams ab

Beschreibung

mixed ftp_get_option ( resource ftp_stream, int option)

Bei Erfolg wird der entsprechende Wert zurückgegeben, bei einem Fehler FALSE. Sollte option nicht unterstützt sein, so wird eine Warnung ausgegeben.

Diese Funktion gibt den Wert für die angeforderte Option option von dem angegebenen ftp_stream. wieder. Im Moment sind folgende Optionen verfügbar:

Tabelle 1. Unterstützte FTP Laufzeitoptionen

FTP_TIMEOUT_SEC Gibt den momentan gesetzen Timeout für Netzwerkoperationen zurück.

Beispiel 1. ftp_get_option() Beispiel

<?php
// Get the timeout of the given FTP stream
$timeout = ftp_get_option($conn_id, FTP_TIMEOUT_SEC);
?>

Siehe auch: ftp_set_option().

Zurück | Zum Anfang | Nach vorne
ftp_fput | Nach oben | ftp_get


ftp_get

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_get -- Liest eine Datei von einem FTP-Server und speichert sie lokal (download)

Beschreibung

int ftp_get ( int ftp_stream, string local_file, string remote_file, int mode)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ftp_get() lädt das remote_file vom FTP-Server und speichert es unter local_file auf ihren lokalen Arbeitsplatz. Der anzugebende Transfer-Parameter mode muss entweder FTP_ASCII oder FTP_BINARY sein.

Zurück | Zum Anfang | Nach vorne
ftp_get_option | Nach oben | ftp_login


ftp_login

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_login -- Anmelden einer FTP-Verbindung (Login)

Beschreibung

int ftp_login ( int ftp_stream, string Benutzername, string Passwort)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmeldung beim angegebenen FTP-Stream.

Zurück | Zum Anfang | Nach vorne
ftp_get | Nach oben | ftp_mdtm


ftp_mdtm

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_mdtm -- Ermittelt die letzte Änderungszeit der angegebenen Datei

Beschreibung

int ftp_mdtm ( int ftp_stream, string remote_file)

Bei Erfolg wird ein UNIX-Timestamp zurückgegeben, sonst -1.

ftp_mdtm() prüft den Zeitpunkt der letzten Dateiänderung und liefert diesen als UNIX-Timestamp zurück. Beim Auftreten eines Fehlers wird -1 zurückgegeben. Nicht alle FTP-Server unterstützen diese Funktionalität.

Anmerkung: ftp_mdtm() funktioniert nicht mit Verzeichnissen.

Zurück | Zum Anfang | Nach vorne
ftp_login | Nach oben | ftp_mkdir


ftp_mkdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_mkdir -- Erzeugt ein Verzeichnis

Beschreibung

string ftp_mkdir ( int ftp_stream, string Verzeichnis)

Bei Erfolg wird der Name des erzeugten Ordners, ansonsten FALSE zurückgegeben.

Erzeugt das angegebene Verzeichnis.

Zurück | Zum Anfang | Nach vorne
ftp_mdtm | Nach oben | ftp_nb_continue


ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_continue -- Nimmt die Übertragung einer Datei wieder auf (nicht blockierend)

Beschreibung

int ftp_nb_continue ( resource ftp_stream)

Nimmt die Übertragung einer Datei (nicht blockierend) wieder auf.

Gibt FTP_FAILED, FTP_FINISHED oder FTP_MOREDATA zurück.

Zurück | Zum Anfang | Nach vorne
ftp_mkdir | Nach oben | ftp_nb_fget


ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fget -- Überträgt den Inhalt einer Datei von dem FTP-Server und speichert sie in eine lokal geöffnete Datei (nicht blockierend)

Beschreibung

int ftp_nb_fget ( resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos])

ftp_nb_fget() überträgt remote_file von einem FTP-Server und schreibt den Inhalt, in die durch handle identifizierte Datei ab. Der Transfermodus mode muss entweder FTP_ASCII oder FTP_BINARY sein. Der Unterschied zwischen dieser Funktion und ftp_fget() ist, dass diese Funktion die Datei asynchron überträgt, so dass das Programm noch andere Operationen ausführen kann, während die Datei gespeichert wird.

Gibt FTP_FAILED, FTP_FINISHED, oder FTP_MOREDATA zurück.

Siehe auch ftp_nb_get(),
ftp_nb_continue(), ftp_fget(), und
ftp_get().

Zurück | Zum Anfang | Nach vorne
ftp_nb_continue | Nach oben | ftp_nb_fput


ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fput -- Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)

Beschreibung

int ftp_nb_fput ( resource ftp_stream, string remote_file, resource handle, int mode [, int startpos])

ftp_nb_fput() speichert Daten vom Dateizeiger handle bis das Ende der Datei erreicht ist. Das Ergebnis wird in remote_file auf dem FTP-Server gespeichert. Der gesetzte Übertragungsmodus mode muss entweder FTP_ASCII oder FTP_BINARY sein. Der Unterscheid zwischen dieser Funktion und ftp_fput() ist, dass diese Funktion die Datei asynchron hochlädt, so dass das Programm noch andere Operationen ausführen kann, während die Datei hochgeladen wird.

Gibt FTP_FAILED, FTP_FINISHED, oder FTP_MOREDATA zurück.

Siehe auch ftp_nb_put(),
ftp_nb_continue(), ftp_put()
und ftp_fput().

Zurück | Zum Anfang | Nach vorne
ftp_nb_fget | Nach oben | ftp_nb_get


ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get -- Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)

Beschreibung

int ftp_nb_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos])

ftp_nb_get() überträgt remote_file von dem FTP-Server, und speichert sie lokal inlocal_file. Der Transfermodus mode muss entweder FTP_ASCII oder FTP_BINARY sein. Der Unterscheid zwischen dieser Funktion und ftp_get() ist, dass diese Funktion die Datei asynchron überträgt, so dass das Programm noch andere Operationen ausführen kann, während die Datei heruntergeladen wird.

Gibt FTP_FAILED, FTP_FINISHED, oder FTP_MOREDATA zurück.

Beispiel 1. ftp_nb_get() Beispiel

// Download initialisieren
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
   /* ... */

   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Es gab einen Fehler bei der Übertragung.";
   exit(1);
}

Beispiel 2. Ein Download mit ftp_nb_get() fortsetzen

// Initialisieren
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));

// ODER: $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
// FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // Irgendwas machen ...
   echo ".";

   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Es gab einen Fehler bei der Übertragung.";
   exit(1);
}

Beispiel 3. Ein Download mit Hilfe von ftp_nb_get() an Position 100 fortsetzen und in eine neue Datei schreiben

// Autoseek deaktivieren
ftp_set_option($my_connection, FTP_AUTOSEEK, FALSE);

// Initialisieren
$ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   // Irgendwas machen ...
   echo ".";

   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}

In dem oberen Beispiel ist newfile 100 Bytes kleiner als README auf dem FTP-Server, weil wir erst beim Offset 100 angefangen haben zu lesen. Hätten wir FTP_AUTOSEEK nicht deaktiviert so bestünden die ersten 100 Bytes von newfile aus'\0'.

Siehe auch ftp_nb_fget(),
ftp_nb_continue(),
ftp_get() und ftp_fget().

Zurück | Zum Anfang | Nach vorne
ftp_nb_fput | Nach oben | ftp_nb_put


ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_put -- Speichert eine Datei auf dem FTP-Server (nicht blockierend)

Beschreibung

int ftp_nb_put ( resource ftp_stream, string remote_file, string local_file, int mode [, int startpos])

ftp_nb_put() speichert local_file als remote_file auf dem FTP-Server. Der Transfermodus mode muss entweder FTP_ASCII oder FTP_BINARY sein. Der Unterschied zwischen dieser Funktion und ftp_put() ist, dass diese, die Datei asynchron hochlädt, so dass das Programm noch andere Operationen durchführen kann.

Gibt FTP_FAILED, FTP_FINISHED, oder FTP_MOREDATA zurück.

Beispiel 1. ftp_nb_put() Beispiel

// Initiate the Upload
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Irgendwas machen
   echo ".";

   // Upload fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Beim Transfer trat ein Fehler auf";
   exit(1);
}

Beispiel 2. Ein Upload mit ftp_nb_put() wieder aufnehmen

//Initialisieren
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
                      FTP_BINARY, ftp_size("test.remote"));
// ODER: $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
// FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // Irgendwas machen
   echo ".";

   // Upload fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Beim Transfer trat ein Fehler auf";
   exit(1);
}

Siehe auch ftp_nb_fput(),
ftp_nb_continue(), ftp_put()
und ftp_fput().

Zurück | Zum Anfang | Nach vorne
ftp_nb_get | Nach oben | ftp_nlist


ftp_nlist

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_nlist -- Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück

Beschreibung

array ftp_nlist ( int ftp_stream, string Verzeichnis)

Gibt ein Array aus Dateinamen oder bei einem Fehler FALSE zurück.

Zurück | Zum Anfang | Nach vorne
ftp_nb_put | Nach oben | ftp_pasv


ftp_pasv

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_pasv -- Schaltet den passiven Modus ein oder aus

Beschreibung

int ftp_pasv ( int ftp_stream, int pasv)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ftp_pasv() schaltet in den passiven Modus, wenn der pasv-Parameter TRUE ist (ausschalten per pasv-Parameter gleich FALSE). Im passiven Modus werden Datenverbindungen durch den Client statt durch den Server initiiert.

Zurück | Zum Anfang | Nach vorne
ftp_nlist | Nach oben | ftp_put


ftp_put

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_put -- Überträgt eine Datei auf einen FTP-Server (upload)

Beschreibung

int ftp_put ( int ftp_stream, string remote_file, string local_file, int mode)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ftp_put() speichert die per local_file bestimmte Datei auf den FTP-Server als Datei namens remote_file. Der Übertragungs-Modus-Parameter mode muss entweder FTP_ASCII oder FTP_BINARY lauten.

Beispiel 1. ftp_put()-Beispiel:

$upload = ftp_put ($conn_id, "$destination_file", "$source_file", FTP_ASCII);

Zurück | Zum Anfang | Nach vorne
ftp_pasv | Nach oben | ftp_pwd


ftp_pwd

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_pwd -- Gibt den aktuellen Verzeichnis-Namen zurück

Beschreibung:

string ftp_pwd ( int ftp_stream)

Gibt das aktuelle Verzeichnis oder - im Fehlerfall - FALSE zurück.

Zurück | Zum Anfang | Nach vorne
ftp_put | Nach oben | ftp_quit


ftp_quit

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_quit -- Schließt / beendet eine FTP-Verbindung

Beschreibung

int ftp_quit ( int ftp_stream)

ftp_quit() schließt die per ftp_stream bezeichnete FTP-Sitzung.

Zurück | Zum Anfang | Nach vorne
ftp_pwd | Nach oben | ftp_raw


ftp_raw

(PHP 5)

ftp_raw -- Sendet ein beliebiges Kommando an den FTP-Server

Beschreibung

array ftp_raw ( resource ftp_stream, string command)

Sendet ein beliebiges Kommando command an den FTP-Server. Gibt die Antwort des Servers als Array von Strings zurück. Die Antwort des Servers wird weder geparsed, noch stellt ftp_raw() fest, ob das Kommando erfolgreich ausgeführt wurde.

Beispiel 1. Der Gebrauch von ftp_raw(), um sich manuell auf einem FTP-Server anzumelden.

<?php
$fp = ftp_connect("ftp.example.com");

/* This is the same as:
   ftp_login($fp, "joeblow", "secret"); */
ftp_raw($fp, "USER joeblow");
ftp_raw($fp, "PASS secret");
?>

Siehe auch ftp_exec()

Zurück | Zum Anfang | Nach vorne
ftp_quit | Nach oben | ftp_rawlist


ftp_rawlist

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_rawlist -- Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück

Beschreibung:

int ftp_rawlist ( int ftp_stream, string Verzeichnis)

ftp_rawlist() führt den FTP LIST-Befehl aus und gibt das Ergebnis in einem Array zurück. Jedes Array-Element entspricht einer Textzeile. Die Ausgabe wird von PHP in keinster Weise ausgewertet. Das System-Art-Merkmal, welches per ftp_systype()-Funktion zurück gegeben wird, kann benutzt werden um die Auswertungsart der Ergebnisrückgabe zu ermitteln.

Zurück | Zum Anfang | Nach vorne
ftp_raw | Nach oben | ftp_rename


ftp_rename

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_rename -- Benennt eine Datei auf dem FTP-Server um

Beschreibung

int ftp_rename ( int ftp_stream, string from, string to)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ftp_rename() benennt die mit from angegebene Datei in toum.

Zurück | Zum Anfang | Nach vorne
ftp_rawlist | Nach oben | ftp_rmdir


ftp_rmdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_rmdir -- Löscht ein Verzeichnis

Beschreibung:

int ftp_rmdir ( int ftp_stream, string Verzeichnis)

Bei Erfolg wird TRUE, ansonsten FALSE zurück gegeben.

Löscht das angegebene Verzeichnis.

Zurück | Zum Anfang | Nach vorne
ftp_rename | Nach oben | ftp_set_option


ftp_set_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_set_option -- Setzt diverse FTP Laufzeitoptionen

Beschreibung

bool ftp_set_option ( resource ftp_stream, int option, mixed value)

Gibt TRUE zurück, falls option erfolgreich gesetzt wurde. Bei einem Fehler ist wird FALSE zurückgegeben. Eine Warnung wird ausgegeben, wenn option nicht unterstützt wird, oder value nicht mit der gültigen Option option genutzt wurde.

Diese Funktion kontrolliert diverse FTP Laufzeitoptionen für den angegebenen FTP-Stream. Die Wahl des value Parameters hängt von der Option option ab, die geändert werden soll. Momentan werden folgende Optionen unterstützt:

Tabelle 1. Unterstützte FTP Laufzeitoptionen

FTP_TIMEOUT_SEC | Ändert den Timeout in Sekunden für alle folgenden Netzwerkoperationen. value muss eine ganze Zahl sein, die größer als 0 ist. Der Standardwert des Timeouts ist 90 Sekunden.
FTP_AUTOSEEK | Falls aktiviert, werden GET oder PUT Anfragen mit einem resumepos oder startpos Parameter, innerhalb der Datei erst die angegebene Position suchen. Dies ist standardmäßig aktiviert.

Beispiel 1. ftp_set_option() Beispiel

<?php
// Set the network timeout to 10 seconds
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
?>

Siehe auch ftp_get_option().

Zurück | Zum Anfang | Nach vorne
ftp_rmdir | Nach oben | ftp_site


ftp_site

(PHP 3>= 3.0.15, PHP 4 , PHP 5)

ftp_site -- Sendet ein SITE-Kommando zum Server

Beschreibung:

int ftp_site ( int ftp_stream, string cmd)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ftp_site() sendet das in cmd stehende Kommando zum FTP-Server. SITE-Kommandos sind nicht standardisiert und von Server zu Server verschieden. Sie sind nützlich, um Sachen wie Datei-Zugriffsrechte und Gruppen-Mitgliedschaften zu handhaben.

Beispiel 1. Senden eines SITE Kommandos an den FTP Server

<?php
/* Zum FTP Server verbinden */
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Unable to connect to ftp.example.com');

/* Als "user" mit dem Passwort "pass" einloggen */
if (!ftp_login($conn, 'user', 'pass')) die('Error logging into ftp.example.com');

/*  Das Kommando "SITE CHMOD 0600 /home/user/privatefile" an den Server senden */
if (ftp_site($conn, 'CHMOD 0600 /home/user/privatefile')) {
   echo "Command executed successfully.\n";
} else {
   die('Command failed.');
}
?>

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: ftp_raw()

Zurück | Zum Anfang | Nach vorne
ftp_set_option | Nach oben | ftp_size


ftp_size

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_size -- Ermittelt die Größe einer angegebenen Datei

Beschreibung

int ftp_size ( int ftp_stream, string remote_file)

Gibt die Dateigröße oder -1 bei Fehlern zurück.

ftp_size() ermittelt die Größe einer Datei. Wenn ein Fehler vorliegt, so z.B. wenn die Datei nicht existiert, wird -1 zurückgegeben. Nicht alle FTP-Server unterstützen diese Funktionalität.

Zurück | Zum Anfang | Nach vorne
ftp_site | Nach oben | ftp_ssl_connect


ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5)

ftp_ssl_connect -- Öffnet eine sichere SSL-FTP Verbindung

Beschreibung

resource ftp_ssl_connect ( string host [, int port [, int timeout]])

Gibt bei Erfolg einen SSL-FTP Stream zurück, im Fehlerfall FALSE.

ftp_ssl_connect() öffnet eine SSL-FTP Verbindung zu dem angegebenen host. Der port Parameter gibt einen alternativen Port an, zu dem verbunden werden soll. Sollte jener nicht gesetzt oder Null sein, so wird der Standardport 21 benutzt.

Der timeout Parameter setzt das Timeout für alle folgenden Netzwerkoperationen. Falls nicht gesetzt, wird 90 Sekunden als Standardwert genutzt. Der Timeout kann jeder Zeit mit Hilfe von ftp_set_option() und ftp_get_option() jederzeit gesetzt bzw. abgerufen werden.

Warum diese Funktion vielleicht nicht vorhanden ist: ftp_ssl_connect() ist nur verfügbar, wenn OpenSSL Unterstützung in Ihrer PHP-Version vorhanden ist. Falls dies nicht nicht der Fall ist und Sie haben FTP-Unterstützung einkompiliert, dann liegt es daran.

Siehe auch ftp_connect().

Zurück | Zum Anfang | Nach vorne
ftp_size | Nach oben | ftp_systype


ftp_systype

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_systype -- Ermittelt den Systemtyp des entfernten FTP-Servers

Beschreibung:

string ftp_systype ( int ftp_stream)

Gibt den entfernten Systemtyp zurück bzw. FALSE bei einem Fehler.

Beispiel 1. ftp_systype() Beispiel

<?php

// FTP Verbindung
$ftp = ftp_connect('ftp.einhost.de');
ftp_login($ftp, 'benutzer', 'passwort');

// Systemtyp abfragen
if ($type = ftp_systype($ftp)) {
    echo "Einhost.de ist vom Typ $type\n";
} else {
    echo "Konnte den Systemtyp nicht bestimmen";
}

?>

Dieses Beispiel gibt bei einem Unix-System folgendes aus

Einhost.de ist vom Typ UNIX

Zurück | Zum Anfang | Nach vorne
ftp_ssl_connect | Nach oben | Function Handling functions


Function Handling functions

PHP Handbuch
Zurück Nach vorne

XXXIV. Function Handling functions

These functions all handle various operations involved in working with functions.

Inhaltsverzeichnis
call_user_func_array -- Call a user function given with an array of parameters
call_user_func -- Aufruf einer benutzerdefinierten Funktion
create_function -- Erzeugen einer anonymen / temporären (Lambda-Stil) Funktion
func_get_arg -- Gibt einen Eintrag aus einer Liste von Argumenten zurück
func_get_args -- Gibt ein Array zurück, das die Liste der einer Funktion übergebenen Argumente enthält
func_num_args -- Gibt die Anzahl der einer Funktion übergebenen Argumente zurück
function_exists -- Falls die angegebene Funktion definiert ist, wird TRUE zurück gegeben
get_defined_functions -- Returns an array of all defined functions
register_shutdown_function -- Registriert eine Funktion zur Ausführung beim Skript-Abschluss
register_tick_function -- Register a function for execution on each tick
unregister_tick_function -- De-register a function for execution on each tick

Zurück | Zum Anfang | Nach vorne
ftp_systype | Nach oben | call_user_func_array


call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array -- Call a user function given with an array of parameters

Description

mixed call_user_func_array ( callback function [, array param_arr])

Call a user defined function given by function, with the parameters in param_arr. For example:

Beispiel 1. call_user_func_array() example

<?php
function debug($var, $val)
{
    echo "***DEBUGGING\nVARIABLE: $var\nVALUE:";
    if (is_array($val) || is_object($val) || is_resource($val)) {
        print_r($val);
    } else {
        echo "\n$val\n";
    }
    echo "***\n";
}

$c = mysql_connect();
$host = $_SERVER["SERVER_NAME"];

call_user_func_array('debug', array("host", $host));
call_user_func_array('debug', array("c", $c));
call_user_func_array('debug', array("_POST", $_POST));
?>

See also call_user_func().

Zurück | Zum Anfang | Nach vorne
Function Handling functions | Nach oben | call_user_func


call_user_func

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

call_user_func -- Aufruf einer benutzerdefinierten Funktion

Description

mixed call_user_func ( string function_name [, mixed parameter [, mixed ...]])

Ruft die Funktion mit Namen function_name mit den Parametern parameters auf.

function friseur ($type) {
    print "Sie möchten einen $type-Kopf, kein Problem<br>";
}
call_user_func ('friseur', "Bubi");
call_user_func ('friseur', "Pilz");

Zurück | Zum Anfang | Nach vorne
call_user_func_array | Nach oben | create_function


create_function

(PHP 4 >= 4.0.1, PHP 5)

create_function -- Erzeugen einer anonymen / temporären (Lambda-Stil) Funktion

Beschreibung:

string create_function ( string args, string code)

Erzeugt eine anonyme Funktion an Hand der übergebenen Parameter und gibt einen eindeutigen Namen für diese zurück. Normalerweise sind die args als mit "'" begrenzte Strings zu übergeben. Dies gilt auch für code. Dadurch werden die Variablen vor dem Parsen geschützt. Falls sie """ verwenden, müssen sie die Variablen-Namen "escapen", wie z.B. \$avar.

Dieser Befehl kann z.B. verwendet werden, um eine Funktion an Hand von Informationen zu erzeugen, die erst zur Laufzeit vorliegen.

Beispiel 1. Erzeugen einer anonymen / temporären Funktion per create_function():

$newfunc = create_function('$a,$b','return "ln($a) + ln($b) = ".log($a * $b);');
echo "Neue Temp-Funktion: $newfunc\n";
echo $newfunc(2,M_E)."\n";
// Ausgabe:
// Neue Temp-Funktion: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
Sie können auch eine allgemeine Handhabungs-Funktion erstellen, die einen mehr oder weniger große Anzahl an Operationen mit einer Liste von Parametern durchführt.

Beispiel 2. Beispiel zum o.a. Verwendungszweck:

function process($var1, $var2, $farr) {
    for ($f=0; $f < count($farr); $f++)
        echo $farr[$f]($var1,$var2)."\n";
}

// Erzeugung eines Bündels an mathematischen Funktionen
$f1 = 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 = 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b;} else {return false;}';
$farr = array(
    create_function('$x,$y', 'return "als trig: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "als Hypotenuse: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nGebrauch des ersten Arrays der anonymen Funktionen\n";
echo "Parameter: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// Erzeugung eines Bündels an String-Behandlungs-Routinen
$garr = array(
    create_function('$b, $a','if (strncmp ($a, $b, 3) == 0) return "** \"$a\" '.
        'und \"$b\"\n** Sieht für mich gleich aus! (ansehen der ersten 3 Zeichen)";'),
    create_function('$a, $b','; return "CRCs: ".crc32($a)." , ".crc32(b);'),
    create_function('$a, $b','; return "ähnlich(a, b) = ".similar_text($a, $b, &$p)."($p%)";')
    );
echo "\nGebrauch des zweiten Arrays der anonymen Funktionen\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
wenn sie nun den o.a Code ausführen lassen, wird folgendes ausgegeben :

Gebrauch des ersten Arrays der anonymen Funktionen
Parameter: 2.3445, M_PI
als trig: -1.6291725057799
als Hypotenuse: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a/b) = 0.27122299212594

Gebrauch des zweiten Arrays der anonymen Funktionen
** "Twas the night" und "Twas brilling and the slithy toves"
** Sieht für mich gleich aus! (ansehen der ersten 3 Zeichen)
CRCs: -725381282 , 1908338681
ähnlich(a,b) = 11(45.833333333333%)

Möglicherweise liegt der häufigste Anwendungsfall für Funktionen im Lambda-Stil (anonym) bei den Callback-Funktionen, also z.B. beim Gebrauch von array_walk() oder usort().

Beispiel 3. Gebrauch der anonymen Funktionen als Callback-Funktion:

$av = array("der ","ein ","dieser ","jener ");
array_walk($av, create_function('&$v,$k','$v = $v."Zug";'));
print_r($av);  // mit PHP3 benutzen sie bitte var_dump()
// Ausgaben:
// Array
// (
//     [0] => der Zug
//     [1] => ein Zug
//     [2] => dieser Zug
//     [3] => jener Zug
// )

// Ein Array aus Strings nach Länge geordnet
$sv = array("kurz","länger","noch länger","dieser ist am längsten");
print_r($sv);
// Ausgaben:
// Array
// (
//     [0] => kurz
//     [1] => länger
//     [2] => noch länger
//     [3] => dieser ist am längsten
// )

// Sortierung von lang nach kurz
usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);
// Ausgabe:
// Array
// (
//     [0] => dieser ist am längsten
//     [1] => noch länger
//     [2] => länger
//     [3] => kurz
// )

Zurück | Zum Anfang | Nach vorne
call_user_func | Nach oben | func_get_arg


func_get_arg

(PHP 4 , PHP 5)

func_get_arg -- Gibt einen Eintrag aus einer Liste von Argumenten zurück

Beschreibung:

int func_get_arg ( int arg_num)

Gibt das Argument des an der arg_num stehenden Stelle in eine benutzer-definierte Liste zurück. Der Zähler hierfür beginnt bei 0. Der Aufruf von func_get_arg() ausserhalb einer Funktions-Definition erzeugt eine Warnung.

Ist arg_num grösser als die Anzahl der vorhandenen Argumente, wird eine Warnung aus- und FALSE zurück gegeben.

<?php
function foo() {
    $numargs = func_num_args();
    echo "Anzahl der Argumente: $numargs<br>\n";
    if ($numargs >= 2) {
        echo "Das 2. Argument ist: " . func_get_arg (1) . "<br>\n";
    }
}

foo (1, 2, 3);
?>

func_get_arg() kann in Verbindung mit
func_num_args() und
func_get_args() gebraucht werden, um
benutzer-definierte Funktionen mit variabler Argument-Liste zu
erstellen.

Anmerkung: Diese Funktion steht ab PHP 4 zur Verfügung.

Zurück | Zum Anfang | Nach vorne
create_function | Nach oben | func_get_args


func_get_args

(PHP 4 , PHP 5)

func_get_args -- Gibt ein Array zurück, das die Liste der einer Funktion übergebenen Argumente enthält

Beschreibung:

array func_get_args ( void )

In einem Array wird jedes Element zurück gegeben, das einer benutzerdefinierten Funktion übergeben wurde. Sollten sie dies ausserhalb einer eigenen (benutzer-definierten) Funktion anwenden, wird eine Warnung ausgegeben.

<?php
function foo() {
    $numargs = func_num_args();
    echo "Anzahl der Argumente: $numargs<br>\n";
    if ($numargs >= 2) {
        echo "Das 2. Argument ist: " . func_get_arg (1) . "<br>\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i ist: " . $arg_list[$i] . "<br>\n";
    }
}

foo (1, 2, 3);
?>

func_get_args() kann in Verbindung mit
func_num_args() und
func_get_arg() verwendet werden, um einer
benutzer-definierten Funktion eine Argument-Liste mit variabler
Länge zu übergeben.

Anmerkung: Diese Funktion steht ab PHP 4 zur Verfügung.

Zurück | Zum Anfang | Nach vorne
func_get_arg | Nach oben | func_num_args


func_num_args

(PHP 4 , PHP 5)

func_num_args -- Gibt die Anzahl der einer Funktion übergebenen Argumente zurück

Beschreibung:

int func_num_args ( void )

Die einer benutzer-definierten Funktion übergebene Anzahl an Argumenten wird zurück gegeben. Falls func_num_args() ausserhalb einer benutzer-definierten Funktion Verwendung findet, wird eine Warnung ausgegeben.

<?php
function foo() {
    $numargs = func_num_args();
    echo "Anzahl der Argumente: $numargs\n";
}

foo (1, 2, 3);  // Ausgabe: 'Anzahl der Argumente: 3'
?>

func_num_args() kann in Verbindung mit
func_get_arg() und
func_get_args() benutzt werden, um einer
benutzer-definerten Funktion eine variable Anzahl von Argumenten
zu übergeben.

Anmerkung: Diese Funktion wurde in PHP 4 hinzu gefügt.

Zurück | Zum Anfang | Nach vorne
func_get_args | Nach oben | function_exists


function_exists

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

function_exists -- Falls die angegebene Funktion definiert ist, wird TRUE zurück gegeben

Beschreibung:

int function_exists ( string function_name)

Prüft die Liste der definierten Funktionen auf das Vorhanden sein der Funktion mit dem Namen function_name . Sofern vorhanden wird TRUE, sonst FALSE zurück gegeben.

Zurück | Zum Anfang | Nach vorne
func_num_args | Nach oben | get_defined_functions


get_defined_functions

(PHP 4 >= 4.0.4, PHP 5)

get_defined_functions -- Returns an array of all defined functions

Description

array get_defined_functions ( void )

This function returns an multidimensional array containing a list of all defined functions, both built-in (internal) and user-defined. The internal functions will be accessible via $arr["internal"], and the user defined ones using $arr["user"] (see example below).

<?php
function myrow($id, $data)
{
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

Will output something along the lines of:

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

See also get_defined_vars() and get_defined_constants().

Zurück | Zum Anfang | Nach vorne
function_exists | Nach oben | register_shutdown_function


register_shutdown_function

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

register_shutdown_function -- Registriert eine Funktion zur Ausführung beim Skript-Abschluss

Beschreibung:

int register_shutdown_function ( string func)

Die mit func benannte Funktion wird im Skript zwecks Ausführung an dessen Ende eingetragen.

Bekannte Problemfälle:

Da innerhalb dieser Funktion keinerlei Ausgabe im Browser erzeugt werden, können sie die registrierte Funktion nicht mit print oder echo usw. debuggen.

Zurück | Zum Anfang | Nach vorne
get_defined_functions | Nach oben | register_tick_function


register_tick_function

(PHP 4 >= 4.0.3, PHP 5)

register_tick_function -- Register a function for execution on each tick

Description

void register_tick_function ( callback function [, mixed arg])

Registers the function named by func to be executed when a tick is called. Also, you may pass an array consisting of an object and a method as the func.

Beispiel 1. register_tick_function() example

<?php
// using a function as the callback
register_tick_function('my_function', true);

// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>

See also declare() and unregister_tick_function().

Zurück | Zum Anfang | Nach vorne
register_shutdown_function | Nach oben | unregister_tick_function


unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5)

unregister_tick_function -- De-register a function for execution on each tick

Description

void unregister_tick_function ( string function_name)

De-registers the function named by function_name so it is no longer executed when a tick is called.

Zurück | Zum Anfang | Nach vorne
register_tick_function | Nach oben | GNU Gettext


GNU Gettext

PHP Handbuch
Zurück Nach vorne

XXXV. GNU Gettext

Die gettext Funktionen implementieren eine NLS (Native Language Support) API, welche zur Internationalisierung von PHP Anwendungen genutzt werden kann. Eine ausführliche Erklärung der folgenden Funktionen ist in der GNU gettext Dokumentation zu finden.

Inhaltsverzeichnis
bind_textdomain_codeset -- Specify the character encoding in which the messages from the DOMAIN message catalog will be returned
bindtextdomain -- Setzt den Pfad für einen Textbereich
dcgettext -- Setzt den Textbereich für eine Abfrage neu
dcngettext -- Plural version of dcgettext
dgettext -- Setzt den Textbereich für eine Abfrage neu
dngettext -- Plural version of dgettext
gettext -- Liefert eine Übersetzung für den aktuellen Textbereich
ngettext -- Plural version of gettext
textdomain -- Setzt den Standardbereich

Zurück | Zum Anfang | Nach vorne
unregister_tick_function | Nach oben | bind_textdomain_codeset


bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5)

bind_textdomain_codeset -- Specify the character encoding in which the messages from the DOMAIN message catalog will be returned

Description

string bind_textdomain_codeset ( string domain, string codeset)

With bind_textdomain_codeset(), you can set in which encoding will be messages from domain returned by gettext() and similar functions.

Zurück | Zum Anfang | Nach vorne
GNU Gettext | Nach oben | bindtextdomain


bindtextdomain

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

bindtextdomain -- Setzt den Pfad für einen Textbereich

Beschreibung

string bindtextdomain ( string domain, string directory)

Die Funktion bindtextdomain() setzt den Pfad für einen Textbereich.

Zurück | Zum Anfang | Nach vorne
bind_textdomain_codeset | Nach oben | dcgettext


dcgettext

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

dcgettext -- Setzt den Textbereich für eine Abfrage neu

Beschreibung

string dcgettext ( string domain, string message, int category)

Die Funktion dcgettext() erlaubt es, den Textbereich für die Wirkungsdauer von einem gettext() neu zu setzen. Man kann ausserdem eine Kategorie angeben.

Zurück | Zum Anfang | Nach vorne
bindtextdomain | Nach oben | dcngettext


dcngettext

(PHP 4 >= 4.2.0, PHP 5)

dcngettext -- Plural version of dcgettext

Description

string dcngettext ( string domain, string msgid1, string msgid2, int n, int category)

This function allows you to override the current domain for a single plural message lookup. It also allows you to specify a category.

See also ngettext().

Zurück | Zum Anfang | Nach vorne
dcgettext | Nach oben | dgettext


dgettext

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

dgettext -- Setzt den Textbereich für eine Abfrage neu

Beschreibung

string dgettext ( string domain, string message)

Die Funktion dgettext() erlaubt es, den Textbereich für die Wirkungsdauer von einem gettext() neu zu setzen.

Zurück | Zum Anfang | Nach vorne
dcngettext | Nach oben | dngettext


dngettext

(PHP 4 >= 4.2.0, PHP 5)

dngettext -- Plural version of dgettext

Description

string dngettext ( string domain, string msgid1, string msgid2, int n)

The dngettext() function allows you to override the current domain for a single plural message lookup.

See also ngettext().

Zurück | Zum Anfang | Nach vorne
dgettext | Nach oben | gettext


gettext

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

gettext -- Liefert eine Übersetzung für den aktuellen Textbereich

Beschreibung

string gettext ( string message)

Diese Funktion gibt einen übersetzten String zurück, falls einer in der Übersetzungstabelle gefunden wird, andernfalls den übergebenen Originalstring. Als Alias für diese Funktion kann ein Unterstrich benutzt werden.

Beispiel 1. gettext()-check

<?php
// Sprache auf "German" setzen
putenv ("LANG=de");

// Pfad zu den Übersetzungstabellen setzen
bindtextdomain ("myPHPApp", "./locale");

// Textbereich auswählen
textdomain ("myPHPApp");

// Text ausgeben
print (gettext ("Welcome to My PHP Application"));
?>

Zurück | Zum Anfang | Nach vorne
dngettext | Nach oben | ngettext


ngettext

(PHP 4 >= 4.2.0, PHP 5)

ngettext -- Plural version of gettext

Description

string ngettext ( string msgid1, string msgid2, int n)

ngettext() returns correct plural form of message identified by msgid1 and msgid2 for count n. Some languages have more than one form for plural messages dependent on the count.

Beispiel 1. ngettext() example

<?php

setlocale(LC_ALL, 'cs_CZ');
printf(ngettext("%d window", "%d windows", 1), 1); // 1 okno
printf(ngettext("%d window", "%d windows", 2), 2); // 2 okna
printf(ngettext("%d window", "%d windows", 5), 5); // 5 oken

?>

Zurück | Zum Anfang | Nach vorne
gettext | Nach oben | textdomain


textdomain

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

textdomain -- Setzt den Standardbereich

Beschreibung

int textdomain ( [string library])

Diese Funktion setzt den für gettext() Aufrufe zu verwendenden Textbereich. Der vorherige Standardbereich wird zurück gegeben. Ein Aufruf ohne Parameter liefert den aktuellen Standardbereich ohne diesen zu ändern.

Zurück | Zum Anfang | Nach vorne
ngettext | Nach oben | GMP Functions


GMP Functions

PHP Handbuch
Zurück Nach vorne

XXXVI. GMP Functions

Einführung

These functions allow you to work with arbitrary-length integers using the GNU MP library.

These functions have been added in PHP 4.0.4.

Anmerkung: Most GMP functions accept GMP number arguments, defined as resource below. However, most of these functions will also accept numeric and string arguments, given that it is possible to convert the latter to a number. Also, if there is a faster function that can operate on integer arguments, it would be used instead of the slower function when the supplied arguments are integers. This is done transparently, so the bottom line is that you can use integers in every function that expects GMP number. See also the gmp_init() function.

Warnung

If you want to explicitly specify a large integer, specify it as a string. If you don't do that, PHP will interpret the integer-literal first, possibly resulting in loss of precision, even before GMP comes into play.

Anmerkung: This extension is not available on Windows platforms.

Anforderungen

You can download the GMP library from http://www.swox.com/gmp/. This site also has the GMP manual available.

You will need GMP version 2 or better to use these functions. Some functions may require more recent version of the GMP library.

Installation

In order to have these functions available, you must compile PHP with GMP support by using the --with-gmp option.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

GMP_ROUND_ZERO (integer)

GMP_ROUND_PLUSINF (integer)

GMP_ROUND_MINUSINF (integer)

Beispiele

Beispiel 1. Factorial function using GMP

<?php
function fact($x)
{
    if ($x <= 1) {
        return 1;
    } else {
        return gmp_mul($x, fact($x-1));
    }
}

echo gmp_strval(fact(1000)) . "\n";
?>

This will calculate factorial of 1000 (pretty big number) very fast.

Siehe auch

More mathematical functions can be found in the sections BCMath Arbitrary Precision Mathematics Functions and Mathematical Functions.

Inhaltsverzeichnis
gmp_abs -- Absolute value
gmp_add -- Add numbers
gmp_and -- Logical AND
gmp_clrbit -- Clear bit
gmp_cmp -- Compare numbers
gmp_com -- Calculates one's complement
gmp_div_q -- Divide numbers
gmp_div_qr -- Divide numbers and get quotient and remainder
gmp_div_r -- Remainder of the division of numbers
gmp_div -- Alias of gmp_div_q()
gmp_divexact -- Exact division of numbers
gmp_fact -- Factorial
gmp_gcd -- Calculate GCD
gmp_gcdext -- Calculate GCD and multipliers
gmp_hamdist -- Hamming distance
gmp_init -- Create GMP number
gmp_intval -- Convert GMP number to integer
gmp_invert -- Inverse by modulo
gmp_jacobi -- Jacobi symbol
gmp_legendre -- Legendre symbol
gmp_mod -- Modulo operation
gmp_mul -- Multiply numbers
gmp_neg -- Negate number
gmp_or -- Logical OR
gmp_perfect_square -- Perfect square check
gmp_popcount -- Population count
gmp_pow -- Raise number into power
gmp_powm -- Raise number into power with modulo
gmp_prob_prime -- Check if number is "probably prime"
gmp_random -- Random number
gmp_scan0 -- Scan for 0
gmp_scan1 -- Scan for 1
gmp_setbit -- Set bit
gmp_sign -- Sign of number
gmp_sqrt -- Calculate square root
gmp_sqrtrem -- Square root with remainder
gmp_strval -- Convert GMP number to string
gmp_sub -- Subtract numbers
gmp_xor -- Logical XOR

Zurück | Zum Anfang | Nach vorne
textdomain | Nach oben | gmp_abs


gmp_abs

(PHP 4 >= 4.0.4, PHP 5)

gmp_abs -- Absolute value

Description

resource gmp_abs ( resource a)

Returns absolute value of a.

Beispiel 1. gmp_abs() example

<?php
$abs1 = gmp_abs("274982683358");
$abs2 = gmp_abs("-274982683358");

echo gmp_strval($abs1) . "\n";
echo gmp_strval($abs2) . "\n";
?>

The printout of the above program will be:

274982683358
274982683358

Zurück | Zum Anfang | Nach vorne
GMP Functions | Nach oben | gmp_add


gmp_add

(PHP 4 >= 4.0.4, PHP 5)

gmp_add -- Add numbers

Description

resource gmp_add ( resource a, resource b)

Add two GMP numbers. The result will be a GMP number representing the sum of the arguments.

Beispiel 1. gmp_add() example

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

The printout of the above program will be:

200000000000000

Zurück | Zum Anfang | Nach vorne
gmp_abs | Nach oben | gmp_and


gmp_and

(PHP 4 >= 4.0.4, PHP 5)

gmp_and -- Logical AND

Description

resource gmp_and ( resource a, resource b)

Calculates logical AND of two GMP numbers.

Beispiel 1. gmp_and() example

<?php
$and1 = gmp_and("0xfffffffff4", "0x4");
$and2 = gmp_and("0xfffffffff4", "0x8");
echo gmp_strval($and1) . "\n";
echo gmp_strval($and2) . "\n";
?>

The printout of the above program will be:

4
0

Zurück | Zum Anfang | Nach vorne
gmp_add | Nach oben | gmp_clrbit


gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_clrbit -- Clear bit

Description

void gmp_clrbit ( resource &a, int index)

Clears (sets to 0) bit index in a. The index starts at 0.

Anmerkung: Unlike most of the other GMP functions, gmp_clrbit() must be called with a GMP resource that already exists (using gmp_init() for example). One will not be automatically created.

Beispiel 1. gmp_clrbit() example

<?php
$a = gmp_init("0xff");
gmp_clrbit($a, 0); // index starts at 0, least significant bit
echo gmp_strval($a) . "\n";
?>

The printout of the above program will be:

254

See also gmp_setbit().

Zurück | Zum Anfang | Nach vorne
gmp_and | Nach oben | gmp_cmp


gmp_cmp

(PHP 4 >= 4.0.4, PHP 5)

gmp_cmp -- Compare numbers

Description

int gmp_cmp ( resource a, resource b)

Returns a positive value if a > b, zero if a = b and a negative value if a < b.

Beispiel 1. gmp_cmp() example

<?php
$cmp1 = gmp_cmp("1234", "1000"); // greater than
$cmp2 = gmp_cmp("1000", "1234"); // less than
$cmp3 = gmp_cmp("1234", "1234"); // equal to

echo "$cmp1 $cmp2 $cmp3\n";
?>

The printout of the above program will be:

1 -1 0

Zurück | Zum Anfang | Nach vorne
gmp_clrbit | Nach oben | gmp_com


gmp_com

(PHP 4 >= 4.0.4, PHP 5)

gmp_com -- Calculates one's complement

Description

resource gmp_com ( resource a)

Returns the one's complement of a.

Beispiel 1. gmp_com() example

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

The printout of the above program will be:

-1235

Zurück | Zum Anfang | Nach vorne
gmp_cmp | Nach oben | gmp_div_q


gmp_div_q

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_q -- Divide numbers

Description

resource gmp_div_q ( resource a, resource b [, int round])

Divides a by b and returns the integer result. The result rounding is defined by the round, which can have the following values:

  • GMP_ROUND_ZERO: The result is truncated towards 0.

  • GMP_ROUND_PLUSINF: The result is rounded towards +infinity.

  • GMP_ROUND_MINUSINF: The result is rounded towards -infinity.

This function can also be called as gmp_div().

Beispiel 1. gmp_div_q() example

<?php
$div1 = gmp_div_q("100", "5");
echo gmp_strval($div1) . "\n";

$div2 = gmp_div_q("1", "3");
echo gmp_strval($div2) . "\n";

$div3 = gmp_div_q("1", "3", GMP_ROUND_PLUSINF);
echo gmp_strval($div3) . "\n";

$div4 = gmp_div_q("-1", "4", GMP_ROUND_PLUSINF);
echo gmp_strval($div4) . "\n";

$div5 = gmp_div_q("-1", "4", GMP_ROUND_MINUSINF);
echo gmp_strval($div5) . "\n";
?>

The printout of the above program will be:

20
0
1
0
1

See also gmp_div_r(), gmp_div_qr()

Zurück | Zum Anfang | Nach vorne
gmp_com | Nach oben | gmp_div_qr


gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_qr -- Divide numbers and get quotient and remainder

Description

array gmp_div_qr ( resource n, resource d [, int round])

The function divides n by d and returns array, with the first element being [n/d] (the integer result of the division) and the second being (n - [n/d] * d) (the remainder of the division).

See the gmp_div_q() function for description of the round argument.

Beispiel 1. Division of GMP numbers

<?php
$a = gmp_init("0x41682179fbf5");
$res = gmp_div_qr($a, "0xDEFE75");
printf("Result is: q - %s, r - %s",
       gmp_strval($res[0]), gmp_strval($res[1]));
?>

See also gmp_div_q(), gmp_div_r().

Zurück | Zum Anfang | Nach vorne
gmp_div_q | Nach oben | gmp_div_r


gmp_div_r

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_r -- Remainder of the division of numbers

Description

resource gmp_div_r ( resource n, resource d [, int round])

Calculates remainder of the integer division of n by d. The remainder has the sign of the n argument, if not zero.

Beispiel 1. gmp_div_r() example

<?php
$div = gmp_div_r("105", "20");
echo gmp_strval($div) . "\n";
?>

The printout of the above program will be:

5

See the gmp_div_q() function for description of the round argument.

See also gmp_div_q(), gmp_div_qr()

Zurück | Zum Anfang | Nach vorne
gmp_div_qr | Nach oben | gmp_div


gmp_div

gmp_div -- Alias of gmp_div_q()

Description

This function is an alias of gmp_div_q().

Zurück | Zum Anfang | Nach vorne
gmp_div_r | Nach oben | gmp_divexact


gmp_divexact

(PHP 4 >= 4.0.4, PHP 5)

gmp_divexact -- Exact division of numbers

Description

resource gmp_divexact ( resource n, resource d)

Divides n by d, using fast "exact division" algorithm. This function produces correct results only when it is known in advance that d divides n.

Beispiel 1. gmp_divexact() example

<?php
$div1 = gmp_divexact("10", "2");
echo gmp_strval($div1) . "\n";

$div2 = gmp_divexact("10", "3"); // bogus result
echo gmp_strval($div2) . "\n";
?>

The printout of the above program will be:

5
2863311534

Zurück | Zum Anfang | Nach vorne
gmp_div | Nach oben | gmp_fact


gmp_fact

(PHP 4 >= 4.0.4, PHP 5)

gmp_fact -- Factorial

Description

resource gmp_fact ( int a)

Calculates factorial (a!) of a.

Beispiel 1. gmp_fact() example

<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 = gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>

The printout of the above program will be:

120
30414093201713378043612608166064768844377641568960512000000000000

Zurück | Zum Anfang | Nach vorne
gmp_divexact | Nach oben | gmp_gcd


gmp_gcd

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcd -- Calculate GCD

Description

resource gmp_gcd ( resource a, resource b)

Calculate greatest common divisor of a and b. The result is always positive even if either of, or both, input operands are negative.

Beispiel 1. gmp_gcd() example

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

The printout of the above program will be:

3

Zurück | Zum Anfang | Nach vorne
gmp_fact | Nach oben | gmp_gcdext


gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcdext -- Calculate GCD and multipliers

Description

array gmp_gcdext ( resource a, resource b)

Calculates g, s, and t, such that a*s + b*t = g = gcd(a,b), where gcd is the greatest common divisor. Returns an array with respective elements g, s and t.

This function can be used to solve linear Diophantine equations in two variables. These are equations that allow only integer solutions and have the form: a*x + b*y = c. For more information, go to the "Diophantine Equation" page at MathWorld

Beispiel 1. Solving a linear Diophantine equation

<?php
// Solve the equation a*s + b*t = g
// where a = 12, b = 21, g = gcd(12, 21) = 3
$a = gmp_init(12);
$b = gmp_init(21);
$g = gmp_gcd($a, $b);
$r = gmp_gcdext($a, $b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res = gmp_add(gmp_mul($a, $r['s']), gmp_mul($b, $r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if ($check_gcd && $check_res) {
    $fmt = "Solution: %d*%d + %d*%d = %d\n";
    printf($fmt, gmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
    gmp_strval($r['t']), gmp_strval($r['g']));
} else {
    echo "Error while solving the equation\n";
}

// output: Solution: 12*2 + 21*-1 = 3
?>

Zurück | Zum Anfang | Nach vorne
gmp_gcd | Nach oben | gmp_hamdist


gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5)

gmp_hamdist -- Hamming distance

Description

int gmp_hamdist ( resource a, resource b)

Returns the hamming distance between a and b. Both operands should be non-negative.

Beispiel 1. gmp_hamdist() example

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* hamdist is equivilent to: */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

The printout of the above program will be:

6
6

See also gmp_popcount(), gmp_xor()

Zurück | Zum Anfang | Nach vorne
gmp_gcdext | Nach oben | gmp_init


gmp_init

(PHP 4 >= 4.0.4, PHP 5)

gmp_init -- Create GMP number

Description

resource gmp_init ( mixed number)

Creates a GMP number from an integer or string. String representation can be decimal or hexadecimal. In the latter case, the string should start with 0x.

Beispiel 1. Creating GMP number

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Anmerkung: It is not necessary to call this function if you want to use integer or string in place of GMP number in GMP functions, like gmp_add(). Function arguments are automatically converted to GMP numbers, if such conversion is possible and needed, using the same rules as gmp_init().

Zurück | Zum Anfang | Nach vorne
gmp_hamdist | Nach oben | gmp_intval


gmp_intval

(PHP 4 >= 4.0.4, PHP 5)

gmp_intval -- Convert GMP number to integer

Description

int gmp_intval ( resource gmpnumber)

This function allows to convert GMP number to integer.

Warnung

This function returns a useful result only if the number actually fits the PHP integer (i.e., signed long type). If you want just to print the GMP number, use gmp_strval().

Beispiel 1. gmp_intval() example

<?php
// displays correct result
echo gmp_intval("2147483647") . "\n";

// displays wrong result, above PHP integer limit
echo gmp_intval("2147483648") . "\n";

// displays correct result
echo gmp_strval("2147483648") . "\n";
?>

The printout of the above program will be:

2147483647
2147483647
2147483648

Zurück | Zum Anfang | Nach vorne
gmp_init | Nach oben | gmp_invert


gmp_invert

(PHP 4 >= 4.0.4, PHP 5)

gmp_invert -- Inverse by modulo

Description

resource gmp_invert ( resource a, resource b)

Computes the inverse of a modulo b. Returns FALSE if an inverse does not exist.

Beispiel 1. gmp_invert() example

<?php
echo gmp_invert("5", "10"); // no inverse, outputs nothing, result is FALSE
$invert = gmp_invert("5", "11");
echo gmp_strval($invert) . "\n";
?>

The printout of the above program will be:

9

Zurück | Zum Anfang | Nach vorne
gmp_intval | Nach oben | gmp_jacobi


gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5)

gmp_jacobi -- Jacobi symbol

Description

int gmp_jacobi ( resource a, resource p)

Computes Jacobi symbol of a and p. p should be odd and must be positive.

Beispiel 1. gmp_jacobi() example

<?php
echo gmp_jacobi("1", "3") . "\n";
echo gmp_jacobi("2", "3") . "\n";
?>

The printout of the above program will be:

1
0

Zurück | Zum Anfang | Nach vorne
gmp_invert | Nach oben | gmp_legendre


gmp_legendre

(PHP 4 >= 4.0.4, PHP 5)

gmp_legendre -- Legendre symbol

Description

int gmp_legendre ( resource a, resource p)

Compute the Legendre symbol of a and p. p should be odd and must be positive.

Beispiel 1. gmp_legendre() example

<?php
echo gmp_legendre("1", "3") . "\n";
echo gmp_legendre("2", "3") . "\n";
?>

The printout of the above program will be:

1
0

Zurück | Zum Anfang | Nach vorne
gmp_jacobi | Nach oben | gmp_mod


gmp_mod

(PHP 4 >= 4.0.4, PHP 5)

gmp_mod -- Modulo operation

Description

resource gmp_mod ( resource n, resource d)

Calculates n modulo d. The result is always non-negative, the sign of d is ignored.

Beispiel 1. gmp_mod() example

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

The printout of the above program will be:

2

Zurück | Zum Anfang | Nach vorne
gmp_legendre | Nach oben | gmp_mul


gmp_mul

(PHP 4 >= 4.0.4, PHP 5)

gmp_mul -- Multiply numbers

Description

resource gmp_mul ( resource a, resource b)

Multiplies a by b and returns the result.

Beispiel 1. gmp_mul() example

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

The printout of the above program will be:

24691356000

Zurück | Zum Anfang | Nach vorne
gmp_mod | Nach oben | gmp_neg


gmp_neg

(PHP 4 >= 4.0.4, PHP 5)

gmp_neg -- Negate number

Description

resource gmp_neg ( resource a)

Returns -a.

Beispiel 1. gmp_neg() example

<?php
$neg1 = gmp_neg("1");
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1");
echo gmp_strval($neg2) . "\n";
?>

The printout of the above program will be:

-1
1

Zurück | Zum Anfang | Nach vorne
gmp_mul | Nach oben | gmp_or


gmp_or

(PHP 4 >= 4.0.4, PHP 5)

gmp_or -- Logical OR

Description

resource gmp_or ( resource a, resource b)

Calculates logical inclusive OR of two GMP numbers.

Beispiel 1. gmp_or() example

<?php
$or1 = gmp_or("0xfffffff2", "4");
echo gmp_strval($or1, 16) . "\n";
$or2 = gmp_or("0xfffffff2", "2");
echo gmp_strval($or2, 16) . "\n";
?>

The printout of the above program will be:

fffffff6
fffffff2

Zurück | Zum Anfang | Nach vorne
gmp_neg | Nach oben | gmp_perfect_square


gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5)

gmp_perfect_square -- Perfect square check

Description

bool gmp_perfect_square ( resource a)

Returns TRUE if a is a perfect square, FALSE otherwise.

Beispiel 1. gmp_perfect_square() example

<?php
// 3 * 3, perfect square
var_dump(gmp_perfect_square("9"));

// not a perfect square
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, perfect square
var_dump(gmp_perfect_square("1524157875019052100"));
?>

The printout of the above program will be:

bool(true)
bool(false)
bool(true)

See also: gmp_sqrt(), gmp_sqrtrm().

Zurück | Zum Anfang | Nach vorne
gmp_or | Nach oben | gmp_popcount


gmp_popcount

(PHP 4 >= 4.0.4, PHP 5)

gmp_popcount -- Population count

Description

int gmp_popcount ( resource a)

Return the population count of a.

Beispiel 1. gmp_popcount() example

<?php
$pop1 = gmp_init("10000101", 2); // 3 1's
echo gmp_popcount($pop1) . "\n";
$pop2 = gmp_init("11111110", 2); // 7 1's
echo gmp_popcount($pop2) . "\n";
?>

The printout of the above program will be:

3
7

Zurück | Zum Anfang | Nach vorne
gmp_perfect_square | Nach oben | gmp_pow


gmp_pow

(PHP 4 >= 4.0.4, PHP 5)

gmp_pow -- Raise number into power

Description

resource gmp_pow ( resource base, int exp)

Raise base into power exp. The case of 0^0 yields 1. exp cannot be negative.

Beispiel 1. gmp_pow() example

<?php
$pow1 = gmp_pow("2", 31);
echo gmp_strval($pow1) . "\n";
$pow2 = gmp_pow("0", 0);
echo gmp_strval($pow2) . "\n";
$pow3 = gmp_pow("2", -1); // Negative exp, generates warning
echo gmp_strval($pow3) . "\n";
?>

The printout of the above program will be:

2147483648
1

Zurück | Zum Anfang | Nach vorne
gmp_popcount | Nach oben | gmp_powm


gmp_powm

(PHP 4 >= 4.0.4, PHP 5)

gmp_powm -- Raise number into power with modulo

Description

resource gmp_powm ( resource base, resource exp, resource mod)

Calculate (base raised into power exp) modulo mod. If exp is negative, result is undefined.

Beispiel 1. gmp_powm() example

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

The printout of the above program will be:

2147483648

Zurück | Zum Anfang | Nach vorne
gmp_pow | Nach oben | gmp_prob_prime


gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_prime -- Check if number is "probably prime"

Description

int gmp_prob_prime ( resource a [, int reps])

If this function returns 0, a is definitely not prime. If it returns 1, then a is "probably" prime. If it returns 2, then a is surely prime. Reasonable values of reps vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

The function uses Miller-Rabin's probabilistic test.

Beispiel 1. gmp_prob_prime() example

<?php
// definitely not a prime
echo gmp_prob_prime("6") . "\n";

// probably a prime
echo gmp_prob_prime("1111111111111111111") . "\n";

// definitely a prime
echo gmp_prob_prime("11") . "\n";
?>

The printout of the above program will be:

0
1
2

Zurück | Zum Anfang | Nach vorne
gmp_powm | Nach oben | gmp_random


gmp_random

(PHP 4 >= 4.0.4, PHP 5)

gmp_random -- Random number

Description

resource gmp_random ( int limiter)

Generate a random number. The number will be between zero and the number of bits per limb multiplied by limiter. If limiter is negative, negative numbers are generated.

A limb is an internal GMP mechanism. The number of bits in a limb is not static, and can vary from system to system. Generally, the number of bits in a limb is either 16 or 32, but this is not guaranteed.

Beispiel 1. gmp_random() example

<?php
$rand1 = gmp_random(1); // random number from 0 to 1 * bits per limb
$rand2 = gmp_random(2); // random number from 0 to 2 * bits per limb

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

The printout of the above program might be:

1915834968
8642564075890328087

Zurück | Zum Anfang | Nach vorne
gmp_prob_prime | Nach oben | gmp_scan0


gmp_scan0

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan0 -- Scan for 0

Description

int gmp_scan0 ( resource a, int start)

Scans a, starting with bit start, towards more significant bits, until the first clear bit is found. Returns the index of the found bit. The index starts from 0.

Beispiel 1. gmp_scan0() example

<?php
// "0" bit is found at position 3. index starts at 0
$s1 = gmp_init("10111", 2);
echo gmp_scan0($s1, 0) . "\n";

// "0" bit is found at position 7. index starts at 5
$s2 = gmp_init("101110000", 2);
echo gmp_scan0($s2, 5) . "\n";
?>

The printout of the above program will be:

3
7

Zurück | Zum Anfang | Nach vorne
gmp_random | Nach oben | gmp_scan1


gmp_scan1

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan1 -- Scan for 1

Description

int gmp_scan1 ( resource a, int start)

Scans a, starting with bit start, towards more significant bits, until the first set bit is found. Returns the index of the found bit. If no set bit is found, -1 is returned.

Beispiel 1. gmp_scan1() example

<?php
// "1" bit is found at position 3. index starts at 0
$s1 = gmp_init("01000", 2);
echo gmp_scan1($s1, 0) . "\n";

// "1" bit is found at position 9. index starts at 5
$s2 = gmp_init("01000001111", 2);
echo gmp_scan1($s2, 5) . "\n";
?>

The printout of the above program will be:

3
9

Zurück | Zum Anfang | Nach vorne
gmp_scan0 | Nach oben | gmp_setbit


gmp_setbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_setbit -- Set bit

Description

void gmp_setbit ( resource &a, int index [, bool set_clear])

Sets bit index in a. set_clear defines if the bit is set to 0 or 1. By default the bit is set to 1. Index starts at 0.

Anmerkung: Unlike most of the other GMP functions, gmp_setbit() must be called with a GMP resource that already exists (using gmp_init() for example). One will not be automatically created.

Beispiel 1. gmp_setbit() example

<?php
$a = gmp_init("0xfd");
gmp_setbit($a, 1); // index starts at 0
echo gmp_strval($a) . "\n";
?>

The printout of the above program will be:

255

See also gmp_clrbit().

Zurück | Zum Anfang | Nach vorne
gmp_scan1 | Nach oben | gmp_sign


gmp_sign

(PHP 4 >= 4.0.4, PHP 5)

gmp_sign -- Sign of number

Description

int gmp_sign ( resource a)

Returns 1 if a is positive, -1 if a is negative, and 0 if a is zero.

Beispiel 1. gmp_sign() example

<?php
// positive
echo gmp_sign("500") . "\n";

// negative
echo gmp_sign("-500") . "\n";

// zero
echo gmp_sign("0") . "\n";
?>

The printout of the above program will be:

1
-1
0

Zurück | Zum Anfang | Nach vorne
gmp_setbit | Nach oben | gmp_sqrt


gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrt -- Calculate square root

Description

resource gmp_sqrt ( resource a)

Calculates square root of a and returns the integer portion of the result.

Beispiel 1. gmp_sqrt() example

<?php
$sqrt1 = gmp_sqrt("9");
$sqrt2 = gmp_sqrt("7");
$sqrt3 = gmp_sqrt("1524157875019052100");

echo gmp_strval($sqrt1) . "\n";
echo gmp_strval($sqrt2) . "\n";
echo gmp_strval($sqrt3) . "\n";
?>

The printout of the above program will be:

3
2
1234567890

Zurück | Zum Anfang | Nach vorne
gmp_sign | Nach oben | gmp_sqrtrem


gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrtrem -- Square root with remainder

Description

array gmp_sqrtrem ( resource a)

Returns array where first element is the integer square root of a (see also gmp_sqrt()), and the second is the remainder (i.e., the difference between a and the first element squared).

Beispiel 1. gmp_sqrtrem() example

<?php
list($sqrt1, $sqrt1rem) = gmp_sqrtrem("9");
list($sqrt2, $sqrt2rem) = gmp_sqrtrem("7");
list($sqrt3, $sqrt3rem) = gmp_sqrtrem("1048576");

echo gmp_strval($sqrt1) . ", " . gmp_strval($sqrt1rem) . "\n";
echo gmp_strval($sqrt2) . ", " . gmp_strval($sqrt2rem) . "\n";
echo gmp_strval($sqrt3) . ", " . gmp_strval($sqrt3rem) . "\n";
?>

The printout of the above program will be:

3, 0
2, 3
1024, 0

Zurück | Zum Anfang | Nach vorne
gmp_sqrt | Nach oben | gmp_strval


gmp_strval

(PHP 4 >= 4.0.4, PHP 5)

gmp_strval -- Convert GMP number to string

Description

string gmp_strval ( resource gmpnumber [, int base])

Convert GMP number to string representation in base base. The default base is 10. Allowed values for the base are from 2 to 36.

Beispiel 1. Converting a GMP number to a string

<?php
$a = gmp_init("0x41682179fbf5");
printf("Decimal: %s, 36-based: %s", gmp_strval($a), gmp_strval($a,36));
?>

Zurück | Zum Anfang | Nach vorne
gmp_sqrtrem | Nach oben | gmp_sub


gmp_sub

(PHP 4 >= 4.0.4, PHP 5)

gmp_sub -- Subtract numbers

Description

resource gmp_sub ( resource a, resource b)

Subtracts b from a and returns the result.

Beispiel 1. gmp_sub() example

<?php
$sub = gmp_sub("281474976710656", "4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

The printout of the above program will be:

281470681743360

Zurück | Zum Anfang | Nach vorne
gmp_strval | Nach oben | gmp_xor


gmp_xor

(PHP 4 >= 4.0.4, PHP 5)

gmp_xor -- Logical XOR

Description

resource gmp_xor ( resource a, resource b)

Calculates logical exclusive OR (XOR) of two GMP numbers.

Beispiel 1. gmp_xor() example

<?php
$xor1 = gmp_init("1101101110011101", 2);
$xor2 = gmp_init("0110011001011001", 2);

$xor3 = gmp_xor($xor1, $xor2);

echo gmp_strval($xor3, 2) . "\n";
?>

The printout of the above program will be:

1011110111000100

Zurück | Zum Anfang | Nach vorne
gmp_sub | Nach oben | HTTP functions


HTTP functions

PHP Handbuch
Zurück Nach vorne

XXXVII. HTTP functions

Einführung

Diese Funktionen ermöglichen die Manipulation der an den Browser gesendeten Informationen auf HTTP-Protokoll-Ebene.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
header -- Sendet einen HTTP-Header
headers_list -- Returns a list of response headers sent (or ready to send)
headers_sent -- Prüft, ob oder wo die Header bereits gesendet wurden
setcookie -- Sendet ein Cookie
setrawcookie -- Send a cookie without urlencoding the cookie value

Zurück | Zum Anfang | Nach vorne
gmp_xor | Nach oben | header


header

(PHP 3, PHP 4 , PHP 5)

header -- Sendet einen HTTP-Header

Beschreibung

int header ( string string [, bool replace [, int http_reponse_code]])

header() wird zum Senden von HTTP Anfangsinformationen (Headern) benutzt. Weitere Informationen über HTTP Header finden Sie unter HTTP/1.1 specification.

Der optionale Parameter replace gibt an, ob der Header einen vorhergehenden Header ersetzten soll, oder ob ein zweiter Header des selben Typs hinzugefügt werden soll. Standardmäßig wird ersetzt. Sie können jedoch als das zweite Argument FALSE übergeben, und so mehrere Header desselben Typs erzwingen. Zum Beispiel:

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', FALSE);
?>

Der zweite optionale Parameter http_response_code spezifiziert den HTTP Response Code. (Dieser Parameter ist in PHP 4.3.0 und höher verfügbar.)

Es gibt zwei Spezialfälle von Header-Aufrufen. Der erste ist ein Header, der mit "HTTP/" beginnt (ob groß- oder Kleinschreibung ist nicht relevant) und zum Herausfinden des zu sendenden HTTP Statuscodes verwendet wird. Wenn Sie zum Beispiel Apache konfiguriert haben, um ein PHP Skript zum Bearbeiten von Anforderungen fehlender Dateien (mittels der ErrorDocument Direktive) zu verwenden, möchten Sie bestimmt sicherstellen, dass Ihr Skript den passenden Statuscode generiert.

<?php
  header("HTTP/1.0 404 Not Found");
?>

Anmerkung: Die HTTP Status Header Zeile wird immer die erste zum Client gesendete sein, egal ob der aktuelle header() - Aufruf der erste ist oder nicht. Der Status kann mittels header() jederzeit mit einer neuen Statuszeile überschrieben werden, es sei denn, dass die HTTP Header bereits gesendet wurden.

Anmerkung: In PHP 3 funktioniert dies nur, wenn PHP als Apache Modul kompiliert wurde. Sie können den gleichen Effekt erzielen, wenn Sie den Status Header verwenden.

<?php
header("Status: 404 Not Found");
?>

Der zweite Spezialfall ist der "Location:" Header. Es wird nicht nur der Header an den Browser geschickt, sondern auch ein REDIRECT (302) Statuscode, wenn nicht bereits ein 3xx Statuscode gesendet wurde.

<?php
header("Location: http://www.example.com/"); // Umleitung des Browsers
exit;                                        // Sicherstellen, dass nicht trotz Umleitung
                                             // der nachfolgende Code ausgeführt wird.
?>

Anmerkung: HTTP/1.1 verlangt einen absoluten URI inkl. dem Schema, Hostnamen und absoluten Pfad als Argument von Location:, aber manche Clients akzeptieren auch relative URIs. Gewöhnlich können Sie mittels $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] und dirname() aus einem relativen Link einen absoluten URI selbst erstellen:

<?php
header("Location: http://".$_SERVER['HTTP_HOST']
                      .dirname($_SERVER['PHP_SELF'])
                      ."/".$relative_url);
?>

PHP-Skripte erzeugen oft dynamische Inhalte, die weder vom Browser noch von irgendeinem Proxy zwischen Web-Server und Client-Browser gepuffert ("gecached") werden sollen bzw. dürfen. Bei vielen Proxies und Browsern kann das Cachen wie folgt unterbunden werden:

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Datum aus Vergangenheit
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
                                                     // immer geändert
header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");                          // HTTP/1.0
?>

Anmerkung: Es könnte auch sein, dass Ihre Seiten nicht zwischengespeichert werden, auch wenn Sie obigen Header nicht ausgeben. Es gibt eine Anzahl Optionen, welche die Benutzer in deren Browser einstellen können, um das standardmäßige Verhalten bezüglich des Caching zu verändern. Durch das Senden obiger Header sollten Sie irgendwelche Einstellungen, welche die Ausgabe Ihres Skriptes zwischenspeichern würden, außer Kraft setzen.

Weiters können Sie session_cache_limiter() und die Konfigurationsoption session.cache_limiter verwenden, um die korrekten Header bezüglich Caching automatisch generieren zu lassen, sollten Sie Sessions benutzen.

Beachten Sie, dass header() aufgerufen werden muss, bevor eine Ausgabe gesendet wurde, egal ob normale HTML Tags, leere Zeilen in einer Datei oder von PHP. Ein weit verbreiteter Fehler ist mittels include(), require(), oder anderen Dateizugriffsmethoden Code zu lesen, und so unbewusst Leerzeichen oder Leerzeilen auszugeben, bevor header() aufgerufen wird. Das gleiche Problem besteht auch bei Verwendung einer einzigen PHP/HTML Datei.

<html>
<?php
// Dies funktioniert nicht. Beachten Sie die
// obige Ausgabe noch vor dem header()-Aufruf
header('Location: http://www.example.com/');
?>

Anmerkung: In PHP 4 können Sie dieses Problem umgehen, indem Sie Output Buffering benutzen (mit dem Overhead, dass alle Ihre Ausgaben an den Browser gepuffert werden, bis Sie diese Senden). Um dies zu tun, verwenden Sie in Ihrem Skript ob_start() und ob_end_flush(), oder setzten die Konfigurationsdirektive output_buffering in der php.ini bzw. in den Server Konfigurationsdateien.

Wollen Sie den Benutzer auffordern, die von Ihnen gesendeten Daten wie z.B. eine generierte PDF Datei zu speichern, können Sie den Header Content-Disposition verwenden, um einen empfohlenen Dateinamen anzubieten und den Browser zu zwingen, den Dialog zum Speichern anzuzeigen.

<?php
// Wir werden eine PDF Datei ausgeben
header("Content-type: application/pdf");

// Es wird downloaded.pdf benannt
header("Content-Disposition: attachment; filename=downloaded.pdf");

// Die originale PDF Datei heißt original.pdf
readfile('original.pdf');
?>

Anmerkung: Der Microsoft Internet Explorer 4.01 hat einen Bug, der diese Funktionalität verhindert, und es gibt keinen Workaround. Auch in Microsoft Internet Explorer 5.5 existiert ein Bug, der dies behindert, dieser kann jedoch mittels einem Upgrade auf Service Pack 2 oder neuer behoben werden.

Anmerkung: Ist safe mode aktiviert, wird die UID des Skriptes dem realm Teil des Headers WWW-Authenticate (für HTTP Authentifizierung verwendet) hinzugefügt, sollten Sie diesen Header setzen.

Siehe auch headers_sent(), setcookie() und den Teil HTTP Authentifizierung.

Zurück | Zum Anfang | Nach vorne
HTTP functions | Nach oben | headers_list


headers_list

(PHP 5)

headers_list -- Returns a list of response headers sent (or ready to send)

Description

array headers_list ( void )

headers_list() will return a numerically indexed array of headers to be sent to the browser / client. To determine whether or not these headers have been sent yet, use headers_sent().

Beispiel 1. Examples using headers_list()

<?php

/* setcookie() will add a response header on its own */
setcookie('foo', 'bar');

/* Define a custom response header
   This will be ignored by most clients */
header("X-Sample-Test: foo");

/* Specify plain text content in our response */
header('Content-type: text/plain');

/* What headers are going to be sent? */
var_dump(headers_list());

?>

this will output :

array(4) {
  [0]=>
  string(29) "X-Powered-By: PHP/5.0.0"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

See Also:
headers_sent(),
header(), and
setcookie().

Zurück | Zum Anfang | Nach vorne
header | Nach oben | headers_sent


headers_sent

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

headers_sent -- Prüft, ob oder wo die Header bereits gesendet wurden

Beschreibung

bool headers_sent ( [string &file [, int &line]])

headers_sent() gibt TRUE zurück, wenn die HTTP-Header bereits gesendet wurden, ansonsten wird FALSE zurückgegeben. Sind die optionalen Parameter file und line angegeben, werden der Dateiname und die Zeilennummer von wo die Ausgabe begann, in den Variablen file und line gespeichert.

Sobald der Header-Block gesendet wurde, können Sie keine weiteren Header-Zeilen mit der Funktion header() hinzufügen. Mittels dieser Funktion können Sie aber zumindest Fehlermeldungen bezüglich der HTTP Header vermeiden. Eine andere Möglichkeit ist die Verwendung von Output Buffering.

Neue Parameter: Die optionalen Parameter file und line wurden in PHP 4.3.0 eingeführt.

Beispiel 1. Beispiele für headers_sent()

<?php

// Wenn keine Header gesendet wurden, sende einen
if (!headers_sent()) {
    header ('Location: http://www.example.com/');
    exit;
}

// Ein Beispiel für den Einsatz der seit PHP 4.3.0 verfügbaren optionalen
// Parameter file und line. Beachten Sie, dass $filename und $linenum für
// einen späteren Einsatz übergeben werden.
// Weisen Sie ihnen davor keine Werte zu.
if (!headers_sent($filename, $linenum)) {
    header ('Location: http://www.example.com/');
    exit;

// Wahrscheinlich wollen Sie hier eine Fehlermeldung auslösen
} else {

    print "Headers already sent in $filename on line $linenum\n" .
          "Cannot redirect, for now please click this <a " .
          "href=\"http://www.example.com\">link</a> instead\n";
    exit;
}

?>

Siehe auch ob_start(), trigger_error() und header() für detailliertere Informationen zu diesem Thema.

Zurück | Zum Anfang | Nach vorne
headers_list | Nach oben | setcookie


setcookie

(PHP 3, PHP 4 , PHP 5)

setcookie -- Sendet ein Cookie

Beschreibung

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

setcookie() definiert ein mit den HTTP Header-Informationen zu übertragendes Cookie. Wie andere Header auch, müssen Cookies vor irgendwelchen anderen Ausgaben Ihres Skriptes gesendet werden (dies ist eine Einschränkung des Protokolls). Sie müssen deshalb solche Funktionsaufrufe vor irgendwelchen Ausgaben, inklusive <html>- oder <head>-Tags sowie irgendwelcher Whitespaces tätigen. Erfolgte bereits vor dem Aufruf dieser Funktion eine Ausgabe erfolgt sein, gibt setcookie() scheitern und FALSE zurückgeben. War setcookie() erfolgreich, wird TRUE zurückgegeben. Dies sagt jedoch nichts darüber aus, ob der Benutzer das Cookie auch akzeptiert hat.

Anmerkung: In PHP 4 können Sie den Ausgabepuffer verwenden, um Ausgaben vor dem Aufruf dieser Funktion duchführen zu können. Dies hat allerdings zur Folge, dass alle Ihre Ausgaben zum Browser am Server zwischengespeichert werden, bis Sie diese senden. Sie können dies in Ihrem Skript mittels den Funktionen ob_start() und ob_end_flush(), oder mittels der Konfigurationseinstellung output_buffering in Ihrer php.ini, oder durch Konfigurationseinstellungen am Server realisieren.

Alle Argumente - außer name - sind optional. Ist nur der Name angegeben wird das Cookie mit diesem Namen auf dem Client gelöscht. Sie können ein Argument auch durch einen Leerstring ("") ersetzen, um es zu überspringen. Da die Argumente expire und secure Integer-Werte sind können sie nicht mit einem Leerstring übersprungen werden. Setzen sie statt dessen NULL (0). Die folgende Tabelle erklärt jeden Parameter von setcookie(), spezifische Informationen finden Sie auch auf der Seite Netscape cookie specification.

Tabelle 1. setcookie() Parameter erklärt

Parameter | Beschreibung | Beispiele
name | Der Name des Cookies. | Auf 'cookiename' wird mittels $_COOKIE['cookiename'] zugegriffen.
value | Der Wert des Cookies. Dieser Wert wird am Computer des Benutzers gespeichert, speichern Sie deshalb keine sensiblen Informationen. | Ist der name z.B. 'cookiename', so erhält man seinen Wert mittels $_COOKIE['cookiename'].
expire | Der Zeitpunkt, wann das verfällt. Dies ist ein Unix Timestamp, also die Anzahl Sekunden seit der Unix-Epoche. In anderen Worten werden Sie diesen Wert wahrscheinlich mittels der Funktion time() plus der Anzahl Sekunden bis zum gewünschten Ablauf des Cookies. Sie könnten aber auch mktime() verwenden. | time()+60*60*24*30 wird das Cookie in 30 Tagen ablaufen lassen. Ist der Parameter nicht gesetzt, verfällt das Cookie am Ende der Session (wenn der Browser geschlossen wird).
path | Der Pfad zu dem Server, auf welchem das Cookie verfügbar sein wird. | Ist er auf '/' gesetzt, wird das Cookie innerhalb der gesamten Domain verfügbar. Ist er auf '/foo/' gesetzt, wird das Cookie nur innerhalb des Verzeichnisses /foo/ der domain, sowie allen Unterverzeichnissen wie z.B. /foo/bar/ verfügbar. Der Standardwert ist das Verzeichnis, in dem das Cookie gesetzt wurde.
domain | Die Domain, der das Cookie zur Verfügung steht. | Um das Cookie für all Sub-Domains von example.com verfügbar zu machen, setzen Sie es auf '.example.com'. Der . ist zwar nicht erforderlich, erhöht aber die Kompatibilität zu mehr Browsern. Eine Setzen auf www.example.com macht das Cookie nur in der www Sub-Domain verfügbar. Weitere Details hierzu finden Sie in der Spezifikation.
secure | Gibt an, dass das Cookie nur über eine sichere HTTPS - Verbindung übertragen werden soll. Ist es auf 1 gesetzt, wird das Cookie nur gesendet, wenn eine sichere Verbindung besteht. Der Standardwert ist 0. | 0 oder 1

Sind die Cookies einmal gesetzt, können Sie beim nächsten Seitenaufruf anhand der $_COOKIE oder $HTTP_COOKIE_VARS Arrays auf diese zugreifen. Beachten Sie, dass die autoglobals wie $_COOKIE seit PHP 4.1.0 verfügbar sind. $HTTP_COOKIE_VARS existiert seit PHP 3. Cookie-Werte kommen auch in $_REQUEST vor.

Anmerkung: Ist die PHP Direktive register_globals auf on gesetzt, stehen die Cookies auch als eigene Variablen zur Verfügung. In den nachstehenden Beispielen wird $TextCookie also existieren. Es wird empfohlen, $_COOKIE zu verwenden.

Häufige Probleme:

  • Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, in der das Cookie sichtbar sein soll. Um zu testen, ob ein Cookie erfolgreich gesetzt wurde, prüfen Sie noch vor der Ablaufzeit auf einer weiteren Seite ob das Cookie vorhanden ist. Die Ablaufzeit wird mittels dem Parameter expire gesetzt. Eine nette Möglichkeit um die Existenz von Cookies zu prüfen, ist print_r($_COOKIE); aufzurufen.

  • Cookies müssen mit den selben Parametern gelöscht werden, mit denen sie gesetzt wurden.

  • Namen von Cookies können auch als Arraynamen gesetzt werden und stehen dann in Ihren Skripten als Arrays zu Verfügung, während sie auf dem System des Benutzers separat abgespeichert werden. Um ein Cookie mit mehreren Namen und Werten zu setzen, erwägen Sie auch den Einsatz von explode() bzw. serialize().

In PHP 3 werden mehrfache Aufrufe von setcookie() im selben Skript in umgekehrter Reihenfolge abgearbeitet. Sollten sie also ein Cookie löschen wollen bevor sie ein anderes setzen, sollten sie das Setzen vor dem Löschen vornehmen. In PHP 4 werden mehrfache Aufrufe von setcookie() in der Reihenfolge ihres Aufrufs behandelt.

Einige Beispiele, wie Cookies gesetzt / gesendet werden:

Beispiel 1. setcookie()-Beispiele:

<?php
$value = 'something from somewhere';

setcookie ("TestCookie", $value);
setcookie ("TestCookie", $value, time()+3600);  /* verfällt in 1 Stunde */
setcookie ("TestCookie", $value, time()+3600, "/~rasmus/", ".utoronto.ca",1);
?>

Beachten Sie, dass der Wertebereich des Cookies automatisch URL-konform codiert (urlencoded) wird, sobald sie das Cookie senden, und wenn es gelesen wird, wird es automatisch URL-konform decodiert und einer Variablen zugewiesen, die den selben Namen wie das Cookie trägt. Um die Inhalte unserer Test-Cookies zu sehen, brauchen sie nur eines der folgenden Beispiele zu benutzen:

<?php
// ein bestimmtes Cookie ausgeben
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];

// Eine anderer Weg zu debuggen/testen ist, alle Cookies anzuzeigen
print_r($_COOKIE);
?>

Beim Löschen eines Cookies sollten sie sicherstellen, dass das Verfallsdatum in der Vergangenheit liegt, um den Mechanismus zum Löschen des Cookies im Browser auszulösen. Die folgenden Beispiele zeigen, wie die im vorigen Beispiel gesendeten Cookies wieder gelöscht werden:

Beispiel 2. setcookie() Beispiele zum Löschen

<?php
// Setzen des Verfalls-Zeitpunktes auf 1 Stunde vorher
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".example.com", 1);
?>

Sie können auch ein Array an Cookies setzen, in dem sie die Array-Schreibweise benutzen. Dadurch werden so viele Cookies gesetzt, wie Ihr Array Elemente hat. Sobald das Cookie aber von ihrem Skript gelesen wird, werden alle Werte in ein einziges Array mit dem Cookie-Namen eingelesen:

<?php
// Setzen der Cookies
setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");

// Nach dem Neuladen der Seite wieder ausgeben
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        echo "$name : $value <br />\n";
    }
}

/* was folgendes ausgibt:

three : cookiethree
two : cookietwo
one : cookieone

*/
?>

Weitere Informationen zu Cookies und deren Spezifikationen erhalten sie bei Netscape unter http://www.netscape.com/newsref/std/cookie_spec.html.

Microsofts Internet-Explorer 4 mit Service-Pack 1 geht nicht korrekt mit Cookies um, die den Pfad-Parameter beinhalten.

Netscape Communicator 4.05 und Microsoft Internet Explorer 3.x scheinen mit Cookies Probleme zu haben, wenn die Argumente für Pfad und Zeit nicht angegeben sind.

Zurück | Zum Anfang | Nach vorne
headers_sent | Nach oben | setrawcookie


setrawcookie

(PHP 5)

setrawcookie -- Send a cookie without urlencoding the cookie value

Description

bool setrawcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

setrawcookie() is exactly the same as setcookie() except that the cookie value will not automaticall be urlencoded when send to the browser.

See also header(), setcookie() and the cookies section.

Zurück | Zum Anfang | Nach vorne
setcookie | Nach oben | Hyperwave Functions


Hyperwave Functions

PHP Handbuch
Zurück Nach vorne

XXXVIII. Hyperwave Functions

Einführung

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5 is available at http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave API module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user. An attribute is a name/value pair of the form name=value. The complete object record contains as many of those pairs as the user likes. The name of an attribute does not have to be unique, e.g. a title may appear several times within an object record. This makes sense if you want to specify a title in several languages. In such a case there is a convention, that each title value is preceded by the two letter language abbreviation followed by a colon, e.g. 'en:Title in English' or 'ge:Titel in deutsch'. Other attributes like a description or keywords are potential candidates. You may also replace the language abbreviation by any other string as long as it separated by colon from the rest of the attribute value.

Each object record has native a string representation with each name/value pair separated by a newline. The Hyperwave extension also knows a second representation which is an associated array with the attribute name being the key. Multilingual attribute values itself form another associated array with the key being the language abbreviation. Actually any multiple attribute forms an associated array with the string left to the colon in the attribute value being the key. (This is not fully implemented. Only the attributes Title, Description and Keyword are treated properly yet.)

Besides the documents, all hyper links contained in a document are stored as object records as well. Hyper links which are in a document will be removed from it and stored as individual objects, when the document is inserted into the database. The object record of the link contains information about where it starts and where it ends. In order to gain the original document you will have to retrieve the plain document without the links and the list of links and reinsert them. The functions hw_pipedocument() and hw_gettext() do this for you. The advantage of separating links from the document is obvious. Once a document to which a link is pointing to changes its name, the link can easily be modified accordingly. The document containing the link is not affected at all. You may even add a link to a document without modifying the document itself.

Saying that hw_pipedocument() and hw_gettext() do the link insertion automatically is not as simple as it sounds. Inserting links implies a certain hierarchy of the documents. On a web server this is given by the file system, but Hyperwave has its own hierarchy and names do not reflect the position of an object in that hierarchy. Therefore creation of links first of all requires a mapping from the Hyperwave hierarchy and namespace into a web hierarchy respective web namespace. The fundamental difference between Hyperwave and the web is the clear distinction between names and hierarchy in Hyperwave. The name does not contain any information about the objects position in the hierarchy. In the web the name also contains the information on where the object is located in the hierarchy. This leads to two possibles ways of mapping. Either the Hyperwave hierarchy and name of the Hyperwave object is reflected in the URL or the name only. To make things simple the second approach is used. Hyperwave object with name my_object is mapped to http://host/my_object disregarding where it resides in the Hyperwave hierarchy. An object with name parent/my_object could be the child of my_object in the Hyperwave hierarchy, though in a web namespace it appears to be just the opposite and the user might get confused. This can only be prevented by selecting reasonable object names.

Having made this decision a second problem arises. How do you involve PHP? The URL http://host/my_object will not call any PHP script unless you tell your web server to rewrite it to e.g. http://host/php_script/my_object and the script php_script evaluates the $PATH_INFO variable and retrieves the object with name my_object from the Hyperwave server. Their is just one little drawback which can be fixed easily. Rewriting any URL would not allow any access to other document on the web server. A PHP script for searching in the Hyperwave server would be impossible. Therefore you will need at least a second rewriting rule to exclude certain URLs like all e.g. starting with http://host/Hyperwave This is basically sharing of a namespace by the web and Hyperwave server.

Based on the above mechanism links are insert into documents.

It gets more complicated if PHP is not run as a server module or CGI script but as a standalone application e.g. to dump the content of the Hyperwave server on a CD-ROM. In such a case it makes sense to retain the Hyperwave hierarchy and map in onto the file system. This conflicts with the object names if they reflect its own hierarchy (e.g. by choosing names including '/'). Therefore '/' has to be replaced by another character, e.g. '_'.

The network protocol to communicate with the Hyperwave server is called HG-CSP (Hyper-G Client/Server Protocol). It is based on messages to initiate certain actions, e.g. get object record. In early versions of the Hyperwave Server two native clients (Harmony, Amadeus) were provided for communication with the server. Those two disappeared when Hyperwave was commercialised. As a replacement a so called wavemaster was provided. The wavemaster is like a protocol converter from HTTP to HG-CSP. The idea is to do all the administration of the database and visualisation of documents by a web interface. The wavemaster implements a set of placeholders for certain actions to customise the interface. This set of placeholders is called the PLACE Language. PLACE lacks a lot of features of a real programming language and any extension to it only enlarges the list of placeholders. This has led to the use of JavaScript which IMO does not make life easier.

Adding Hyperwave support to PHP should fill in the gap of a missing programming language for interface customisation. It implements all the messages as defined by the HG-CSP but also provides more powerful commands to e.g. retrieve complete documents.

Hyperwave has its own terminology to name certain pieces of information. This has widely been taken over and extended. Almost all functions operate on one of the following data types.

  • object ID: An unique integer value for each object in the Hyperwave server. It is also one of the attributes of the object record (ObjectID). Object ids are often used as an input parameter to specify an object.

  • object record: A string with attribute-value pairs of the form attribute=value. The pairs are separated by a carriage return from each other. An object record can easily be converted into an object array with hw_object2array(). Several functions return object records. The names of those functions end with obj.

  • object array: An associative array with all attributes of an object. The keys are the attribute names. If an attribute occurs more than once in an object record it will result in another indexed or associative array. Attributes which are language depended (like the title, keyword, description) will form an associative array with the keys set to the language abbreviations. All other multiple attributes will form an indexed array. PHP functions never return object arrays.

  • hw_document: This is a complete new data type which holds the actual document, e.g. HTML, PDF etc. It is somewhat optimized for HTML documents but may be used for any format.

Several functions which return an array of object records do also return an associative array with statistical information about them. The array is the last element of the object record array. The statistical array contains the following entries:

Hidden

Number of object records with attribute PresentationHints set to Hidden.

CollectionHead

Number of object records with attribute PresentationHints set to CollectionHead.

FullCollectionHead

Number of object records with attribute PresentationHints set to FullCollectionHead.

CollectionHeadNr

Index in array of object records with attribute PresentationHints set to CollectionHead.

FullCollectionHeadNr

Index in array of object records with attribute PresentationHints set to FullCollectionHead.

Total

Total: Number of object records.

Anforderungen

This extension needs a Hyperwave server downloadable from http://www.hyperwave.com/.

Installation

To enable Hyperwave support compile PHP --with-hyperwave.

Integration with Apache

The Hyperwave extension is best used when PHP is compiled as an Apache module. In such a case the underlying Hyperwave server can be hidden from users almost completely if Apache uses its rewriting engine. The following instructions will explain this.

Since PHP with Hyperwave support built into Apache is intended to replace the native Hyperwave solution based on Wavemaster, we will assume that the Apache server will only serve as a Hyperwave web interface for these examples. This is not necessary but it simplifies the configuration. The concept is quite simple. First of all you need a PHP script which evaluates the $_ENV['PATH_INFO'] variable and treats its value as the name of a Hyperwave object. Let's call this script 'Hyperwave'. The URL http://your.hostname/Hyperwave/name_of_object would than return the Hyperwave object with the name 'name_of_object'. Depending on the type of the object the script has to react accordingly. If it is a collection, it will probably return a list of children. If it is a document it will return the mime type and the content. A slight improvement can be achieved if the Apache rewriting engine is used. From the users point of view it would be more straight forward if the URL http://your.hostname/name_of_object would return the object. The rewriting rule is quite easy:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]

Now every URL relates to an object in the Hyperwave server. This causes a simple to solve problem. There is no way to execute a different script, e.g. for searching, than the 'Hyperwave' script. This can be fixed with another rewriting rule like the following:

RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]

This will reserve the directory /usr/local/apache/htdocs/hw for additional scripts and other files. Just make sure this rule is evaluated before the one above. There is just a little drawback: all Hyperwave objects whose name starts with 'hw/' will be shadowed. So, make sure you don't use such names. If you need more directories, e.g. for images just add more rules or place them all in one directory. Before you put those instructions, don't forget to turn on the rewriting engine with

RewriteEngine on

You will need scripts:

  • to return the object itself

  • to allow searching

  • to identify yourself

  • to set your profile

  • one for each additional function like to show the object attributes, to show information about users, to show the status of the server, etc.

As an alternative to the Rewrite Engine, you can also consider using the Apache ErrorDocument directive, but be aware, that ErrorDocument redirected pages cannot receive POST data.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Hyperwave configuration options

Name | Default | Changeable
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM
hyperwave.default_port | "418" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

HW_ATTR_LANG (integer)

HW_ATTR_NR (integer)

HW_ATTR_NONE (integer)

Todo

There are still some things to do:

  • The hw_InsertDocument has to be split into hw_insertobject() and hw_putdocument().

  • The names of several functions are not fixed, yet.

  • Most functions require the current connection as its first parameter. This leads to a lot of typing, which is quite often not necessary if there is just one open connection. A default connection will improve this.

  • Conversion form object record into object array needs to handle any multiple attribute.

Inhaltsverzeichnis
hw_Array2Objrec -- convert attributes from object array to object record
hw_changeobject -- Changes attributes of an object (obsolete)
hw_Children -- object ids of children
hw_ChildrenObj -- object records of children
hw_Close -- closes the Hyperwave connection
hw_Connect -- opens a connection
hw_connection_info -- Prints information about the connection to Hyperwave server
hw_cp -- Copies objects
hw_Deleteobject -- deletes object
hw_DocByAnchor -- object id object belonging to anchor
hw_DocByAnchorObj -- object record object belonging to anchor
hw_Document_Attributes -- object record of hw_document
hw_Document_BodyTag -- body tag of hw_document
hw_Document_Content -- returns content of hw_document
hw_Document_SetContent -- sets/replaces content of hw_document
hw_Document_Size -- size of hw_document
hw_dummy -- Hyperwave dummy function
hw_EditText -- retrieve text document
hw_Error -- error number
hw_ErrorMsg -- returns error message
hw_Free_Document -- frees hw_document
hw_GetAnchors -- object ids of anchors of document
hw_GetAnchorsObj -- object records of anchors of document
hw_GetAndLock -- return object record and lock object
hw_GetChildColl -- object ids of child collections
hw_GetChildCollObj -- object records of child collections
hw_GetChildDocColl -- object ids of child documents of collection
hw_GetChildDocCollObj -- object records of child documents of collection
hw_GetObject -- object record
hw_GetObjectByQuery -- search object
hw_GetObjectByQueryColl -- search object in collection
hw_GetObjectByQueryCollObj -- search object in collection
hw_GetObjectByQueryObj -- search object
hw_GetParents -- object ids of parents
hw_GetParentsObj -- object records of parents
hw_getrellink -- Get link from source to dest relative to rootid
hw_GetRemote -- Gets a remote document
hw_getremotechildren -- Gets children of remote document
hw_GetSrcByDestObj -- Returns anchors pointing at object
hw_GetText -- retrieve text document
hw_getusername -- name of currently logged in user
hw_Identify -- identifies as user
hw_InCollections -- check if object ids in collections
hw_Info -- info about connection
hw_InsColl -- insert collection
hw_InsDoc -- insert document
hw_insertanchors -- Inserts only anchors into text
hw_InsertDocument -- upload any document
hw_InsertObject -- inserts an object record
hw_mapid -- Maps global id on virtual local id
hw_Modifyobject -- modifies object record
hw_mv -- Moves objects
hw_New_Document -- create new document
hw_objrec2array -- Convert attributes from object record to object array
hw_Output_Document -- prints hw_document
hw_pConnect -- make a persistent database connection
hw_PipeDocument -- retrieve any document
hw_Root -- root object id
hw_setlinkroot -- Set the id to which links are calculated
hw_stat -- Returns status string
hw_Unlock -- unlock object
hw_Who -- List of currently logged in users

Zurück | Zum Anfang | Nach vorne
setrawcookie | Nach oben | hw_Array2Objrec


hw_Array2Objrec

(PHP 3>= 3.0.4, PHP 4 )

hw_Array2Objrec -- convert attributes from object array to object record

Description

string hw_array2objrec ( array object_array)

Converts an object_array into an object record. Multiple attributes like 'Title' in different languages are treated properly.

See also hw_objrec2array().

Zurück | Zum Anfang | Nach vorne
Hyperwave Functions | Nach oben | hw_changeobject


hw_changeobject

(PHP 3>= 3.0.3, PHP 4 )

hw_changeobject -- Changes attributes of an object (obsolete)

Description

void hw_changeobject ( int link, int objid, array attributes)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
hw_Array2Objrec | Nach oben | hw_Children


hw_Children

(PHP 3>= 3.0.3, PHP 4 )

hw_Children -- object ids of children

Description

array hw_children ( int connection, int objectID)

Returns an array of object ids. Each id belongs to a child of the collection with ID objectID. The array contains all children both documents and collections.

Zurück | Zum Anfang | Nach vorne
hw_changeobject | Nach oben | hw_ChildrenObj


hw_ChildrenObj

(PHP 3>= 3.0.3, PHP 4 )

hw_ChildrenObj -- object records of children

Description

array hw_childrenobj ( int connection, int objectID)

Returns an array of object records. Each object record belongs to a child of the collection with ID objectID. The array contains all children both documents and collections.

Zurück | Zum Anfang | Nach vorne
hw_Children | Nach oben | hw_Close


hw_Close

(PHP 3>= 3.0.3, PHP 4 )

hw_Close -- closes the Hyperwave connection

Description

int hw_close ( int connection)

Returns FALSE if connection is not a valid connection index, otherwise TRUE. Closes down the connection to a Hyperwave server with the given connection index.

Zurück | Zum Anfang | Nach vorne
hw_ChildrenObj | Nach oben | hw_Connect


hw_Connect

(PHP 3>= 3.0.3, PHP 4 )

hw_Connect -- opens a connection

Description

int hw_connect ( string host, int port, string username, string password)

Opens a connection to a Hyperwave server and returns a connection index on success, or FALSE if the connection could not be made. Each of the arguments should be a quoted string, except for the port number. The username and password arguments are optional and can be left out. In such a case no identification with the server will be done. It is similar to identify as user anonymous. This function returns a connection index that is needed by other Hyperwave functions. You can have multiple connections open at once. Keep in mind, that the password is not encrypted.

See also hw_pconnect().

Zurück | Zum Anfang | Nach vorne
hw_Close | Nach oben | hw_connection_info


hw_connection_info

(PHP 3>= 3.0.3, PHP 4 )

hw_connection_info -- Prints information about the connection to Hyperwave server

Description

void hw_connection_info ( int link)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
hw_Connect | Nach oben | hw_cp


hw_cp

(PHP 3>= 3.0.3, PHP 4 )

hw_cp -- Copies objects

Description

int hw_cp ( int connection, array object_id_array, int destination_id)

Copies the objects with object ids as specified in the second parameter to the collection with the id destination id.

The value return is the number of copied objects.

See also hw_mv().

Zurück | Zum Anfang | Nach vorne
hw_connection_info | Nach oben | hw_Deleteobject


hw_Deleteobject

(PHP 3>= 3.0.3, PHP 4 )

hw_Deleteobject -- deletes object

Description

int hw_deleteobject ( int connection, int object_to_delete)

Deletes the object with the given object id in the second parameter. It will delete all instances of the object.

Returns TRUE if no error occurs otherwise FALSE.

See also hw_mv().

Zurück | Zum Anfang | Nach vorne
hw_cp | Nach oben | hw_DocByAnchor


hw_DocByAnchor

(PHP 3>= 3.0.3, PHP 4 )

hw_DocByAnchor -- object id object belonging to anchor

Description

int hw_docbyanchor ( int connection, int anchorID)

Returns an th object id of the document to which anchorID belongs.

Zurück | Zum Anfang | Nach vorne
hw_Deleteobject | Nach oben | hw_DocByAnchorObj


hw_DocByAnchorObj

(PHP 3>= 3.0.3, PHP 4 )

hw_DocByAnchorObj -- object record object belonging to anchor

Description

string hw_docbyanchorobj ( int connection, int anchorID)

Returns an th object record of the document to which anchorID belongs.

Zurück | Zum Anfang | Nach vorne
hw_DocByAnchor | Nach oben | hw_Document_Attributes


hw_Document_Attributes

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Attributes -- object record of hw_document

Description

string hw_document_attributes ( int hw_document)

Returns the object record of the document.

For backward compatibility, hw_documentattributes() is also accepted. This is deprecated, however.

See also hw_document_bodytag(), and hw_document_size().

Zurück | Zum Anfang | Nach vorne
hw_DocByAnchorObj | Nach oben | hw_Document_BodyTag


hw_Document_BodyTag

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_BodyTag -- body tag of hw_document

Description

string hw_document_bodytag ( int hw_document)

Returns the BODY tag of the document. If the document is an HTML document the BODY tag should be printed before the document.

See also hw_document_attributes(), and hw_document_size().

For backward compatibility, hw_documentbodytag() is also accepted. This is deprecated, however.

Zurück | Zum Anfang | Nach vorne
hw_Document_Attributes | Nach oben | hw_Document_Content


hw_Document_Content

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Content -- returns content of hw_document

Description

string hw_document_content ( int hw_document)

Returns the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_setcontent().

Zurück | Zum Anfang | Nach vorne
hw_Document_BodyTag | Nach oben | hw_Document_SetContent


hw_Document_SetContent

(PHP 4 )

hw_Document_SetContent -- sets/replaces content of hw_document

Description

string hw_document_setcontent ( int hw_document, string content)

Sets or replaces the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record. If you provide this information in the content of the document too, the Hyperwave server will change the object record accordingly when the document is inserted. Probably not a very good idea. If this functions fails the document will retain its old content.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_content().

Zurück | Zum Anfang | Nach vorne
hw_Document_Content | Nach oben | hw_Document_Size


hw_Document_Size

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Size -- size of hw_document

Description

int hw_document_size ( int hw_document)

Returns the size in bytes of the document.

See also hw_document_bodytag(), and hw_document_attributes().

For backward compatibility, hw_documentsize() is also accepted. This is deprecated, however.

Zurück | Zum Anfang | Nach vorne
hw_Document_SetContent | Nach oben | hw_dummy


hw_dummy

(PHP 3>= 3.0.3, PHP 4 )

hw_dummy -- Hyperwave dummy function

Description

string hw_dummy ( int link, int id, int msgid)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
hw_Document_Size | Nach oben | hw_EditText


hw_EditText

(PHP 3>= 3.0.3, PHP 4 )

hw_EditText -- retrieve text document

Description

int hw_edittext ( int connection, int hw_document)

Uploads the text document to the server. The object record of the document may not be modified while the document is edited. This function will only works for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

See also hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size(),
hw_output_document(), and
hw_gettext().

Zurück | Zum Anfang | Nach vorne
hw_dummy | Nach oben | hw_Error


hw_Error

(PHP 3>= 3.0.3, PHP 4 )

hw_Error -- error number

Description

int hw_error ( int connection)

Returns the last error number. If the return value is 0 no error has occurred. The error relates to the last command.

Zurück | Zum Anfang | Nach vorne
hw_EditText | Nach oben | hw_ErrorMsg


hw_ErrorMsg

(PHP 3>= 3.0.3, PHP 4 )

hw_ErrorMsg -- returns error message

Description

string hw_errormsg ( int connection)

Returns a string containing the last error message or 'No Error'. If FALSE is returned, this function failed. The message relates to the last command.

Zurück | Zum Anfang | Nach vorne
hw_Error | Nach oben | hw_Free_Document


hw_Free_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_Free_Document -- frees hw_document

Description

int hw_free_document ( int hw_document)

Frees the memory occupied by the Hyperwave document.

Zurück | Zum Anfang | Nach vorne
hw_ErrorMsg | Nach oben | hw_GetAnchors


hw_GetAnchors

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAnchors -- object ids of anchors of document

Description

array hw_getanchors ( int connection, int objectID)

Returns an array of object ids with anchors of the document with object ID objectID.

Zurück | Zum Anfang | Nach vorne
hw_Free_Document | Nach oben | hw_GetAnchorsObj


hw_GetAnchorsObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAnchorsObj -- object records of anchors of document

Description

array hw_getanchorsobj ( int connection, int objectID)

Returns an array of object records with anchors of the document with object ID objectID.

Zurück | Zum Anfang | Nach vorne
hw_GetAnchors | Nach oben | hw_GetAndLock


hw_GetAndLock

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAndLock -- return object record and lock object

Description

string hw_getandlock ( int connection, int objectID)

Returns the object record for the object with ID objectID. It will also lock the object, so other users cannot access it until it is unlocked.

See also hw_unlock(), and hw_getobject().

Zurück | Zum Anfang | Nach vorne
hw_GetAnchorsObj | Nach oben | hw_GetChildColl


hw_GetChildColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildColl -- object ids of child collections

Description

array hw_getchildcoll ( int connection, int objectID)

Returns an array of object ids. Each object ID belongs to a child collection of the collection with ID objectID. The function will not return child documents.

See also hw_children(), and hw_getchilddoccoll().

Zurück | Zum Anfang | Nach vorne
hw_GetAndLock | Nach oben | hw_GetChildCollObj


hw_GetChildCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildCollObj -- object records of child collections

Description

array hw_getchildcollobj ( int connection, int objectID)

Returns an array of object records. Each object records belongs to a child collection of the collection with ID objectID. The function will not return child documents.

See also hw_childrenobj(), and hw_getchilddoccollobj().

Zurück | Zum Anfang | Nach vorne
hw_GetChildColl | Nach oben | hw_GetChildDocColl


hw_GetChildDocColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildDocColl -- object ids of child documents of collection

Description

array hw_getchilddoccoll ( int connection, int objectID)

Returns array of object ids for child documents of a collection.

See also hw_children(), and hw_getchildcoll().

Zurück | Zum Anfang | Nach vorne
hw_GetChildCollObj | Nach oben | hw_GetChildDocCollObj


hw_GetChildDocCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildDocCollObj -- object records of child documents of collection

Description

array hw_getchilddoccollobj ( int connection, int objectID)

Returns an array of object records for child documents of a collection.

See also hw_childrenobj(), and hw_getchildcollobj().

Zurück | Zum Anfang | Nach vorne
hw_GetChildDocColl | Nach oben | hw_GetObject


hw_GetObject

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObject -- object record

Description

array hw_getobject ( int connection, mixed objectID, string query)

Returns the object record for the object with ID objectID if the second parameter is an integer. If the second parameter is an array of integer the function will return an array of object records. In such a case the last parameter is also evaluated which is a query string.

The query string has the following syntax:

<expr> ::= "(" <expr> ")" |

"!" <expr> | /* NOT */

<expr> "||" <expr> | /* OR */

<expr> "&&" <expr> | /* AND */

<attribute> <operator> <value>

<attribute> ::= /* any attribute name (Title, Author, DocumentType ...) */

<operator> ::= "=" | /* equal */

"<" | /* less than (string compare) */

">" | /* greater than (string compare) */

"~" /* regular expression matching */

The query allows to further select certain objects from the list of given objects. Unlike the other query functions, this query may use not indexed attributes. How many object records are returned depends on the query and if access to the object is allowed.

See also hw_getandlock(), and hw_getobjectbyquery().

Zurück | Zum Anfang | Nach vorne
hw_GetChildDocCollObj | Nach oben | hw_GetObjectByQuery


hw_GetObjectByQuery

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQuery -- search object

Description

array hw_getobjectbyquery ( int connection, string query, int max_hits)

Searches for objects on the whole server and returns an array of object ids. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyqueryobj().

Zurück | Zum Anfang | Nach vorne
hw_GetObject | Nach oben | hw_GetObjectByQueryColl


hw_GetObjectByQueryColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryColl -- search object in collection

Description

array hw_getobjectbyquerycoll ( int connection, int objectID, string query, int max_hits)

Searches for objects in collection with ID objectID and returns an array of object ids. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquerycollobj().

Zurück | Zum Anfang | Nach vorne
hw_GetObjectByQuery | Nach oben | hw_GetObjectByQueryCollObj


hw_GetObjectByQueryCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryCollObj -- search object in collection

Description

array hw_getobjectbyquerycollobj ( int connection, int objectID, string query, int max_hits)

Searches for objects in collection with ID objectID and returns an array of object records. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquerycoll().

Zurück | Zum Anfang | Nach vorne
hw_GetObjectByQueryColl | Nach oben | hw_GetObjectByQueryObj


hw_GetObjectByQueryObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryObj -- search object

Description

array hw_getobjectbyqueryobj ( int connection, string query, int max_hits)

Searches for objects on the whole server and returns an array of object records. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquery().

Zurück | Zum Anfang | Nach vorne
hw_GetObjectByQueryCollObj | Nach oben | hw_GetParents


hw_GetParents

(PHP 3>= 3.0.3, PHP 4 )

hw_GetParents -- object ids of parents

Description

array hw_getparents ( int connection, int objectID)

Returns an indexed array of object ids. Each object id belongs to a parent of the object with ID objectID.

Zurück | Zum Anfang | Nach vorne
hw_GetObjectByQueryObj | Nach oben | hw_GetParentsObj


hw_GetParentsObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetParentsObj -- object records of parents

Description

array hw_getparentsobj ( int connection, int objectID)

Returns an indexed array of object records plus an associated array with statistical information about the object records. The associated array is the last entry of the returned array. Each object record belongs to a parent of the object with ID objectID.

Zurück | Zum Anfang | Nach vorne
hw_GetParents | Nach oben | hw_getrellink


hw_getrellink

(PHP 3>= 3.0.3, PHP 4 )

hw_getrellink -- Get link from source to dest relative to rootid

Description

string hw_getrellink ( int link, int rootid, int sourceid, int destid)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
hw_GetParentsObj | Nach oben | hw_GetRemote


hw_GetRemote

(PHP 3>= 3.0.3, PHP 4 )

hw_GetRemote -- Gets a remote document

Description

int hw_getremote ( int connection, int objectID)

Returns a remote document. Remote documents in Hyperwave notation are documents retrieved from an external source. Common remote documents are for example external web pages or queries in a database. In order to be able to access external sources through remote documents Hyperwave introduces the HGI (Hyperwave Gateway Interface) which is similar to the CGI. Currently, only ftp, http-servers and some databases can be accessed by the HGI. Calling hw_getremote() returns the document from the external source. If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

See also hw_getremotechildren().

Zurück | Zum Anfang | Nach vorne
hw_getrellink | Nach oben | hw_getremotechildren


hw_getremotechildren

(PHP 3>= 3.0.3, PHP 4 )

hw_getremotechildren -- Gets children of remote document

Description

int hw_getremotechildren ( int connection, string object_record)

Returns the children of a remote document. Children of a remote document are remote documents itself. This makes sense if a database query has to be narrowed and is explained in Hyperwave Programmers' Guide. If the number of children is 1 the function will return the document itself formated by the Hyperwave Gateway Interface (HGI). If the number of children is greater than 1 it will return an array of object record with each maybe the input value for another call to hw_getremotechildren(). Those object records are virtual and do not exist in the Hyperwave server, therefore they do not have a valid object ID. How exactly such an object record looks like is up to the HGI. If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

See also hw_getremote().

Zurück | Zum Anfang | Nach vorne
hw_GetRemote | Nach oben | hw_GetSrcByDestObj


hw_GetSrcByDestObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetSrcByDestObj -- Returns anchors pointing at object

Description

array hw_getsrcbydestobj ( int connection, int objectID)

Returns the object records of all anchors pointing to the object with ID objectID. The object can either be a document or an anchor of type destination.

See also hw_getanchors().

Zurück | Zum Anfang | Nach vorne
hw_getremotechildren | Nach oben | hw_GetText


hw_GetText

(PHP 3>= 3.0.3, PHP 4 )

hw_GetText -- retrieve text document

Description

int hw_gettext ( int connection, int objectID [, mixed rootID/prefix])

Returns the document with object ID objectID. If the document has anchors which can be inserted, they will be inserted already. The optional parameter rootID/prefix can be a string or an integer. If it is an integer it determines how links are inserted into the document. The default is 0 and will result in links that are constructed from the name of the link's destination object. This is useful for web applications. If a link points to an object with name 'internet_movie' the HTML link will be <A HREF="/internet_movie">. The actual location of the source and destination object in the document hierarchy is disregarded. You will have to set up your web browser, to rewrite that URL to for example '/my_script.php3/internet_movie'. 'my_script.php3' will have to evaluate $PATH_INFO and retrieve the document. All links will have the prefix '/my_script.php3/'. If you do not want this you can set the optional parameter rootID/prefix to any prefix which is used instead. Is this case it has to be a string.

If rootID/prefix is an integer and unequal to 0 the link is constructed from all the names starting at the object with the id rootID/prefix separated by a slash relative to the current object. If for example the above document 'internet_movie' is located at 'a-b-c-internet_movie' with '-' being the separator between hierarchy levels on the Hyperwave server and the source document is located at 'a-b-d-source' the resulting HTML link would be: <A HREF="../c/internet_movie">. This is useful if you want to download the whole server content onto disk and map the document hierarchy onto the file system.

This function will only work for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

See also hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size(),
and hw_output_document().

Zurück | Zum Anfang | Nach vorne
hw_GetSrcByDestObj | Nach oben | hw_getusername


hw_getusername

(PHP 3>= 3.0.3, PHP 4 )

hw_getusername -- name of currently logged in user

Description

string hw_getusername ( int connection)

Returns the username of the connection.

Zurück | Zum Anfang | Nach vorne
hw_GetText | Nach oben | hw_Identify


hw_Identify

(PHP 3>= 3.0.3, PHP 4 )

hw_Identify -- identifies as user

Description

int hw_identify ( string username, string password)

Identifies as user with username and password. Identification is only valid for the current session. I do not thing this function will be needed very often. In most cases it will be easier to identify with the opening of the connection.

See also hw_connect().

Zurück | Zum Anfang | Nach vorne
hw_getusername | Nach oben | hw_InCollections


hw_InCollections

(PHP 3>= 3.0.3, PHP 4 )

hw_InCollections -- check if object ids in collections

Description

array hw_incollections ( int connection, array object_id_array, array collection_id_array, int return_collections)

Checks whether a set of objects (documents or collections) specified by the object_id_array is part of the collections listed in collection_id_array. When the fourth parameter return_collections is 0, the subset of object ids that is part of the collections (i.e., the documents or collections that are children of one or more collections of collection ids or their subcollections, recursively) is returned as an array. When the fourth parameter is 1, however, the set of collections that have one or more objects of this subset as children are returned as an array. This option allows a client to, e.g., highlight the part of the collection hierarchy that contains the matches of a previous query, in a graphical overview.

Zurück | Zum Anfang | Nach vorne
hw_Identify | Nach oben | hw_Info


hw_Info

(PHP 3>= 3.0.3, PHP 4 )

hw_Info -- info about connection

Description

string hw_info ( int connection)

Returns information about the current connection. The returned string has the following format: <Serverstring>, <Host>, <Port>, <Username>, <Port of Client>, <Byte swapping>

Zurück | Zum Anfang | Nach vorne
hw_InCollections | Nach oben | hw_InsColl


hw_InsColl

(PHP 3>= 3.0.3, PHP 4 )

hw_InsColl -- insert collection

Description

int hw_inscoll ( int connection, int objectID, array object_array)

Inserts a new collection with attributes as in object_array into collection with object ID objectID.

Zurück | Zum Anfang | Nach vorne
hw_Info | Nach oben | hw_InsDoc


hw_InsDoc

(PHP 3>= 3.0.3, PHP 4 )

hw_InsDoc -- insert document

Description

int hw_insdoc ( int connection, int parentID, string object_record, string text)

Inserts a new document with attributes as in object_record into collection with object ID parentID. This function inserts either an object record only or an object record and a pure ascii text in text if text is given. If you want to insert a general document of any kind use hw_insertdocument() instead.

See also hw_insertdocument(), and hw_inscoll().

Zurück | Zum Anfang | Nach vorne
hw_InsColl | Nach oben | hw_insertanchors


hw_insertanchors

(PHP 4 >= 4.0.4)

hw_insertanchors -- Inserts only anchors into text

Description

string hw_insertanchors ( int hwdoc, array anchorecs, array dest [, array urlprefixes])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
hw_InsDoc | Nach oben | hw_InsertDocument


hw_InsertDocument

(PHP 3>= 3.0.3, PHP 4 )

hw_InsertDocument -- upload any document

Description

int hw_insertdocument ( int connection, int parent_id, int hw_document)

Uploads a document into the collection with parent_id. The document has to be created before with hw_new_document(). Make sure that the object record of the new document contains at least the attributes: Type, DocumentType, Title and Name. Possibly you also want to set the MimeType. The functions returns the object id of the new document or FALSE.

See also hw_pipedocument().

Zurück | Zum Anfang | Nach vorne
hw_insertanchors | Nach oben | hw_InsertObject


hw_InsertObject

(PHP 3>= 3.0.3, PHP 4 )

hw_InsertObject -- inserts an object record

Description

int hw_insertobject ( int connection, string object_rec, string parameter)

Inserts an object into the server. The object can be any valid hyperwave object. See the HG-CSP documentation for a detailed information on how the parameters have to be.

Note: If you want to insert an Anchor, the attribute Position has always been set either to a start/end value or to 'invisible'. Invisible positions are needed if the annotation has no corresponding link in the annotation text.

See also hw_pipedocument(),
hw_insertdocument(),
hw_insdoc(),
and hw_inscoll().

Zurück | Zum Anfang | Nach vorne
hw_InsertDocument | Nach oben | hw_mapid


hw_mapid

(PHP 3>= 3.0.13, PHP 4 )

hw_mapid -- Maps global id on virtual local id

Description

int hw_mapid ( int connection, int server_id, int object_id)

Maps a global object id on any hyperwave server, even those you did not connect to with hw_connect(), onto a virtual object id. This virtual object id can then be used as any other object id, e.g. to obtain the object record with hw_getobject(). The server id is the first part of the global object id (GOid) of the object which is actually the IP number as an integer.

Note: In order to use this function you will have to set the F_DISTRIBUTED flag, which can currently only be set at compile time in hg_comm.c. It is not set by default. Read the comment at the beginning of hg_comm.c

Zurück | Zum Anfang | Nach vorne
hw_InsertObject | Nach oben | hw_Modifyobject


hw_Modifyobject

(PHP 3>= 3.0.7, PHP 4 )

hw_Modifyobject -- modifies object record

Description

int hw_modifyobject ( int connection, int object_to_change, array remove, array add, int mode)

This command allows to remove, add, or modify individual attributes of an object record. The object is specified by the Object ID object_to_change. The first array remove is a list of attributes to remove. The second array add is a list of attributes to add. In order to modify an attribute one will have to remove the old one and add a new one. hw_modifyobject() will always remove the attributes before it adds attributes unless the value of the attribute to remove is not a string or array.

The last parameter determines if the modification is performed recursively. 1 means recursive modification. If some of the objects cannot be modified they will be skipped without notice. hw_error() may not indicate an error though some of the objects could not be modified.

The keys of both arrays are the attributes name. The value of each array element can either be an array, a string or anything else. If it is an array each attribute value is constructed by the key of each element plus a colon and the value of each element. If it is a string it is taken as the attribute value. An empty string will result in a complete removal of that attribute. If the value is neither a string nor an array but something else, e.g. an integer, no operation at all will be performed on the attribute. This is necessary if you want to to add a completely new attribute not just a new value for an existing attribute. If the remove array contained an empty string for that attribute, the attribute would be tried to be removed which would fail since it doesn't exist. The following addition of a new value for that attribute would also fail. Setting the value for that attribute to e.g. 0 would not even try to remove it and the addition will work.

If you would like to change the attribute 'Name' with the current value 'books' into 'articles' you will have to create two arrays and call hw_modifyobject().

Beispiel 1. modifying an attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => "books");
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
In order to delete/add a name=value pair from/to the object record just pass the remove/add array and set the last/third parameter to an empty array. If the attribute is the first one with that name to add, set attribute value in the remove array to an integer.

Beispiel 2. adding a completely new attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => 0);
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Anmerkung: Multilingual attributes, e.g. 'Title', can be modified in two ways. Either by providing the attributes value in its native form 'language':'title' or by providing an array with elements for each language as described above. The above example would than be:

Beispiel 3. modifying Title attribute

<?php
       $remarr = array("Title" => "en:Books");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
or

Beispiel 4. modifying Title attribute

<?php
       $remarr = array("Title" => array("en" => "Books"));
       $addarr = array("Title" => array("en" => "Articles", "ge"=>"Artikel"));
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
This removes the English title 'Books' and adds the English title 'Articles' and the German title 'Artikel'.

Beispiel 5. removing attribute

<?php
       $remarr = array("Title" => "");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Anmerkung: This will remove all attributes with the name 'Title' and adds a new 'Title' attribute. This comes in handy if you want to remove attributes recursively.

Anmerkung: If you need to delete all attributes with a certain name you will have to pass an empty string as the attribute value.

Anmerkung: Only the attributes 'Title', 'Description' and 'Keyword' will properly handle the language prefix. If those attributes don't carry a language prefix, the prefix 'xx' will be assigned.

Anmerkung: The 'Name' attribute is somewhat special. In some cases it cannot be complete removed. You will get an error message 'Change of base attribute' (not clear when this happens). Therefore you will always have to add a new Name first and than remove the old one.

Anmerkung: You may not surround this function by calls to hw_getandlock() and hw_unlock(). hw_modifyobject() does this internally.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
hw_mapid | Nach oben | hw_mv


hw_mv

(PHP 3>= 3.0.3, PHP 4 )

hw_mv -- Moves objects

Description

int hw_mv ( int connection, array object_id_array, int source_id, int destination_id)

Moves the objects with object ids as specified in the second parameter from the collection with id source_id to the collection with the id destination_id. If the destination id is 0 the objects will be unlinked from the source collection. If this is the last instance of that object it will be deleted. If you want to delete all instances at once, use hw_deleteobject().

The value returned is the number of moved objects.

See also hw_cp(), and hw_deleteobject().

Zurück | Zum Anfang | Nach vorne
hw_Modifyobject | Nach oben | hw_New_Document


hw_New_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_New_Document -- create new document

Description

int hw_new_document ( string object_record, string document_data, int document_size)

Returns a new Hyperwave document with document data set to document_data and object record set to object_record. The length of the document_data has to passed in document_sizeThis function does not insert the document into the Hyperwave server.

See also hw_free_document(),
hw_document_size(),
hw_document_bodytag(),
hw_output_document(),
and hw_insertdocument().

Zurück | Zum Anfang | Nach vorne
hw_mv | Nach oben | hw_objrec2array


hw_objrec2array

(PHP 3>= 3.0.3, PHP 4 )

hw_objrec2array -- Convert attributes from object record to object array

Description

array hw_objrec2array ( string object_record [, array format])

Converts an object_record into an object array. The keys of the resulting array are the attributes names. Multi-value attributes like 'Title' in different languages form its own array. The keys of this array are the left part to the colon of the attribute value. This left part must be two characters long. Other multi-value attributes without a prefix form an indexed array. If the optional parameter is missing the attributes 'Title', 'Description' and 'Keyword' are treated as language attributes and the attributes 'Group', 'Parent' and 'HtmlAttr' as non-prefixed multi-value attributes. By passing an array holding the type for each attribute you can alter this behaviour. The array is an associated array with the attribute name as its key and the value being one of HW_ATTR_LANG or HW_ATTR_NONE.

See also hw_array2objrec().

Zurück | Zum Anfang | Nach vorne
hw_New_Document | Nach oben | hw_Output_Document


hw_Output_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_Output_Document -- prints hw_document

Description

int hw_output_document ( int hw_document)

Prints the document without the BODY tag.

For backward compatibility, hw_outputdocument() is also accepted. This is deprecated, however.

Zurück | Zum Anfang | Nach vorne
hw_objrec2array | Nach oben | hw_pConnect


hw_pConnect

(PHP 3>= 3.0.3, PHP 4 )

hw_pConnect -- make a persistent database connection

Description

int hw_pconnect ( string host, int port, string username, string password)

Returns a connection index on success, or FALSE if the connection could not be made. Opens a persistent connection to a Hyperwave server. Each of the arguments should be a quoted string, except for the port number. The username and password arguments are optional and can be left out. In such a case no identification with the server will be done. It is similar to identify as user anonymous. This function returns a connection index that is needed by other Hyperwave functions. You can have multiple persistent connections open at once.

See also hw_connect().

Zurück | Zum Anfang | Nach vorne
hw_Output_Document | Nach oben | hw_PipeDocument


hw_PipeDocument

(PHP 3>= 3.0.3, PHP 4 )

hw_PipeDocument -- retrieve any document

Description

int hw_pipedocument ( int connection, int objectID)

Returns the Hyperwave document with object ID objectID. If the document has anchors which can be inserted, they will have been inserted already. The document will be transferred via a special data connection which does not block the control connection.

See also hw_gettext() for more on link insertion,
hw_free_document(),
hw_document_size(),
hw_document_bodytag(),
and hw_output_document().

Zurück | Zum Anfang | Nach vorne
hw_pConnect | Nach oben | hw_Root


hw_Root

(PHP 3>= 3.0.3, PHP 4 )

hw_Root -- root object id

Description

int hw_root ( )

Returns the object ID of the hyperroot collection. Currently this is always 0. The child collection of the hyperroot is the root collection of the connected server.

Zurück | Zum Anfang | Nach vorne
hw_PipeDocument | Nach oben | hw_setlinkroot


hw_setlinkroot

(PHP 3>= 3.0.3, PHP 4 )

hw_setlinkroot -- Set the id to which links are calculated

Description

void hw_setlinkroot ( int link, int rootid)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
hw_Root | Nach oben | hw_stat


hw_stat

(PHP 3>= 3.0.3, PHP 4 )

hw_stat -- Returns status string

Description

string hw_stat ( int link)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
hw_setlinkroot | Nach oben | hw_Unlock


hw_Unlock

(PHP 3>= 3.0.3, PHP 4 )

hw_Unlock -- unlock object

Description

int hw_unlock ( int connection, int objectID)

Unlocks a document, so other users regain access.

See also hw_getandlock().

Zurück | Zum Anfang | Nach vorne
hw_stat | Nach oben | hw_Who


hw_Who

(PHP 3>= 3.0.3, PHP 4 )

hw_Who -- List of currently logged in users

Description

int hw_who ( int connection)

Returns an array of users currently logged into the Hyperwave server. Each entry in this array is an array itself containing the elements id, name, system, onSinceDate, onSinceTime, TotalTime and self. 'self' is 1 if this entry belongs to the user who initiated the request.

Zurück | Zum Anfang | Nach vorne
hw_Unlock | Nach oben | Hyperwave API Functions


Hyperwave API Functions

PHP Handbuch
Zurück Nach vorne

XXXIX. Hyperwave API Functions

Einführung

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5, is available at http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user.

Anforderungen

Since 2001 there is a Hyperwave SDK available. It supports Java, JavaScript and C++. This PHP Extension is based on the C++ interface. In order to activate the hwapi support in PHP you will have to install the Hyperwave SDK first.

Installation

After installing the Hyperwave SDK, configure PHP with --with-hwapi[=DIR].

Integration with Apache

The integration with Apache and possible other servers is already described in the Hyperwave module which has been the first extension to connect a Hyperwave Server.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Hyperwave API configuration options

Name | Default | Changeable
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Classes

The API provided by the HW_API extension is fully object oriented. It is very similar to the C++ interface of the Hyperwave SDK. It consist of the following classes.

  • HW_API

  • HW_API_Object

  • HW_API_Attribute

  • HW_API_Error

  • HW_API_Content

  • HW_API_Reason

Some basic classes like HW_API_String, HW_API_String_Array, etc., which exist in the Hyperwave SDK have not been implemented since PHP has powerful replacements for them.

Each class has certain method, whose names are identical to its counterparts in the Hyperwave SDK. Passing arguments to this function differs from all the other PHP extensions but is close to the C++ API of the HW SDK. Instead of passing several parameters they are all put into an associated array and passed as one parameter. The names of the keys are identical to those documented in the HW SDK. The common parameters are listed below. If other parameters are required they will be documented if needed.

  • objectIdentifier The name or id of an object, e.g. "rootcollection", "0x873A8768 0x00000002".

  • parentIdentifier The name or id of an object which is considered to be a parent.

  • object An instance of class HW_API_Object.

  • parameters An instance of class HW_API_Object.

  • version The version of an object.

  • mode An integer value determine the way an operation is executed.

  • attributeSelector Any array of strings, each containing a name of an attribute. This is used if you retrieve the object record and want to include certain attributes.

  • objectQuery A query to select certain object out of a list of objects. This is used to reduce the number of objects which was delivered by a function like hw_api->children() or hw_api->find().

Inhaltsverzeichnis
hw_api_attribute->key -- Returns key of the attribute
hw_api_attribute->langdepvalue -- Returns value for a given language
hw_api_attribute->value -- Returns value of the attribute
hw_api_attribute->values -- Returns all values of the attribute
hw_api_attribute -- Creates instance of class hw_api_attribute
hw_api->checkin -- Checks in an object
hw_api->checkout -- Checks out an object
hw_api->children -- Returns children of an object
hw_api_content->mimetype -- Returns mimetype
hw_api_content->read -- Read content
hw_api->content -- Returns content of an object
hw_api->copy -- Copies physically
hw_api->dbstat -- Returns statistics about database server
hw_api->dcstat -- Returns statistics about document cache server
hw_api->dstanchors -- Returns a list of all destination anchors
hw_api->dstofsrcanchors -- Returns destination of a source anchor
hw_api_error->count -- Returns number of reasons
hw_api_error->reason -- Returns reason of error
hw_api->find -- Search for objects
hw_api->ftstat -- Returns statistics about fulltext server
hwapi_hgcsp -- Returns object of class hw_api
hw_api->hwstat -- Returns statistics about Hyperwave server
hw_api->identify -- Log into Hyperwave Server
hw_api->info -- Returns information about server configuration
hw_api->insert -- Inserts a new object
hw_api->insertanchor -- Inserts a new object of type anchor
hw_api->insertcollection -- Inserts a new object of type collection
hw_api->insertdocument -- Inserts a new object of type document
hw_api->link -- Creates a link to an object
hw_api->lock -- Locks an object
hw_api->move -- Moves object between collections
hw_api_content -- Create new instance of class hw_api_content
hw_api_object->assign -- Clones object
hw_api_object->attreditable -- Checks whether an attribute is editable
hw_api_object->count -- Returns number of attributes
hw_api_object->insert -- Inserts new attribute
hw_api_object -- Creates a new instance of class hw_api_object
hw_api_object->remove -- Removes attribute
hw_api_object->title -- Returns the title attribute
hw_api_object->value -- Returns value of attribute
hw_api->object -- Retrieve attribute information
hw_api->objectbyanchor -- Returns the object an anchor belongs to
hw_api->parents -- Returns parents of an object
hw_api_reason->description -- Returns description of reason
hw_api_reason->type -- Returns type of reason
hw_api->remove -- Delete an object
hw_api->replace -- Replaces an object
hw_api->setcommitedversion -- Commits version other than last version
hw_api->srcanchors -- Returns a list of all source anchors
hw_api->srcsofdst -- Returns source of a destination object
hw_api->unlock -- Unlocks a locked object
hw_api->user -- Returns the own user object
hw_api->userlist -- Returns a list of all logged in users

Zurück | Zum Anfang | Nach vorne
hw_Who | Nach oben | hw_api_attribute->key


hw_api_attribute->key

(no version information, might be only in CVS)

hw_api_attribute->key -- Returns key of the attribute

Description

string key ( void )

Returns the name of the attribute.

See also hwapi_attribute_value().

Zurück | Zum Anfang | Nach vorne
Hyperwave API Functions | Nach oben | hw_api_attribute->langdepvalue


hw_api_attribute->langdepvalue

(no version information, might be only in CVS)

hw_api_attribute->langdepvalue -- Returns value for a given language

Description

string langdepvalue ( string language)

Returns the value in the given language of the attribute.

See also hwapi_attribute_value().

Zurück | Zum Anfang | Nach vorne
hw_api_attribute->key | Nach oben | hw_api_attribute->value


hw_api_attribute->value

(no version information, might be only in CVS)

hw_api_attribute->value -- Returns value of the attribute

Description

string value ( void )

Returns the value of the attribute.

See also hwapi_attribute_key(), hwapi_attribute_values().

Zurück | Zum Anfang | Nach vorne
hw_api_attribute->langdepvalue | Nach oben | hw_api_attribute->values


hw_api_attribute->values

(no version information, might be only in CVS)

hw_api_attribute->values -- Returns all values of the attribute

Description

array values ( void )

Returns all values of the attribute as an array of strings.

See also hwapi_attribute_value().

Zurück | Zum Anfang | Nach vorne
hw_api_attribute->value | Nach oben | hw_api_attribute


hw_api_attribute

(no version information, might be only in CVS)

hw_api_attribute -- Creates instance of class hw_api_attribute

Description

object attribute ( [string name [, string value]])

Creates a new instance of hw_api_attribute with the given name and value.

Zurück | Zum Anfang | Nach vorne
hw_api_attribute->values | Nach oben | hw_api->checkin


hw_api->checkin

(no version information, might be only in CVS)

hw_api->checkin -- Checks in an object

Description

object checkin ( array parameter)

This function checks in an object or a whole hiearchie of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'comment', 'mode' and 'objectQuery'. 'version' sets the version of the object. It consists of the major and minor version separated by a period. If the version is not set, the minor version is incremented. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks in and commits the object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check in is a collection, all children will be checked in recursively if they are documents. Trying to check in a collection would result in an error.

HW_API_CHECKIN_FORCE_VERSION_CONTROL

Checks in an object even if it is not under version control.

HW_API_CHECKIN_REVERT_IF_NOT_CHANGED

Check if the new version is different from the last version. Unless this is the case the object will be checked in.

HW_API_CHECKIN_KEEP_TIME_MODIFIED

Keeps the time modified from the most recent object.

HW_API_CHECKIN_NO_AUTO_COMMIT

The object is not automatically committed on check-in.

See also hwapi_checkout().

Zurück | Zum Anfang | Nach vorne
hw_api_attribute | Nach oben | hw_api->checkout


hw_api->checkout

(no version information, might be only in CVS)

hw_api->checkout -- Checks out an object

Description

object checkout ( array parameter)

This function checks out an object or a whole hiearchie of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'mode' and 'objectQuery'. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks out an object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check out is a collection, all children will be checked out recursively if they are documents. Trying to check out a collection would result in an error.

See also hwapi_checkin().

Zurück | Zum Anfang | Nach vorne
hw_api->checkin | Nach oben | hw_api->children


hw_api->children

(no version information, might be only in CVS)

hw_api->children -- Returns children of an object

Description

array children ( array parameter)

Retrieves the children of a collection or the attributes of a document. The children can be further filtered by specifying an object query. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_parents().

Zurück | Zum Anfang | Nach vorne
hw_api->checkout | Nach oben | hw_api_content->mimetype


hw_api_content->mimetype

(no version information, might be only in CVS)

hw_api_content->mimetype -- Returns mimetype

Description

string mimetype ( void )

Returns the mimetype of the content.

Zurück | Zum Anfang | Nach vorne
hw_api->children | Nach oben | hw_api_content->read


hw_api_content->read

(no version information, might be only in CVS)

hw_api_content->read -- Read content

Description

string read ( string buffer, integer len)

Reads len bytes from the content into the given buffer.

Zurück | Zum Anfang | Nach vorne
hw_api_content->mimetype | Nach oben | hw_api->content


hw_api->content

(no version information, might be only in CVS)

hw_api->content -- Returns content of an object

Description

object content ( array parameter)

This function returns the content of a document as an object of type hw_api_content. The parameter array contains the required elements 'objectidentifier' and the optional element 'mode'. The mode can be one of the constants HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS or HW_API_CONTENT_PLAIN. HW_API_CONTENT_ALLLINKS means to insert all anchors even if the destination is not reachable. HW_API_CONTENT_REACHABLELINKS tells hw_api_content() to insert only reachable links and HW_API_CONTENT_PLAIN will lead to document without any links.

Zurück | Zum Anfang | Nach vorne
hw_api_content->read | Nach oben | hw_api->copy


hw_api->copy

(no version information, might be only in CVS)

hw_api->copy -- Copies physically

Description

object copy ( array parameter)

This function will make a physical copy including the content if it exists and returns the new object or an error object. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. The optional parameter is 'attributeSelector'`

See also hwapi_move(), hwapi_link().

Zurück | Zum Anfang | Nach vorne
hw_api->content | Nach oben | hw_api->dbstat


hw_api->dbstat

(no version information, might be only in CVS)

hw_api->dbstat -- Returns statistics about database server

Description

object dbstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_hwstat(),
         hwapi_ftstat().

Zurück | Zum Anfang | Nach vorne
hw_api->copy | Nach oben | hw_api->dcstat


hw_api->dcstat

(no version information, might be only in CVS)

hw_api->dcstat -- Returns statistics about document cache server

Description

object dcstat ( array parameter)

See also hwapi_hwstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Zurück | Zum Anfang | Nach vorne
hw_api->dbstat | Nach oben | hw_api->dstanchors


hw_api->dstanchors

(no version information, might be only in CVS)

hw_api->dstanchors -- Returns a list of all destination anchors

Description

object dstanchors ( array parameter)

Retrieves all destination anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_srcanchors().

Zurück | Zum Anfang | Nach vorne
hw_api->dcstat | Nach oben | hw_api->dstofsrcanchors


hw_api->dstofsrcanchors

(no version information, might be only in CVS)

hw_api->dstofsrcanchors -- Returns destination of a source anchor

Description

object dstofsrcanchors ( array parameter)

Retrieves the destination object pointed by the specified source anchors. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_srcanchors(),
         hwapi_dstanchors(),
         hwapi_objectbyanchor().

Zurück | Zum Anfang | Nach vorne
hw_api->dstanchors | Nach oben | hw_api_error->count


hw_api_error->count

(no version information, might be only in CVS)

hw_api_error->count -- Returns number of reasons

Description

int count ( void )

Returns the number of error reasons.

See also hwapi_error_reason().

Zurück | Zum Anfang | Nach vorne
hw_api->dstofsrcanchors | Nach oben | hw_api_error->reason


hw_api_error->reason

(no version information, might be only in CVS)

hw_api_error->reason -- Returns reason of error

Description

object reason ( void )

Returns the first error reason.

See also hwapi_error_count().

Zurück | Zum Anfang | Nach vorne
hw_api_error->count | Nach oben | hw_api->find


hw_api->find

(no version information, might be only in CVS)

hw_api->find -- Search for objects

Description

array find ( array parameter)

This functions searches for objects either by executing a key or/and full text query. The found objects can further be filtered by an optional object query. They are sorted by their importance. The second search operation is relatively slow and its result can be limited to a certain number of hits. This allows to perform an incremental search, each returning just a subset of all found documents, starting at a given index. The parameter array contains the 'keyquery' or/and 'fulltextquery' depending on who you would like to search. Optional parameters are 'objectquery', 'scope', 'languages' and 'attributeselector'. In case of an incremental search the optional parameters 'startIndex', numberOfObjectsToGet' and 'exactMatchUnit' can be passed.

Zurück | Zum Anfang | Nach vorne
hw_api_error->reason | Nach oben | hw_api->ftstat


hw_api->ftstat

(no version information, might be only in CVS)

hw_api->ftstat -- Returns statistics about fulltext server

Description

object ftstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_hwstat().

Zurück | Zum Anfang | Nach vorne
hw_api->find | Nach oben | hwapi_hgcsp


hwapi_hgcsp

(no version information, might be only in CVS)

hwapi_hgcsp -- Returns object of class hw_api

Description

object hwapi_hgcsp ( string hostname [, int port])

Opens a connection to the Hyperwave server on host hostname. The protocol used is HGCSP. If you do not pass a port number, 418 is used.

See also hwapi_hwtp().

Zurück | Zum Anfang | Nach vorne
hw_api->ftstat | Nach oben | hw_api->hwstat


hw_api->hwstat

(no version information, might be only in CVS)

hw_api->hwstat -- Returns statistics about Hyperwave server

Description

object hwstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Zurück | Zum Anfang | Nach vorne
hwapi_hgcsp | Nach oben | hw_api->identify


hw_api->identify

(no version information, might be only in CVS)

hw_api->identify -- Log into Hyperwave Server

Description

object identify ( array parameter)

Logs into the Hyperwave Server. The parameter array must contain the elements 'username' and 'password'.

The return value will be an object of type HW_API_Error if identification failed or TRUE if it was successful.

Zurück | Zum Anfang | Nach vorne
hw_api->hwstat | Nach oben | hw_api->info


hw_api->info

(no version information, might be only in CVS)

hw_api->info -- Returns information about server configuration

Description

object info ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat(),
         hwapi_hwstat().

Zurück | Zum Anfang | Nach vorne
hw_api->identify | Nach oben | hw_api->insert


hw_api->insert

(no version information, might be only in CVS)

hw_api->insert -- Inserts a new object

Description

object insert ( array parameter)

Insert a new object. The object type can be user, group, document or anchor. Depending on the type other object attributes has to be set. The parameter array contains the required elements 'object' and 'content' (if the object is a document) and the optional parameters 'parameters', 'mode' and 'attributeSelector'. The 'object' must contain all attributes of the object. 'parameters' is an object as well holding further attributes like the destination (attribute key is 'Parent'). 'content' is the content of the document. 'mode' can be a combination of the following flags:

HW_API_INSERT_NORMAL

The object in inserted into the server.

HW_API_INSERT_FORCE_VERSION_CONTROL

HW_API_INSERT_AUTOMATIC_CHECKOUT

HW_API_INSERT_PLAIN

HW_API_INSERT_KEEP_TIME_MODIFIED

HW_API_INSERT_DELAY_INDEXING

See also hwapi_replace().

Zurück | Zum Anfang | Nach vorne
hw_api->info | Nach oben | hw_api->insertanchor


hw_api->insertanchor

(no version information, might be only in CVS)

hw_api->insertanchor -- Inserts a new object of type anchor

Description

object insertanchor ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object of type anchor and sets some of the attributes required for an anchor. The parameter array contains the required elements 'object' and 'documentIdentifier' and the optional elements 'destinationIdentifier', 'parameter', 'hint' and 'attributeSelector'. The 'documentIdentifier' specifies the document where the anchor shall be inserted. The target of the anchor is set in 'destinationIdentifier' if it already exists. If the target does not exists the element 'hint' has to be set to the name of object which is supposed to be inserted later. Once it is inserted the anchor target is resolved automatically.

See also hwapi_insertdocument(),
         hwapi_insertcollection(),
         hwapi_insert().

Zurück | Zum Anfang | Nach vorne
hw_api->insert | Nach oben | hw_api->insertcollection


hw_api->insertcollection

(no version information, might be only in CVS)

hw_api->insertcollection -- Inserts a new object of type collection

Description

object insertcollection ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object of type collection and sets some of the attributes required for a collection. The parameter array contains the required elements 'object' and 'parentIdentifier' and the optional elements 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insertdocument(),
         hwapi_insertanchor(),
         hwapi_insert().

Zurück | Zum Anfang | Nach vorne
hw_api->insertanchor | Nach oben | hw_api->insertdocument


hw_api->insertdocument

(no version information, might be only in CVS)

hw_api->insertdocument -- Inserts a new object of type document

Description

object insertdocument ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object with content and sets some of the attributes required for a document. The parameter array contains the required elements 'object', 'parentIdentifier' and 'content' and the optional elements 'mode', 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insert()
         hwapi_insertanchor(),
         hwapi_insertcollection().

Zurück | Zum Anfang | Nach vorne
hw_api->insertcollection | Nach oben | hw_api->link


hw_api->link

(no version information, might be only in CVS)

hw_api->link -- Creates a link to an object

Description

object link ( array parameter)

Creates a link to an object. Accessing this link is like accessing the object to links points to. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. 'destinationParentIdentifier' is the target collection.

The function returns TRUE on success or an error object.

See also hwapi_copy().

Zurück | Zum Anfang | Nach vorne
hw_api->insertdocument | Nach oben | hw_api->lock


hw_api->lock

(no version information, might be only in CVS)

hw_api->lock -- Locks an object

Description

object lock ( array parameter)

Locks an object for exclusive editing by the user calling this function. The object can be only unlocked by this user or the system user. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. 'mode' determines how an object is locked. HW_API_LOCK_NORMAL means, an object is locked until it is unlocked. HW_API_LOCK_RECURSIVE is only valid for collection and locks all objects within the collection and possible subcollections. HW_API_LOCK_SESSION means, an object is locked only as long as the session is valid.

See also hwapi_unlock().

Zurück | Zum Anfang | Nach vorne
hw_api->link | Nach oben | hw_api->move


hw_api->move

(no version information, might be only in CVS)

hw_api->move -- Moves object between collections

Description

object move ( array parameter)

See also hw_objrec2array().

Zurück | Zum Anfang | Nach vorne
hw_api->lock | Nach oben | hw_api_content


hw_api_content

(no version information, might be only in CVS)

hw_api_content -- Create new instance of class hw_api_content

Description

string content ( string content, string mimetype)

Creates a new content object from the string content. The mimetype is set to mimetype.

Zurück | Zum Anfang | Nach vorne
hw_api->move | Nach oben | hw_api_object->assign


hw_api_object->assign

(no version information, might be only in CVS)

hw_api_object->assign -- Clones object

Description

object assign ( array parameter)

Clones the attributes of an object.

Zurück | Zum Anfang | Nach vorne
hw_api_content | Nach oben | hw_api_object->attreditable


hw_api_object->attreditable

(no version information, might be only in CVS)

hw_api_object->attreditable -- Checks whether an attribute is editable

Description

bool attreditable ( array parameter)

Zurück | Zum Anfang | Nach vorne
hw_api_object->assign | Nach oben | hw_api_object->count


hw_api_object->count

(no version information, might be only in CVS)

hw_api_object->count -- Returns number of attributes

Description

int count ( array parameter)

Zurück | Zum Anfang | Nach vorne
hw_api_object->attreditable | Nach oben | hw_api_object->insert


hw_api_object->insert

(no version information, might be only in CVS)

hw_api_object->insert -- Inserts new attribute

Description

bool insert ( object attribute)

Adds an attribute to the object. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_remove().

Zurück | Zum Anfang | Nach vorne
hw_api_object->count | Nach oben | hw_api_object


hw_api_object

(no version information, might be only in CVS)

hw_api_object -- Creates a new instance of class hw_api_object

Description

object hw_api_object ( array parameter)

See also hwapi_lock().

Zurück | Zum Anfang | Nach vorne
hw_api_object->insert | Nach oben | hw_api_object->remove


hw_api_object->remove

(no version information, might be only in CVS)

hw_api_object->remove -- Removes attribute

Description

bool remove ( string name)

Removes the attribute with the given name. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_insert().

Zurück | Zum Anfang | Nach vorne
hw_api_object | Nach oben | hw_api_object->title


hw_api_object->title

(no version information, might be only in CVS)

hw_api_object->title -- Returns the title attribute

Description

string title ( array parameter)

Zurück | Zum Anfang | Nach vorne
hw_api_object->remove | Nach oben | hw_api_object->value


hw_api_object->value

(no version information, might be only in CVS)

hw_api_object->value -- Returns value of attribute

Description

string value ( string name)

Returns the value of the attribute with the given name or FALSE if an error occurred.

Zurück | Zum Anfang | Nach vorne
hw_api_object->title | Nach oben | hw_api->object


hw_api->object

(no version information, might be only in CVS)

hw_api->object -- Retrieve attribute information

Description

object hw_api->object ( array parameter)

This function retrieves the attribute information of an object of any version. It will not return the document content. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'version'.

The returned object is an instance of class HW_API_Object on success or HW_API_Error if an error occurred.

This simple example retrieves an object and checks for errors.

Beispiel 1. Retrieve an object

<?php
function handle_error($error)
{
  $reason = $error->reason(0);
  echo "Type: <b>";
  switch ($reason->type()) {
    case 0:
      echo "Error";
      break;
    case 1:
      echo "Warning";
      break;
    case 2:
      echo "Message";
      break;
  }
  echo "</b><br />\n";
  echo "Description: " . $reason->description("en") . "<br />\n";
}

function list_attr($obj)
{
  echo "<table>\n";
  $count = $obj->count();
  for ($i=0; $i<$count; $i++) {
    $attr = $obj->attribute($i);
    printf("<tr><td align=\"right\" bgcolor=\"#c0c0c0\"><b>%s</b></td><td bgcolor=\"#F0F0F0\">%s</td></tr>\n",
             $attr->key(), $attr->value());
  }
  echo "</table>\n";
}

$hwapi = hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier"=>"rootcollection", "attributeSelector"=>array("Title", "Name", "DocumentType"));
$root = $hwapi->object($parms);
if (get_class($root) == "HW_API_Error") {
  handle_error($root);
  exit;
}
list_attr($root);
?>

See also hwapi_content().

Zurück | Zum Anfang | Nach vorne
hw_api_object->value | Nach oben | hw_api->objectbyanchor


hw_api->objectbyanchor

(no version information, might be only in CVS)

hw_api->objectbyanchor -- Returns the object an anchor belongs to

Description

object objectbyanchor ( array parameter)

This function retrieves an object the specified anchor belongs to. The parameter array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_dstofsrcanchor(),
         hwapi_srcanchors(),
         hwapi_dstanchors().

Zurück | Zum Anfang | Nach vorne
hw_api->object | Nach oben | hw_api->parents


hw_api->parents

(no version information, might be only in CVS)

hw_api->parents -- Returns parents of an object

Description

array parents ( array parameter)

Retrieves the parents of an object. The parents can be further filtered by specifying an object query. The parameter array contains the required elements 'objectidentifier' and the optional elements 'attributeselector' and 'objectquery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_children().

Zurück | Zum Anfang | Nach vorne
hw_api->objectbyanchor | Nach oben | hw_api_reason->description


hw_api_reason->description

(no version information, might be only in CVS)

hw_api_reason->description -- Returns description of reason

Description

string description ( void )

Returns the description of a reason

Zurück | Zum Anfang | Nach vorne
hw_api->parents | Nach oben | hw_api_reason->type


hw_api_reason->type

(no version information, might be only in CVS)

hw_api_reason->type -- Returns type of reason

Description

object type ( void )

Returns the type of a reason.

Zurück | Zum Anfang | Nach vorne
hw_api_reason->description | Nach oben | hw_api->remove


hw_api->remove

(no version information, might be only in CVS)

hw_api->remove -- Delete an object

Description

object remove ( array parameter)

Removes an object from the specified parent. Collections will be removed recursively. You can pass an optional object query to remove only those objects which match the query. An object will be deleted physically if it is the last instance. The parameter array contains the required elements 'objectidentifier' and 'parentidentifier'. If you want to remove a user or group 'parentidentifier' can be skipped. The optional parameter 'mode' determines how the deletion is performed. In normal mode the object will not be removed physically until all instances are removed. In physical mode all instances of the object will be deleted immediately. In removelinks mode all references to and from the objects will be deleted as well. In nonrecursive the deletion is not performed recursive. Removing a collection which is not empty will cause an error.

See also hwapi_move().

Zurück | Zum Anfang | Nach vorne
hw_api_reason->type | Nach oben | hw_api->replace


hw_api->replace

(no version information, might be only in CVS)

hw_api->replace -- Replaces an object

Description

object replace ( array parameter)

Replaces the attributes and the content of an object The parameter array contains the required elements 'objectIdentifier' and 'object' and the optional parameters 'content', 'parameters', 'mode' and 'attributeSelector'. 'objectIdentifier' contains the object to be replaced. 'object' contains the new object. 'content' contains the new content. 'parameters' contain extra information for HTML documents. HTML_Language is the letter abbreviation of the language of the title. HTML_Base sets the base attribute of the HTML document. 'mode' can be a combination of the following flags:

HW_API_REPLACE_NORMAL

The object on the server is replace with the object passed.

HW_API_REPLACE_FORCE_VERSION_CONTROL

HW_API_REPLACE_AUTOMATIC_CHECKOUT

HW_API_REPLACE_AUTOMATIC_CHECKIN

HW_API_REPLACE_PLAIN

HW_API_REPLACE_REVERT_IF_NOT_CHANGED

HW_API_REPLACE_KEEP_TIME_MODIFIED

See also hwapi_insert().

Zurück | Zum Anfang | Nach vorne
hw_api->remove | Nach oben | hw_api->setcommitedversion


hw_api->setcommitedversion

(no version information, might be only in CVS)

hw_api->setcommitedversion -- Commits version other than last version

Description

object setcommitedversion ( array parameter)

Commits a version of a document. The committed version is the one which is visible to users with read access. By default the last version is the committed version.

See also hwapi_checkin(),
         hwapi_checkout(),
         hwapi_revert().

Zurück | Zum Anfang | Nach vorne
hw_api->replace | Nach oben | hw_api->srcanchors


hw_api->srcanchors

(no version information, might be only in CVS)

hw_api->srcanchors -- Returns a list of all source anchors

Description

object srcanchors ( array parameter)

Retrieves all source anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_dstanchors().

Zurück | Zum Anfang | Nach vorne
hw_api->setcommitedversion | Nach oben | hw_api->srcsofdst


hw_api->srcsofdst

(no version information, might be only in CVS)

hw_api->srcsofdst -- Returns source of a destination object

Description

object srcsofdst ( array parameter)

Retrieves all the source anchors pointing to the specified destination. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector' and 'objectQuery'. The function returns an array of objects or an error.

See also hwapi_dstofsrcanchor().

Zurück | Zum Anfang | Nach vorne
hw_api->srcanchors | Nach oben | hw_api->unlock


hw_api->unlock

(no version information, might be only in CVS)

hw_api->unlock -- Unlocks a locked object

Description

object unlock ( array parameter)

Unlocks a locked object. Only the user who has locked the object and the system user may unlock an object. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. The meaning of 'mode' is the same as in function hwapi_lock().

Returns TRUE on success or an object of class HW_API_Error.

See also hwapi_lock().

Zurück | Zum Anfang | Nach vorne
hw_api->srcsofdst | Nach oben | hw_api->user


hw_api->user

(no version information, might be only in CVS)

hw_api->user -- Returns the own user object

Description

object user ( array parameter)

See also hwapi_userlist().

Zurück | Zum Anfang | Nach vorne
hw_api->unlock | Nach oben | hw_api->userlist


hw_api->userlist

(no version information, might be only in CVS)

hw_api->userlist -- Returns a list of all logged in users

Description

object userlist ( array parameter)

See also hwapi_user().

Zurück | Zum Anfang | Nach vorne
hw_api->user | Nach oben | iconv Funktionen


iconv Funktionen

PHP Handbuch
Zurück Nach vorne

XL. iconv Funktionen

Einführung

Dieses Modul stellt eine Schnittstelle zu den Funktionen der iconv-Bibliothek bereit. Die Iconv-Bibliotheksfunktionen konvertieren Dateien in verschiedene Zeichensatzkodierungen. Die unterstützten Zeichensätze hängen von der jeweiligen iconv()-Implementation auf Ihrem System ab. Beachten Sie bitte, dass iconv() auf einigen Systemen nicht wie erwartet funktioniert. In diesem Fall sollten Sie die libiconv-Bibliothek installieren.

Anforderungen

Es muss iconv() in der Standard-C Bibliothek vorhanden sein oder libiconv auf Ihrem System installiert sein. Die libiconv-Bibliothek ist verfügbar über http://www.gnu.org/software/libiconv/.

Installation

Um die Funktionen dieses Moduls nutzen zu können müssen Sie den Ihren PHP-Interpreter mit der Konfigurationsoption --with-iconv kompilieren.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
iconv_get_encoding -- Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen
iconv_mime_decode_headers -- Decodes multiple MIME header fields at once
iconv_mime_decode -- Decodes a MIME header field
iconv_mime_encode -- Composes a MIME header field
iconv_set_encoding -- Einstellungen für die Zeichensatzkonvertierung setzen
iconv_strlen -- Returns the character count of string
iconv_strpos -- Finds position of first occurrence of a needle within a haystack.
iconv_strrpos -- Finds the last occurrence of a needle within the specified range of haystack.
iconv_substr -- Cut out part of a string
iconv -- Konvertiert Zeichenketten in einen anderen Zeichensatz
ob_iconv_handler -- Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)

Zurück | Zum Anfang | Nach vorne
hw_api->userlist | Nach oben | iconv_get_encoding


iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_get_encoding -- Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen

Beschreibung

array iconv_get_encoding ( [string type])

Die Funktion gibt die aktuelle Einstellung von ob_iconv_handler() als Array zurück Bei einem Fehler wird . FALSE zurückgegeben.

Siehe auch: iconv_set_encoding() und ob_iconv_handler().

Zurück | Zum Anfang | Nach vorne
iconv Funktionen | Nach oben | iconv_mime_decode_headers


iconv_mime_decode_headers

(PHP 5)

iconv_mime_decode_headers -- Decodes multiple MIME header fields at once

Description

array iconv_mime_decode_headers ( string encoded_headers [, int mode [, string charset]])

Returns an associative array that holds a whole set of MIME header fields specified by encoded_headers on success, or FALSE if an error occurs during the decoding.

Each key of the return value represents an individual field name and the corresponding element represents a field value. If more than one field of the same name are present, iconv_mime_decode_headers() automatically incorporates them into a numerically indexed array in the order of occurrence.

mode determines the behaviour in the event iconv_mime_decode_headers() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Tabelle 1. Bitmasks acceptable to iconv_mime_decode_headers()

Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode_headers() attempts to ignore any grammatical errors and continue to process a given header.

The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_charset will be used.

Beispiel 1. iconv_mime_decode_headers() example

<?php
$headers_string = <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
    with SMTP id example for <example@example.com>
    Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
    (envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;
$headers =  iconv_mime_decode_headers($headers_string, 0, "ISO-8859-1");
print_r($headers);
?>

The output of this script should look like:

Array
(
    [Subject] => Prüfung Prüfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for <example@example.com>; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

See also iconv_mime_decode(),
mb_decode_mimeheader(),
imap_mime_header_decode(),
imap_base64()
and imap_qprint().

Zurück | Zum Anfang | Nach vorne
iconv_get_encoding | Nach oben | iconv_mime_decode


iconv_mime_decode

(PHP 5)

iconv_mime_decode -- Decodes a MIME header field

Description

string iconv_mime_decode ( string encoded_header [, int mode [, string charset]])

Returns a decoded MIME field on success, or FALSE if an error occurs during the decoding.

mode determines the behaviour in the event iconv_mime_decode() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Tabelle 1. Bitmasks acceptable to iconv_mime_decode()

Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode() attempts to continue to process the given header even though an error occurs.

The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_charset will be used.

Beispiel 1. iconv_mime_decode() example

<?php
// This yields "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

See also iconv_mime_decode_headers(),
mb_decode_mimeheader(),
imap_mime_header_decode(),
imap_base64()
and imap_qprint().

Zurück | Zum Anfang | Nach vorne
iconv_mime_decode_headers | Nach oben | iconv_mime_encode


iconv_mime_encode

(PHP 5)

iconv_mime_encode -- Composes a MIME header field

Description

string iconv_mime_encode ( string field_name, string field_value [, array preferences])

Composes and returns a string that represents a valid MIME header field, which looks like the following:
Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
In the above example, "Subject" is the field name and the portion that begins with "=?ISO-8859-1?..." is the field value.

You can control the behaviour of iconv_mime_encode() by specifying an associative array that contains configuration items to the optional third parameter preferences. The items supported by iconv_mime_encode() are listed below. Note that item names are treated case-sensitive.

Tabelle 1. Configuration items supported by iconv_mime_encode()

Item | Type | Description | Default value | Example
scheme | boolean | Specifies the method to encode a field value by. The value of this item may be either "B" or "Q", where "B" stands for base64 encoding scheme and "Q" stands for quoted-printable encoding scheme. | B | B
input-charset | string | Specifies the character set in which the first parameter field_name and the second parameter field_value are presented. If not given, iconv_mime_encode() assumes those parameters are presented to it in the iconv.internal_charset ini setting. | iconv.internal_charset | ISO-8859-1
output-charset | string | Specifies the character set to use to compose the MIME header. If not given, the same value as input-charset will be used. | the same value as input-charset | UTF-8
line-length | integer | Specifies the maximum length of the header lines. The resulting header is "folded" to a set of multiple lines in case the resulting header field would be longer than the value of this parameter, according to RFC2822 - Internet Message Format. If not given, the length will be limited to 76 characters. | 76 | 996
line-break-chars | string | Specifies the sequence of characters to append to each line as an end-of-line sign when "folding" is performed on a long header field. If not given, this defaults to "\r\n" (CR LF). Note that this parameter is always treated as an ASCII string regardless of the value of input-charset. | \r\n | \n

Beispiel 1. iconv_mime_encode() example:

<?php
$preferences = array(
    "input-charset" => "ISO-8859-1",
    "output-charset" => "UTF-8",
    "line-length" => 76,
    "line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung_Pr=C3=BCfung?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);

$preferences["scheme"] = "B";
// This yields "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);
?>

See also imap_binary(),
mb_encode_mimeheader()
and imap_8bit().

Zurück | Zum Anfang | Nach vorne
iconv_mime_decode | Nach oben | iconv_set_encoding


iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_set_encoding -- Einstellungen für die Zeichensatzkonvertierung setzen

Beschreibung

array iconv_set_encoding ( string type, string charset)

Die Funktion ändert den Wert von type in charset und gibt TRUE bei Erfolg oder FALSE bei einem Fehler in der Ausführung zurück.

Beispiel 1. iconv_set_encoding() Beispiel:

iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");

Siehe auch: iconv_get_encoding() und ob_iconv_handler().

Zurück | Zum Anfang | Nach vorne
iconv_mime_encode | Nach oben | iconv_strlen


iconv_strlen

(PHP 5)

iconv_strlen -- Returns the character count of string

Description

int iconv_strlen ( string str [, string charset])

Returns the character count of str.

In contrast to strlen(), iconv_strlen() counts the occurrences of characters in the given byte sequence str on the basis of the specified character set, the result of which is not necessarily identical to the length of the string in byte.

If charset parameter is omitted, str is assumed to be encoded in iconv.internal_charset.

See also strlen() and mb_strlen().

Zurück | Zum Anfang | Nach vorne
iconv_set_encoding | Nach oben | iconv_strpos


iconv_strpos

(PHP 5)

iconv_strpos -- Finds position of first occurrence of a needle within a haystack.

Description

int iconv_strpos ( string haystack, string needle, int offset [, string charset])

Returns the numeric position of the first occurrence of needle in haystack.

The optional offset parameter specifies the position from which the search should be performed.

If needle is not found, iconv_strpos() will return FALSE.

Warnung

Diese Funktion kann das Boolsche FALSE zurückliefern, kann aber auch einen nicht-Boolschen Wert zurückgeben, der von einem einfachen if-Statement als FALSE ausgewertet wird, wie zum Beispiel 0 oder "". Weitere Informationen entnehmen Sie bitte dem Abschnitt über Boolsche Typen. Benutzen Sie deshalb bitte den === Operator um den Rückgabewert dieser Funktion zu überprüfen.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

In contrast to strpos(), the return value of iconv_strpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found. The characters are counted on the basis of the specified character set charset.

If charset parameter is omitted, string are assumed to be encoded in iconv.internal_charset.

See also strpos(), iconv_strrpos() and mb_strpos().

Zurück | Zum Anfang | Nach vorne
iconv_strlen | Nach oben | iconv_strrpos


iconv_strrpos

(PHP 5)

iconv_strrpos -- Finds the last occurrence of a needle within the specified range of haystack.

Description

string iconv_strrpos ( string haystack, string needle [, string charset])

Returns the numeric position of the last occurrence of needle in haystack.

If needle is not found, iconv_strrpos() will return FALSE.

Warnung

Diese Funktion kann das Boolsche FALSE zurückliefern, kann aber auch einen nicht-Boolschen Wert zurückgeben, der von einem einfachen if-Statement als FALSE ausgewertet wird, wie zum Beispiel 0 oder "". Weitere Informationen entnehmen Sie bitte dem Abschnitt über Boolsche Typen. Benutzen Sie deshalb bitte den === Operator um den Rückgabewert dieser Funktion zu überprüfen.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

In contrast to strpos(), the return value of iconv_strrpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found. The characters are counted on the basis of the specified character set charset.

See also strrpos(), iconv_strpos() and mb_strrpos().

Zurück | Zum Anfang | Nach vorne
iconv_strpos | Nach oben | iconv_substr


iconv_substr

(PHP 5)

iconv_substr -- Cut out part of a string

Description

string iconv_substr ( string str, int offset [, int length [, string charset]])

Returns the portion of str specified by the start and length parameters.

If start is non-negative, iconv_substr() cuts the portion out of str beginning at start'th character, counting from zero.

If start is negative, iconv_substr() cuts out the portion beginning at the position, start characters away from the end of str.

If length is given and is positive, the return value will contain at most length characters of the portion that begins at start (depending on the length of string). If str is shorter than start characters long, FALSE will be returned.

If negative length is passed, iconv_substr() cuts the portion out of str from the start'th character up to the character that is length characters away from the end of the string. In case start is also negative, the start position is calculated beforehand according to the rule explained above.

Note that offset and length parameters are always deemed to represent offsets that are calculated on the basis of the character set determined by charset, whilst the counterpart substr() always takes these for byte offsets. If charset is not given, the character set is determined by the iconv.internal_charset ini setting.

See also substr(), mb_substr() and mb_strcut().

Zurück | Zum Anfang | Nach vorne
iconv_strrpos | Nach oben | iconv


iconv

(PHP 4 >= 4.0.5, PHP 5)

iconv -- Konvertiert Zeichenketten in einen anderen Zeichensatz

Beschreibung

string iconv ( string in_charset, string out_charset, string str)

Die Funktion konvertiert die in Zeichensatz in_charset kodierte Zeichenkette string in eine Zeichenkette mit Kodierung out_charset. Es wird die konvertierte Zeichenkette zurückgeliefert oder FALSE, wenn ein Fehler aufgetreten ist.

Beispiel 1. iconv() Beispiel:

echo iconv("ISO-8859-1","UTF-8","Dies ist ein Test.");

Zurück | Zum Anfang | Nach vorne
iconv_substr | Nach oben | ob_iconv_handler


ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5)

ob_iconv_handler -- Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)

Beschreibung

array ob_iconv_handler ( string contents, int status)

Die Fumktion konvertiert die in Zeichensatz internal_encoding kodierte Zeichenkette in output_encoding.

internal_encoding und output_encoding sollten über die Funktion iconv_set_encoding() oder über die Konfigurationsdatei definiert werden.

Beispiel 1. ob_iconv_handler() Beispiel:

ob_start("ob_iconv_handler"); // start output buffering

Siehe auch: iconv_get_encoding() und iconv_set_encoding().

Zurück | Zum Anfang | Nach vorne
iconv | Nach oben | Grafik-Funktionen


Grafik-Funktionen

PHP Handbuch
Zurück Nach vorne

XLI. Grafik-Funktionen

Sie können die Grafik-Funktionen von PHP nicht nur benutzen, um die Grösse von JPEG, GIF, PNG und SWF-Bild-Dateien zu ermitteln, sondern auch - sofern Sie die GD-Bibliothek (verfügbar unter http://www.boutell.com/gd/) eingebunden haben - Grafiken bzw. Bilder dynamisch (also zur Laufzeit ihres Skripts) erzeugen bzw. verändern.

Die mittels dieser Funktionen veränderbaren Grafik-Formate sind abhängig von der bei ihnen installierten GD-Version. Versionen vor gd-1.6 unterstützen das GIF- aber kein PNG-Format. Die Versionen danach unterstützen zwar das PNG- aber nicht mehr das GIF-Format.

Um JPEG-Grafiken lesen und schreiben zu können, benötigen Sie jpeg-6b (siehe unter ftp://ftp.uu.net/graphics/jpeg/). Anschließend müssen Sie gd neu compilieren mit --with-jpeg-dir=/path/to/jpeg-6b. Danach muss auch PHP mit der Option --with-jpeg-dir=/path/to/jpeg-6b neu compiliert werden.

Die Unterstützung von Type-1-Fonts können Sie mit der Installation von t1lib (siehe unterftp://sunsite.unc.edu/pub/Linux/libs/graphics/) einbinden. Beim Compilieren müssen Sie dann noch die Option --with-t1lib[=dir] angeben.

Inhaltsverzeichnis
exif_imagetype -- Bestimmt den Typ eines Bildes
exif_read_data -- Reads the EXIF headers from JPEG or TIFF. This way you can read meta data generated by digital cameras.
exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image
gd_info -- Retrieve information about the currently installed GD library
getimagesize -- Ermittelt die Ausmaße einer GIF-, JPEG-, PNG- oder SWF-Grafik-Datei
image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
image2wbmp -- Output image to browser or file
imagealphablending -- Set the blending mode for an image
imageantialias -- Should antialias functions be used or not
imagearc -- Zeichnen einer Teil-Ellipse
imagechar -- Stellt ein Zeichen mit horizontaler Ausrichtung dar
imagecharup -- Zeichnet einen vertikal ausgerichteten Charakter
imagecolorallocate -- Bestimmt die Farbe einer Grafik
imagecolorallocatealpha -- Allocate a color for an image
imagecolorat -- Ermittelt den Farbwert eines Bildpunktes
imagecolorclosest -- Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt
imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha
imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color
imagecolordeallocate -- Löscht eine Farbdefinition
imagecolorexact -- Ermittelt den Index-Wert der angegebenen Farbe
imagecolorexactalpha -- Get the index of the specified color + alpha
imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version
imagecolorresolve -- Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu
imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative
imagecolorset -- Setzt die Farbe für den angegebenen Paletten-Index
imagecolorsforindex -- Ermittelt die Farbwerte einer angegebenen Farb-Palette
imagecolorstotal -- Ermittelt die Anzahl der definierten Farben eines Bildes
imagecolortransparent -- Definiert eine Farbe als transparent
imagecopy -- Kopiert einen Bildausschnitt
imagecopymerge -- Copy and merge part of an image
imagecopymergegray -- Copy and merge part of an image with gray scale
imagecopyresampled -- Copy and resize part of an image with resampling
imagecopyresized -- Kopieren und Ändern der Grösse eines Bild-Teiles
imagecreate -- Erzeugt ein neues Bild
imagecreatefromgd2 -- Create a new image from GD2 file or URL
imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL
imagecreatefromgd -- Create a new image from GD file or URL
imagecreatefromgif -- Erzeugt ein neues Bild im GIF-Format, welches aus einer Datei oder von einer URL gelesen wird
imagecreatefromjpeg -- Erzeugt ein neues Bild im JPEG-Format, welches aus einer Datei oder von einer URL gelesen wird
imagecreatefrompng -- Erzeugt ein neues Bild im PNG-Format, welches aus einer Datei oder von einer URL gelesen wird
imagecreatefromstring -- Create a new image from the image stream in the string
imagecreatefromwbmp -- Create a new image from file or URL
imagecreatefromxbm -- Create a new image from file or URL
imagecreatefromxpm -- Create a new image from file or URL
imagecreatetruecolor -- Create a new true color image
imagedashedline -- Zeichnen einer gestrichelten Linie
imagedestroy -- Löscht ein Bild
imageellipse -- Draw an ellipse
imagefill -- Füllen mit Farbe ("flood fill")
imagefilledarc -- Draw a partial ellipse and fill it
imagefilledellipse -- Draw a filled ellipse
imagefilledpolygon -- Zeichnet ein gefülltes Vieleck (Polygon)
imagefilledrectangle -- Zeichnet ein gefülltes Rechteck
imagefilltoborder -- Flächen-Farbfüllung ("flood fill") mit einer angegebenen Farbe
imagefilter -- Applies Filter an image using a custom angle
imagefontheight -- Ermittelt die Font-Höhe
imagefontwidth -- Ermittelt die Font-Breite
imageftbbox -- Give the bounding box of a text using fonts via freetype2
imagefttext -- Write text to the image using fonts using FreeType 2
imagegammacorrect -- Anwendung einer Gamma-Korrektur auf ein GD-Bild
imagegd2 -- Output GD2 image
imagegd -- Output GD image to browser or file
imagegif -- Ausgabe eines Bildes an den Browser oder in eine Datei
imageinterlace -- Schaltet die Interlaced-Darstellung eines Bildes an oder aus
imageistruecolor -- Finds whether an image is a truecolor image.
imagejpeg -- Ausgabe des Bildes im Browser oder als Datei
imagelayereffect -- Set the alpha blending flag to use the bundled libgd layering effects
imageline -- Zeichnen einer Linie
imageloadfont -- Lädt einen neuen Font
imagepalettecopy -- Copy the palette from one image to another
imagepng -- Ausgabe eines Bildes an den Browser oder in eine Datei
imagepolygon -- Zeichnen eines Vielecks (Polygon)
imagepsbbox -- Ermittelt die Ausmaße des Rechtecks, das für die Ausgabe eines Textes unter Verwendung eines PostScript-Fonts (Typ 1) notwendig ist.
imagepscopyfont -- Erstellt eine Kopie eines bereits geladenen Fonts für weitere Veränderungen
imagepsencodefont -- Ändert die Vektor-Beschreibung eines Fonts
imagepsextendfont -- Vergrößert oder komprimiert einen Font
imagepsfreefont -- Gibt den durch einen Typ 1 PostScript-Font belegten Speicher wieder frei
imagepsloadfont -- Lädt einen Typ 1 PostScript-Font aus einer Datei
imagepsslantfont -- Setzt einen Font schräg
imagepstext -- Ausgabe eines Textes auf einem Bild unter Verwendung von Typ 1 PostScript-Fonts
imagerectangle -- Zeichnet ein Rechteck
imagerotate -- Rotate an image with a given angle
imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.
imagesetbrush -- Set the brush image for line drawing
imagesetpixel -- Setzt ein einzelnes Pixel
imagesetstyle -- Set the style for line drawing
imagesetthickness -- Set the thickness for line drawing
imagesettile -- Set the tile image for filling
imagestring -- Zeichnet einen horizontalen String
imagestringup -- Zeichnet einen vertikalen String
imagesx -- Ermittelt die Bild-Breite
imagesy -- Ermittelt die Bild-Höhe
imagetruecolortopalette -- Convert a true color image to a palette image
imagettfbbox -- Ermittelt die Rahmenmaße für die Ausgabe eines Textes im True-Type-Format
imagettftext -- Erzeugt TTF-Text im Bild
imagetypes -- Gibt die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück
imagewbmp -- Output image to browser or file
imagexbm -- Output XBM image to browser or file
iptcembed -- Embed binary IPTC data into a JPEG image
iptcparse -- Parse a binary IPTC http://www.iptc.org/ block into single tags.
jpeg2wbmp -- Convert JPEG image file to WBMP image file
png2wbmp -- Convert PNG image file to WBMP image file
read_exif_data -- Liest die EXIF Header-Infos einer JPEG-Grafik

Zurück | Zum Anfang | Nach vorne
ob_iconv_handler | Nach oben | exif_imagetype


exif_imagetype

(PHP 4 >= 4.3.0, PHP 5)

exif_imagetype -- Bestimmt den Typ eines Bildes

Description

int exif_imagetype ( string filename)

exif_imagetype()exif_imagetype liesst die ersten Bytes eines Bildes und überprüft die Signatur. Wenn eine korrekte Signatur gefunden wurde wird eine Konstante zurückgegeben, ansonsten ist der Rückgabewert FALSE. Der Rückgabewert ist der gleiche wie der Wert, den getimagesize() im zweiten Index zurückgibt aber diese Funktion ist viel schneller.

Folgende Konstanten sind definiert:
1 = IMAGETYPE_GIF,
2 = IMAGETYPE_JPEG,
3 = IMAGETYPE_PNG,
4 = IMAGETYPE_SWF,
5 = IMAGETYPE_PSD,
6 = IMAGETYPE_BMP,
7 = IMAGETYPE_TIFF_II (intel byte order),
8 = IMAGETYPE_TIFF_MM (motorola byte order),
9 = IMAGETYPE_JPC,
10 = IMAGETYPE_JP2,
11 = IMAGETYPE_JPX, und
12 = IMAGETYPE_SWC.

Diese Funktion kann entweder benutzt werden, um Aufrufe anderer exif Funktionen mit nicht unterstützten Formaten zu verhindern oder in Verbindung mit $_SERVER['HTTP_ACCEPT'] um zu überprüfen, ob ein anfragender Browser ein bestimmtes Format unterstützt.

Anmerkung: Diese Funktion ist nur unter PHP 4 nutzbar, wenn es mit dem Zusatz --enable-exif kompiliert wurde.

Anmerkung: Dieser Befehl funktioniert auch ohne GD-Bibliothek.

Siehe auch getimagesize().

Zurück | Zum Anfang | Nach vorne
Grafik-Funktionen | Nach oben | exif_read_data


exif_read_data

(PHP 4 >= 4.2.0, PHP 5)

exif_read_data -- Reads the EXIF headers from JPEG or TIFF. This way you can read meta data generated by digital cameras.

Description

array exif_read_data ( string filename [, string sections [, bool arrays [, bool thumbnail]]])

The exif_read_data() function reads the EXIF headers from a JPEG or TIFF image file. It returns an associative array where the indexes are the header names and the values are the values associated with those headers. If no data can be returned the result is FALSE.

filename is the name of the file to read. This cannot be a URL.

sections is a comma separated list of sections that need to be present in file to produce a result array. If none of the requested sections could be found the return value is FALSE.

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html, Width, Height, IsColor and some more if available.
ANY_TAG | Any information that has a Tag e.g. IFD0, EXIF, ...
IFD0 | All tagged data of IFD0. In normal imagefiles this contains image size and so forth.
THUMBNAIL | A file is supposed to contain a thumbnail if it has a second IFD. All tagged information about the embedded thumbnail is stored in this section.
COMMENT | Comment headers of JPEG images.
EXIF | The EXIF section is a sub section of IFD0. It contains more detailed information about an image. Most of these entries are digital camera related.

arrays specifies whether or not each section becomes an array. The sections COMPUTED, THUMBNAIL and COMMENT allways become arrays as they may contain values whose names are conflict with other sections.

thumbnail whether or not to read the thumbnail itself and not only its tagged data.

Anmerkung: Exif headers tend to be present in JPEG/TIFF images generated by digital cameras, but unfortunately each digital camera maker has a different idea of how to actually tag their images, so you can't always rely on a specific Exif header being present.

Windows ME/XP both can wipe the Exif headers when connecting to a camera. More information available at http://www.canon-asia.com/products/digital_cameras/winxp_problems.html.

Beispiel 1. exif_read_data() example

<?php

echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />";

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>

The first call fails because the image has no header information.
test1.jpg:
No header data found.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

Anmerkung: If the image contains any IFD0 data then COMPUTED contains the entry ByteOrderMotorola which is 0 for little-endian (intel) and 1 for big-endian (motorola) byte order. This was added in PHP 4.3.

When an Exif header contains a Copyright note this itself can contain two values. As the solution is inconsistent in the Exif 2.10 standard the COMPUTED section will return both entries Copyright.Photographer and Copyright.Editor while the IFD0 sections contains the byte array with the NULL character that splits both entries. Or just the first entry if the datatype was wrong (normal behaviour of Exif). The COMPUTED will contain also an entry Copyright Which is either the original copyright string or it is a comma separated list of photo and editor copyright.

Anmerkung: The tag UserComment has the same problem as the Copyright tag. It can store two values first the encoding used and second the value itself. If so the IFD section only contains the encoding or a byte array. The COMPUTED section will store both in the entries UserCommentEncoding and UserComment. The entry UserComment is available in both cases so it should be used in preference to the value in IFD0 section.

If the user comment uses Unicode or JIS encoding and the module mbstring is available this encoding will automatically changed according to the exif ini settings in the php.ini. This was added in PHP 4.3.

Anmerkung: Height and Width are computed the same way getimagesize() does so their values must not be part of any header returned. Also html is a height/width text string to be used inside normal HTML.

Anmerkung: Starting from PHP 4.3 the function can read all embedded IFD data including arrays (returned as such). Also the size of an embedded thumbnail is returned in THUMBNAIL subarray and the function exif_read_data() can return thumbnails in TIFF format. Last but not least there is no longer a maximum length for returned values (not until memory limit is reached).

Anmerkung: This function is only available in PHP 4 compiled using --enable-exif. Its functionality and behaviour has changed in PHP 4.2. Earlier versions are very unstable.

Since PHP 4.3 user comment can automatically change encoding if PHP 4 was compiled using --enable-mbstring.

This function does not require the GD image library.

See also exif_thumbnail() and getimagesize().

Zurück | Zum Anfang | Nach vorne
exif_imagetype | Nach oben | exif_thumbnail


exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5)

exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image

Description

string exif_thumbnail ( string filename [, int &width [, int &height [, int &imagetype]]])

exif_thumbnail() reads the embedded thumbnail of a TIFF or JPEG image. If the image contains no thumbnail FALSE will be returned.

The parameters width, height and imagetype are available since PHP 4.3.0 and return the size of the thumbnail as well as its type. It is possible that exif_thumbnail() cannot create an image but can determine its size. In this case, the return value is FALSE but width and height are set.

If you want to deliver thumbnails through this function, you should send the mimetype information using the header() function. The following example demonstrates this:

Beispiel 1. exif_thumbnail() example

<?php
if (array_key_exists('file', $_REQUEST)) {
    $image = exif_thumbnail($_REQUEST['file'], $width, $height, $type);
} else {
    $image = false;
}
if ($image!==false) {
    header("Content-type: " .image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // no thumbnail available, handle the error here
    echo "No thumbnail available";
}
?>

Starting from version PHP 4.3.0, the function exif_thumbnail() can return thumbnails in TIFF format.

Anmerkung: This function is only available in PHP 4 compiled using --enable-exif. Its functionality and behaviour has changed in PHP 4.2.0

Anmerkung: This function does not require the GD image library.

See also exif_read_data() and image_type_to_mime_type().

Zurück | Zum Anfang | Nach vorne
exif_read_data | Nach oben | gd_info


gd_info

(PHP 4 >= 4.3.0, PHP 5)

gd_info -- Retrieve information about the currently installed GD library

Description

array gd_info ( void )

Returns an associative array describing the version and capabilities of the installed GD library.

Tabelle 1. Elements of array returned by gd_info()

Attribute | Meaning
GD Version | string value describing the installed libgd version.
Freetype Support | boolean value. TRUE if Freetype Support is installed.
Freetype Linkage | string value describing the way in which Freetype was linked. Expected values are: 'with freetype', 'with TTF library', and 'with unknown library'. This element will only be defined if Freetype Support evaluated to TRUE.
T1Lib Support | boolean value. TRUE if T1Lib support is included.
GIF Read Support | boolean value. TRUE if support for reading GIF images is included.
GIF Create Support | boolean value. TRUE if support for creating GIF images is included.
JPG Support | boolean value. TRUE if JPG support is included.
PNG Support | boolean value. TRUE if PNG support is included.
WBMP Support | boolean value. TRUE if WBMP support is included.
XBM Support | boolean value. TRUE if XBM support is included.

Beispiel 1. Using gd_info()

<?php
var_dump(gd_info());
?>

The typical output is :

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}

See also imagepng(),
imagejpeg(),
imagegif(),
imagewbmp(), and
imagetypes().

Zurück | Zum Anfang | Nach vorne
exif_thumbnail | Nach oben | getimagesize


getimagesize

(PHP 3, PHP 4 , PHP 5)

getimagesize -- Ermittelt die Ausmaße einer GIF-, JPEG-, PNG- oder SWF-Grafik-Datei

Beschreibung:

array getimagesize ( string filename [, array imageinfo])

Mit GetImageSize() ermitteln Sie die Daten jeder GIF-, JPG-, PNG oder SWF-Datei. Es werden die Ausmaße in Abhängigkeit vom Grafik-Typ sowie die Höhe und Breite als ein String zurückgegeben. Dieser kann innerhalb eines regulären HTML <IMG>-Tags verwendet werden.

Es wird ein Array aus 4 Elementen zurück gegeben. Im Array-Index 0 steht die Breite. Index 1 enthält die Höhe, 2 ein Flag je nach Grafik-Typ (1 = GIF, 2 = JPG, 3 = PNG, SWF = 4) und Index 3 die richtige Zeichenkette im Format "height=xxx width=xxx" zur Verwendung im IMG-Tag von HTML.

Beispiel 1. Grafik-Ausmaße ermitteln per GetImageSize:

Mit dem optionalen imageinfo-Parameter können Sie weitere Informationen der Grafik-Datei auslesen. Z.Zt. unterstützt dies die verschiedenen JPG APP-Markierungen per assoziativem Array. Einige Programme nutzen diese Markierungen, um Text in diese Grafiken einzubinden. Gebräuchlich ist die Einbettung von IPTC http://www.iptc.org/ Informationen in die APP13-Marke. Sie können iptcparse() benutzen, um die binäre APP13-Marke in ein lesbares Format zu übertragen.

Beispiel 2. GetImageSize mit IPTC-Informationen

<?php
    $size = GetImageSize ("testimg.jpg",&$info);
    if (isset ($info["APP13"])) {
        $iptc = iptcparse ($info["APP13"]);
        var_dump ($iptc);
    }
?>

Anmerkung: Dieser Befehl funktioniert auch ohne GD-Bibliothek.

Zurück | Zum Anfang | Nach vorne
gd_info | Nach oben | image_type_to_mime_type


image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5)

image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

Description

string image_type_to_mime_type ( int imagetype)

The image_type_to_mime_type() function will determine the Mime-Type for an IMAGETYPE constant.

Beispiel 1. image_type_to_mime_type (file)

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

The returned values are as follows

Tabelle 1. Returned values Constants

imagetype | Returned value
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (intel byte order) | image/tiff
IMAGETYPE_TIFF_MM (motorola byte order) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm

Anmerkung: This function does not require the GD image library.

See also getimagesize(),
exif_imagetype(),
exif_read_data() and
exif_thumbnail().

Zurück | Zum Anfang | Nach vorne
getimagesize | Nach oben | image2wbmp


image2wbmp

(PHP 4 >= 4.0.5, PHP 5)

image2wbmp -- Output image to browser or file

Description

int image2wbmp ( resource image [, string filename [, int threshold]])

image2wbmp() creates the WBMP file in filename from the image image. The image argument is the return from imagecreate().

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Beispiel 1. image2wbmp() example

<?php

$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // output the stream directly

?>

Anmerkung: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also imagewbmp().

Zurück | Zum Anfang | Nach vorne
image_type_to_mime_type | Nach oben | imagealphablending


imagealphablending

(PHP 4 >= 4.0.6, PHP 5)

imagealphablending -- Set the blending mode for an image

Description

bool imagealphablending ( resource image, bool blendmode)

imagealphablending() allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing function, such as imagesetpixel() determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images. If blendmode is TRUE, then blending mode is enabled, otherwise disabled. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1

Zurück | Zum Anfang | Nach vorne
image2wbmp | Nach oben | imageantialias


imageantialias

(PHP 4 >= 4.3.2, PHP 5)

imageantialias -- Should antialias functions be used or not

Description

bool imageantialias ( resource im, bool on)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This function is only available if PHP is compiled with the bundled version of the GD library.

See also imagecreatetruecolor().

Zurück | Zum Anfang | Nach vorne
imagealphablending | Nach oben | imagearc


imagearc

(PHP 3, PHP 4 , PHP 5)

imagearc -- Zeichnen einer Teil-Ellipse

Beschreibung:

int imagearc ( int im, int cx, int cy, int w, int h, int s, int e, int col)

ImageArc() zeichnet den Teil einer Ellipse mit Mittelpunkt bei cx und cy (oben links ist 0, 0) in dem durch den im-Handle definiertem Bild. W und h benennen die Breite und Höhe der Ellipse, s und e den Start- bzw. Endwinkel des Bogens in Grad. Mit col bestimmen Sie die Farbe der Ellipse.

Zurück | Zum Anfang | Nach vorne
imageantialias | Nach oben | imagechar


imagechar

(PHP 3, PHP 4 , PHP 5)

imagechar -- Stellt ein Zeichen mit horizontaler Ausrichtung dar

Beschreibung:

int imagechar ( int im, int font, int x, int y, string c, int col)

ImageChar() zeichnet das erste Zeichen (Charakter) des Strings c in das Bild, auf das per id gezeigt wird. Die linke obere Ecke des Zeichens wird durch x / y bestimmt. Dabei wird von den Koordinaten 0 / 0 als Zeichnungsanfang links-oben ausgegangen. Die Farbe des Zeichens wird mit col bestimmt. Ist font als 1, 2, 3, 4 oder 5 definiert, wird ein eingebauter Font genutzt (je grösser die Nummer, desto grösser der Font).

Beachten Sie auch imageloadfont().

Zurück | Zum Anfang | Nach vorne
imagearc | Nach oben | imagecharup


imagecharup

(PHP 3, PHP 4 , PHP 5)

imagecharup -- Zeichnet einen vertikal ausgerichteten Charakter

Beschreibung:

int imagecharup ( int im, int font, int x, int y, string c, int col)

ImageCharUp() zeichnet das erste Zeichen (Charakter) des Strings c in das Bild, auf das per id gezeigt wird. Die Koordinaten des Zeichens werden durch x / y bestimmt. Dabei wird von den Koordinaten 0 / 0 als Zeichnungsanfang links-oben ausgegangen. Die Farbe des Zeichens wird mit col bestimmt. Ist font als 1, 2, 3, 4 oder 5 definiert, wird ein eingebauter Font genutzt (je grösser die Nummer, desto grösser der Font).

Beachten Sie auch imageloadfont().

Zurück | Zum Anfang | Nach vorne
imagechar | Nach oben | imagecolorallocate


imagecolorallocate

(PHP 3, PHP 4 , PHP 5)

imagecolorallocate -- Bestimmt die Farbe einer Grafik

Beschreibung:

int imagecolorallocate ( int im, int red, int green, int blue)

ImageColorAllocate() gibt eine Farb-ID, die durch die angegebenen RGB-Werte bestimmt wird, zurück. Der Parameter im wird ihnen von der imagecreate()-Funktion zurück gegeben. ImageColorAllocate() muss für jede Farbe aufgerufen werden, die innerhalb der Grafik im verwendet werden soll.

$weiss   = ImageColorAllocate ($im, 255, 255, 255);
$schwarz = ImageColorAllocate ($im, 0, 0, 0);

Zurück | Zum Anfang | Nach vorne
imagecharup | Nach oben | imagecolorallocatealpha


imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5)

imagecolorallocatealpha -- Allocate a color for an image

Description

int imagecolorallocatealpha ( resource image, int red, int green, int blue, int alpha)

imagecolorallocatealpha() behaves identically to imagecolorallocate() with the addition of the transparency parameter alpha which may have a value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

Returns FALSE if the allocation failed.

Beispiel 1. Example of using imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// don't forget to output a correct header!
header('Content-type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>

See also imagecolorallocate() and imagecolordeallocate().

Zurück | Zum Anfang | Nach vorne
imagecolorallocate | Nach oben | imagecolorat


imagecolorat

(PHP 3, PHP 4 , PHP 5)

imagecolorat -- Ermittelt den Farbwert eines Bildpunktes

Beschreibung:

int imagecolorat ( int im, int x, int y)

Ermittelt den Farb-Wert eines Pixels an den Koordinaten x / y der mit im bestimmten Grafik.

Beachten Sie auch imagecolorset() und imagecolorsforindex().

Zurück | Zum Anfang | Nach vorne
imagecolorallocatealpha | Nach oben | imagecolorclosest


imagecolorclosest

(PHP 3, PHP 4 , PHP 5)

imagecolorclosest -- Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt

Beschreibung:

int imagecolorclosest ( int im, int red, int green, int blue)

Gibt den Index der Farbwert-Palette des Bildes im zurück, der den angegebenen RGB-Werten am nächsten kommt.

Die "Entfernung" zwischen der angeforderten Farbe und jedem Farb-Paletten-Wert wird berechnet, als ob die angegebenen RGB-Werte Punkte in einem dreidimensionalen Raum darstellen.

Siehe auch imagecolorexact().

Zurück | Zum Anfang | Nach vorne
imagecolorat | Nach oben | imagecolorclosestalpha


imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha

Description

int imagecolorclosestalpha ( resource image, int red, int green, int blue, int alpha)

Returns the index of the color in the palette of the image which is "closest" to the specified RGB value and alpha level.

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1

See also imagecolorexactalpha().

Zurück | Zum Anfang | Nach vorne
imagecolorclosest | Nach oben | imagecolorclosesthwb


imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5)

imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color

Description

int imagecolorclosesthwb ( resource image, int red, int green, int blue)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
imagecolorclosestalpha | Nach oben | imagecolordeallocate


imagecolordeallocate

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

imagecolordeallocate -- Löscht eine Farbdefinition

Beschreibung:

int imagecolordeallocate ( int im, int index)

Die Funktion ImageColorDeAllocate() löscht eine vorher über ImageColorAllocate() ermittelte Farbe.

$weiss = ImageColorAllocate($im, 255, 255, 255);
ImageColorDeAllocate($im, $weiss);

Zurück | Zum Anfang | Nach vorne
imagecolorclosesthwb | Nach oben | imagecolorexact


imagecolorexact

(PHP 3, PHP 4 , PHP 5)

imagecolorexact -- Ermittelt den Index-Wert der angegebenen Farbe

Beschreibung:

int imagecolorexact ( int im, int red, int green, int blue)

Gibt den Index der angegebenen Farbe in der Farb-Palette des Bildes im zurück.

Existiert die Farbe in der Bild-Farb-Palette nicht, wird -1 zurück gegeben.

Siehe auch imagecolorclosest().

Zurück | Zum Anfang | Nach vorne
imagecolordeallocate | Nach oben | imagecolorexactalpha


imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorexactalpha -- Get the index of the specified color + alpha

Description

int imagecolorexactalpha ( resource image, int red, int green, int blue, int alpha)

Returns the index of the specified color+alpha in the palette of the image.

If the color does not exist in the image's palette, -1 is returned.

See also imagecolorclosestalpha().

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Zurück | Zum Anfang | Nach vorne
imagecolorexact | Nach oben | imagecolormatch


imagecolormatch

(PHP 4 >= 4.3.0, PHP 5)

imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version

Description

bool imagecolormatch ( resource image1, resource image2)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

image1 must be Truecolor, image2 must be Palette, and both image1 and image2 must be the same size.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: This function is only available if PHP is compiled with the bundled version of the GD library.

See also imagecreatetruecolor().

Zurück | Zum Anfang | Nach vorne
imagecolorexactalpha | Nach oben | imagecolorresolve


imagecolorresolve

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imagecolorresolve -- Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu

Beschreibung:

int imagecolorresolve ( int im, int red, int green, int blue)

Diese Funktion ermittelt garantiert einen Farb-Index zu der angegebenen Farbe, nämlich entweder den exakten oder den nächst möglichen Wert.

Siehe auch imagecolorclosest() und imagecolorexact().

Zurück | Zum Anfang | Nach vorne
imagecolormatch | Nach oben | imagecolorresolvealpha


imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative

Description

int imagecolorresolvealpha ( resource image, int red, int green, int blue, int alpha)

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

See also imagecolorclosestalpha().

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1

Zurück | Zum Anfang | Nach vorne
imagecolorresolve | Nach oben | imagecolorset


imagecolorset

(PHP 3, PHP 4 , PHP 5)

imagecolorset -- Setzt die Farbe für den angegebenen Paletten-Index

Beschreibung:

bool imagecolorset ( int im, int index, int red, int green, int blue)

Hierdurch setzen Sie den Farbwert der Palette auf die angegebene Farbe. Dies ist nützlich bei Aktionen wie "Fülle Farbe X mit Farbe Y" (Flood-Fill-Effekt) ohne den sonst notwendigen Aufwand für solche Aktionen betreiben zu müssen.

Siehe auch imagecolorat().

Zurück | Zum Anfang | Nach vorne
imagecolorresolvealpha | Nach oben | imagecolorsforindex


imagecolorsforindex

(PHP 3, PHP 4 , PHP 5)

imagecolorsforindex -- Ermittelt die Farbwerte einer angegebenen Farb-Palette

Beschreibung:

array imagecolorsforindex ( int im, int index)

Gibt ein assoziatives Array mit Rot-, Grün- und Blau-Werten zurück, die die Werte des Farb-Paletten-Index von im darstellen.

Siehe auch imagecolorat() und imagecolorexact().

Zurück | Zum Anfang | Nach vorne
imagecolorset | Nach oben | imagecolorstotal


imagecolorstotal

(PHP 3, PHP 4 , PHP 5)

imagecolorstotal -- Ermittelt die Anzahl der definierten Farben eines Bildes

Beschreibung:

int imagecolorstotal ( int im)

Ergibt die Anzahl der Farben der Palette des angegebenen Bildes im.

Siehe auch imagecolorat() und imagecolorsforindex().

Zurück | Zum Anfang | Nach vorne
imagecolorsforindex | Nach oben | imagecolortransparent


imagecolortransparent

(PHP 3, PHP 4 , PHP 5)

imagecolortransparent -- Definiert eine Farbe als transparent

Beschreibung:

int imagecolortransparent ( int im [, int col])

ImageColorTransparent() setzt die transparente Farbe des Bildes im auf die Farbe col. Im ist der Bild-Pointer, der von ImageCreate() zurück gegeben wird und col ist ein Zeiger auf die Farbe, die von ImageColorAllocate() ermittelt wird.

Es wird ein Zeiger auf die neue - jetzt transparente - Farbe (oder die aktuelle, falls keine Farbe angegeben wurde) zurück gegeben.

Zurück | Zum Anfang | Nach vorne
imagecolorstotal | Nach oben | imagecopy


imagecopy

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

imagecopy -- Kopiert einen Bildausschnitt

Beschreibung:

int ImageCopy ( int dst_im, int src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)

Kopiert einen Teil des Quellbildes src_im nach dst_im. Der zu kopierende Teil wird angegeben über die x/y-Koordinaten src_x und src_y. Die Breite wird in src_w und die Höhe in src_h angegeben. Der Ausschnitt wird an die x/y-Koordinaten dst_x und dst_y kopiert.

Zurück | Zum Anfang | Nach vorne
imagecolortransparent | Nach oben | imagecopymerge


imagecopymerge

(PHP 4 >= 4.0.1, PHP 5)

imagecopymerge -- Copy and merge part of an image

Description

int imagecopymerge ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy().

Anmerkung: This function was added in PHP 4.0.6

Zurück | Zum Anfang | Nach vorne
imagecopy | Nach oben | imagecopymergegray


imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5)

imagecopymergegray -- Copy and merge part of an image with gray scale

Description

int imagecopymergegray ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)

imagecopymergegray() copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy().

This function is identical to imagecopymerge() except that when merging it preserves the hue of the source by converting the destination pixels to gray scale before the copy operation.

Anmerkung: This function was added in PHP 4.0.6

Zurück | Zum Anfang | Nach vorne
imagecopymerge | Nach oben | imagecopyresampled


imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5)

imagecopyresampled -- Copy and resize part of an image with resampling

Description

bool imagecopyresampled ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

imagecopyresampled() copies a rectangular portion of one image to another image, smoothly interpolating pixel values so that, in particular, reducing the size of an image still retains a great deal of clarity. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. dst_im is the destination image, src_im is the source image identifier. If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed. The coordinates refer to the upper left corner. This function can be used to copy regions within the same image (if dst_im is the same as src_im) but if the regions overlap the results will be unpredictable.

Anmerkung: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().

Anmerkung: imagecopyresampled() requires GD 2.0.l or greater.

See also imagecopyresized().

Zurück | Zum Anfang | Nach vorne
imagecopymergegray | Nach oben | imagecopyresized


imagecopyresized

(PHP 3, PHP 4 , PHP 5)

imagecopyresized -- Kopieren und Ändern der Grösse eines Bild-Teiles

Beschreibung:

int imagecopyresized ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

ImageCopyResized() kopiert einen rechteckigen Ausschnitt eines Bildes in ein anderes. Dst_im gibt das Zielbild, src_im die Bildquelle an. Unterscheiden sich die Angaben der Quelle und des Ziels bezogen auf die Koordinaten, Höhe oder Breite, wird das Teilbild entsprechend gedehnt oder geschrumpft. Die Koordinaten beziehen sich auf die linke obere Ecke. Sie können hiermit auch Teilbilder innerhalb ein- und desselben Bildes kopieren, sofern dst_im und src_im gleich sind. Falls sich dabei aber die kopierten Teile überlappen, führt das zu unvorhersehbaren Ergebnissen.

Zurück | Zum Anfang | Nach vorne
imagecopyresampled | Nach oben | imagecreate


imagecreate

(PHP 3, PHP 4 , PHP 5)

imagecreate -- Erzeugt ein neues Bild

Beschreibung:

resource imagecreate ( int x_size, int y_size)

ImageCreate() gibt den Zeiger auf ein neues Bild zurück. Dieser Zeiger stellt ein leeres Bild mit der Größe x_size und y_size dar.

Es wird empfohlen, die Funktion imagecreatetruecolor() zu verwenden.

Beispiel 1. Erzeugung eines neuen GD-Bild-Streams und Ausgabe des Bildes:

<?php
header ("Content-type: image/png");
$im = @ImageCreate (50, 100)
      or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
$background_color = ImageColorAllocate ($im, 255, 255, 255);
$text_color = ImageColorAllocate ($im, 233, 14, 91);
ImageString ($im, 1, 5, 5, "Ein Test-String", $text_color);
ImagePNG ($im);
?>

Siehe auch imagedestroy() und imagecreatetruecolor().

Zurück | Zum Anfang | Nach vorne
imagecopyresized | Nach oben | imagecreatefromgd2


imagecreatefromgd2

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2 -- Create a new image from GD2 file or URL

Description

resource imagecreatefromgd2 ( string filename)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Zurück | Zum Anfang | Nach vorne
imagecreate | Nach oben | imagecreatefromgd2part


imagecreatefromgd2part

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL

Description

resource imagecreatefromgd2part ( string filename, int srcX, int srcY, int width, int height)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Zurück | Zum Anfang | Nach vorne
imagecreatefromgd2 | Nach oben | imagecreatefromgd


imagecreatefromgd

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd -- Create a new image from GD file or URL

Description

resource imagecreatefromgd ( string filename)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Zurück | Zum Anfang | Nach vorne
imagecreatefromgd2part | Nach oben | imagecreatefromgif


imagecreatefromgif

(PHP 3, PHP 4 , PHP 5)

imagecreatefromgif -- Erzeugt ein neues Bild im GIF-Format, welches aus einer Datei oder von einer URL gelesen wird

Beschreibung:

int imagecreatefromgif ( string filename)

ImageCreateFromGIF() gibt den Bezeichner auf ein Bild zurück, der das aus der angegebenen Datei eingelesene Bild darstellt.

Im Fehlerfall gibt ImageCreateFromGIF() eine leere Zeichenkette zurück. Zudem wird eine Fehlermeldung erzeugt, die im Browser als Verbindungsabbruch dargestellt wird. Zum besseren Debuggen wird das folgende Beispiel einen GIF-Fehler erzeugen:

Beispiel 1. Beispiel, um die Handhabung eines Fehlers bei der Bilderzeugung zu sehen (Dank an vic@zymsys.com):

function LoadGif ($imgname) {
    $im = @ImageCreateFromGIF ($imgname); /* Versuch, Datei zu öffnen */
    if (!$im) {                           /* Prüfen, ob fehlgeschlagen */
        $im = ImageCreate (150, 30);      /* Erzeugen eines leeren Bildes */
        $bgc = ImageColorAllocate ($im, 255, 255, 255);
        $tc  = ImageColorAllocate ($im, 0, 0, 0);
        ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc);
        /* Ausgabe einer Fehlermeldung */
        ImageString($im, 1, 5, 5, "Fehler beim Öffnen von: $imgname", $tc);
    }
    return $im;
}

Anmerkung: ACHTUNG: Ab Version 1.6 wurde die komplette GIF-Unterstützung aus der GD-Bibliothek entfernt. Diese Funktion ist also nur verfügbar, wenn Sie eine Version vor 1.6 verwenden.

Zurück | Zum Anfang | Nach vorne
imagecreatefromgd | Nach oben | imagecreatefromjpeg


imagecreatefromjpeg

(PHP 3>= 3.0.16, PHP 4 , PHP 5)

imagecreatefromjpeg -- Erzeugt ein neues Bild im JPEG-Format, welches aus einer Datei oder von einer URL gelesen wird

Beschreibung:

int imagecreatefromjpeg ( string filename)

ImageCreateFromJPEG() gibt den Bezeichner auf ein Bild zurück, der das aus der angegebenen Datei eingelesene Bild darstellt.

Im Fehlerfall gibt ImageCreateFromJPEG() eine leere Zeichenkette zurück. Zudem wird eine Fehlermeldung erzeugt, die im Browser als Verbindungsabbruch dargestellt wird. Zum besseren Debuggen wird das folgende Beispiel einen JPEG-Fehler erzeugen:

Beispiel 1. Beispiel, um die Handhabung eines Fehlers bei der Bilderzeugung zu sehen (Dank an vic@zymsys.com):

function LoadJpeg ($imgname) {
    $im = @ImageCreateFromJPEG ($imgname); /* Versuch, Datei zu öffnen */
    if (!$im) {                            /* Prüfen, ob fehlgeschlagen */
        $im = ImageCreate (150, 30);       /* Erzeugen eines leeren Bildes */
        $bgc = ImageColorAllocate ($im, 255, 255, 255);
        $tc  = ImageColorAllocate ($im, 0, 0, 0);
        ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc);
        /* Ausgabe einer Fehlermeldung */
        ImageString($im, 1, 5, 5, "Fehler beim Öffnen von: $imgname", $tc);
    }
    return $im;
}

Zurück | Zum Anfang | Nach vorne
imagecreatefromgif | Nach oben | imagecreatefrompng


imagecreatefrompng

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imagecreatefrompng -- Erzeugt ein neues Bild im PNG-Format, welches aus einer Datei oder von einer URL gelesen wird

Beschreibung:

int imagecreatefrompng ( string filename)

ImageCreateFromPNG() gibt den Bezeichner auf ein Bild zurück, der das aus der angegebenen Datei eingelesene Bild darstellt.

Im Fehlerfall gibt ImageCreateFromPNG() eine leere Zeichenkette zurück. Zudem wird eine Fehlermeldung erzeugt, die im Browser als Verbindungsabbruch dargestellt wird. Zum besseren Debuggen wird das folgende Beispiel einen JPEG-Fehler erzeugen:

Beispiel 1. Beispiel, um die Handhabung eines Fehlers bei der Bilderzeugung zu sehen (Dank an vic@zymsys.com):

function Loadpng ($imgname) {
    $im = @ImageCreateFromPNG ($imgname); /* Versuch, Datei zu öffnen */
    if (!$im) {                           /* Prüfen, ob fehlgeschlagen */
        $im = ImageCreate (150, 30);      /* Erzeugen eines leeren Bildes */
        $bgc = ImageColorAllocate ($im, 255, 255, 255);
        $tc  = ImageColorAllocate ($im, 0, 0, 0);
        ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc);
        /* Ausgabe einer Fehlermeldung */
        ImageString($im, 1, 5, 5, "Fehler beim Öffnen von: $imgname", $tc);
    }
    return $im;
}

Zurück | Zum Anfang | Nach vorne
imagecreatefromjpeg | Nach oben | imagecreatefromstring


imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5)

imagecreatefromstring -- Create a new image from the image stream in the string

Description

resource imagecreatefromstring ( string image)

imagecreatefromstring() returns an image identifier representing the image obtained from the given string.

Zurück | Zum Anfang | Nach vorne
imagecreatefrompng | Nach oben | imagecreatefromwbmp


imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromwbmp -- Create a new image from file or URL

Description

resource imagecreatefromwbmp ( string filename)

imagecreatefromwbmp() returns an image identifier representing the image obtained from the given filename.

imagecreatefromwbmp() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error WBMP:

Beispiel 1. Example to handle an error during creation (courtesy vic at zymsys dot com)

<?php
function LoadWBMP($imgname)
{
    $im = @imagecreatefromwbmp($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate (20, 20); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 10, 10, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Anmerkung: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Zurück | Zum Anfang | Nach vorne
imagecreatefromstring | Nach oben | imagecreatefromxbm


imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxbm -- Create a new image from file or URL

Description

resource imagecreatefromxbm ( string filename)

imagecreatefromxbm() returns an image identifier representing the image obtained from the given filename.

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Zurück | Zum Anfang | Nach vorne
imagecreatefromwbmp | Nach oben | imagecreatefromxpm


imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxpm -- Create a new image from file or URL

Description

resource imagecreatefromxpm ( string filename)

imagecreatefromxpm() returns an image identifier representing the image obtained from the given filename.

Anmerkung: This function is only available if PHP is compiled with the bundled version of the GD library.

Tipp: Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle finden Sie unter Anhang J.

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Zurück | Zum Anfang | Nach vorne
imagecreatefromxbm | Nach oben | imagecreatetruecolor


imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5)

imagecreatetruecolor -- Create a new true color image

Description

resource imagecreatetruecolor ( int x_size, int y_size)

imagecreatetruecolor() returns an image identifier representing a black image of size x_size by y_size.

Beispiel 1. Creating a new GD image stream and outputting an image.

<?php
header ("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100)
      or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later.

Anmerkung: This function will not work with GIF file formats.

See also imagedestroy() and imagecreate().

Zurück | Zum Anfang | Nach vorne
imagecreatefromxpm | Nach oben | imagedashedline


imagedashedline

(PHP 3, PHP 4 , PHP 5)

imagedashedline -- Zeichnen einer gestrichelten Linie

Beschreibung:

int imagedashedline ( int im, int x1, int y1, int x2, int y2, int col)

ImageDashedLine() zeichnet eine gestrichelte Linie, beginnend am Punkt x1, y1 bis zum Punkt x2, y2 (oben links ist 0, 0) in das Bild image im mit der Farbe col.

Siehe auch imageline().

Zurück | Zum Anfang | Nach vorne
imagecreatetruecolor | Nach oben | imagedestroy


imagedestroy

(PHP 3, PHP 4 , PHP 5)

imagedestroy -- Löscht ein Bild

Beschreibung:

int imagedestroy ( int im)

ImageDestroy() gibt den durch das Bild im belegten Speicher wieder frei. Im ist der Bezeichner, der ihnen beim Aufruf der Funktion ImageCreate() zurück gegeben worden ist.

Zurück | Zum Anfang | Nach vorne
imagedashedline | Nach oben | imageellipse


imageellipse

(PHP 4 >= 4.0.6, PHP 5)

imageellipse -- Draw an ellipse

Description

int imageellipse ( resource image, int cx, int cy, int w, int h, int color)

imageellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The color of the ellipse is specified by color.

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.2 or later which can be obtained at http://www.boutell.com/gd/

Beispiel 1. imageellipse() example

<?php

// create a blank image
$image = imagecreate(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the ellipse
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imagefilledellipse() and imagearc().

Zurück | Zum Anfang | Nach vorne
imagedestroy | Nach oben | imagefill


imagefill

(PHP 3, PHP 4 , PHP 5)

imagefill -- Füllen mit Farbe ("flood fill")

Beschreibung:

int imagefill ( int im, int x, int y, int col)

ImageFill() bewirkt das Füllen eines Bildes beginnend bei der Koordinate x, y (oben links ist 0, 0) mit der Farbe col im Bild im.

Zurück | Zum Anfang | Nach vorne
imageellipse | Nach oben | imagefilledarc


imagefilledarc

(PHP 4 >= 4.0.6, PHP 5)

imagefilledarc -- Draw a partial ellipse and fill it

Description

bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style)

imagefilledarc() draws a partial ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. W and h specifies the ellipse's width and height respectively while the start and end points are specified in degrees indicated by the s and e arguments. style is a bitwise OR of the following possibilities:

  1. IMG_ARC_PIE

  2. IMG_ARC_CHORD

  3. IMG_ARC_NOFILL

  4. IMG_ARC_EDGED

IMG_ARC_PIE and IMG_ARC_CHORD are mutually exclusive; IMG_ARC_CHORD just connects the starting and ending angles with a straight line, while IMG_ARC_PIE produces a rounded edge. IMG_ARC_NOFILL indicates that the arc or chord should be outlined, not filled. IMG_ARC_EDGED, used together with IMG_ARC_NOFILL, indicates that the beginning and ending angles should be connected to the center - this is a good way to outline (rather than fill) a 'pie slice'.

Beispiel 1. Creating a 3D looking pie

<?php

// this example is provided by poxy at klam dot is

// create image
$image = imagecreate(100, 100);

// allocate some solors
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// make the 3D effect
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1

Zurück | Zum Anfang | Nach vorne
imagefill | Nach oben | imagefilledellipse


imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5)

imagefilledellipse -- Draw a filled ellipse

Description

bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color)

imagefilledellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The ellipse is filled using color. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Beispiel 1. imagefilledellipse() example

<?php

// create a blank image
$image = imagecreate(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the white ellipse
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imageellipse() and imagefilledarc().

Zurück | Zum Anfang | Nach vorne
imagefilledarc | Nach oben | imagefilledpolygon


imagefilledpolygon

(PHP 3, PHP 4 , PHP 5)

imagefilledpolygon -- Zeichnet ein gefülltes Vieleck (Polygon)

Beschreibung:

int imagefilledpolygon ( int im, array points, int num_points, int col)

ImageFilledPolygon() erzeugt ein Vieleck im Bild im, gefüllt mit der Farbe col. Points ist ein PHP-Array, das die Eckpunkte des Vielecks enthält. Points[0] ist die X-Koordinate (x0), points[1] die Y-Koordinate (y0) des ersten Eckunktes. Points[2] ist x1, points[3] = y1 usw. Num_points enthält die Anzahl der Punkte.

Zurück | Zum Anfang | Nach vorne
imagefilledellipse | Nach oben | imagefilledrectangle


imagefilledrectangle

(PHP 3, PHP 4 , PHP 5)

imagefilledrectangle -- Zeichnet ein gefülltes Rechteck

Beschreibung:

int imagefilledrectangle ( int im, int x1, int y1, int x2, int y2, int col)

ImageFilledRectangle() erzeugt ein mit der Farbe col gefülltes Rechteck innerhalb des Bildes im. Die obere linke Eck-Koordinate wird mittels x1 und y1, die untere rechte Eck-Koordinate mittels x2 und y2 definiert. 0, 0 ist dabei die linke obere Ecke des Bildes im.

Zurück | Zum Anfang | Nach vorne
imagefilledpolygon | Nach oben | imagefilltoborder


imagefilltoborder

(PHP 3, PHP 4 , PHP 5)

imagefilltoborder -- Flächen-Farbfüllung ("flood fill") mit einer angegebenen Farbe

Beschreibung:

int imagefilltoborder ( int im, int x, int y, int border, int col)

ImageFillToBorder() bewirkt eine Farb-Füllung in einem Bereich, dessen Grenze durch die Farbe in border definiert wird. Der Startpunkt wird durch x und y angegeben (oben links ist 0, 0). Der Bereich wird gefüllt mit der Farbe col.

Zurück | Zum Anfang | Nach vorne
imagefilledrectangle | Nach oben | imagefilter


imagefilter

(PHP 5)

imagefilter -- Applies Filter an image using a custom angle

Description

bool imagefilter ( resource src_im, int filtertype [, int args])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This function is only available if PHP is compiled with the bundled version of the GD library.

Zurück | Zum Anfang | Nach vorne
imagefilltoborder | Nach oben | imagefontheight


imagefontheight

(PHP 3, PHP 4 , PHP 5)

imagefontheight -- Ermittelt die Font-Höhe

Beschreibung:

int imagefontheight ( int font)

Ermittelt die Höhe eines Zeichens (in Pixel) im angegebenen Font.

Siehe auch imagefontwidth() und imageloadfont().

Zurück | Zum Anfang | Nach vorne
imagefilter | Nach oben | imagefontwidth


imagefontwidth

(PHP 3, PHP 4 , PHP 5)

imagefontwidth -- Ermittelt die Font-Breite

Beschreibung:

int imagefontwidth ( int font)

Gibt die Zeichenbreite des angegebenen Fonts in Pixeln zurück.

Siehe auch imagefontheight() und imageloadfont().

Zurück | Zum Anfang | Nach vorne
imagefontheight | Nach oben | imageftbbox


imageftbbox

(PHP 4 >= 4.1.0, PHP 5)

imageftbbox -- Give the bounding box of a text using fonts via freetype2

Description

array imageftbbox ( int size, int angle, string font_file, string text [, array extrainfo])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
imagefontwidth | Nach oben | imagefttext


imagefttext

(PHP 4 >= 4.1.0, PHP 5)

imagefttext -- Write text to the image using fonts using FreeType 2

Description

array imagefttext ( resource image, int size, int angle, int x, int y, int col, string font_file, string text [, array extrainfo])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
imageftbbox | Nach oben | imagegammacorrect


imagegammacorrect

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imagegammacorrect -- Anwendung einer Gamma-Korrektur auf ein GD-Bild

Beschreibung:

int imagegammacorrect ( int im, double inputgamma, double outputgamma)

Die Funktion ImageGammaCorrect() bewirkt die Anwendung einer Gamma-Korrektur auf das mittels Bezeichner im angegebene GD-Bild. Anzugeben ist der Eingabe-Gammawert inputgamma und der Ausgabe-Gammawert outputgamma.

Zurück | Zum Anfang | Nach vorne
imagefttext | Nach oben | imagegd2


imagegd2

(PHP 4 >= 4.1.0, PHP 5)

imagegd2 -- Output GD2 image

Description

int imagegd2 ( resource image [, string filename [, int chunk_size [, int type]]])

imagegd2() outputs GD2 image to browser or file.

The optional type parameter is either IMG_GD2_RAW or IMG_GD2_COMPRESSED. Default is IMG_GD2_RAW.

Anmerkung: The optional chunk_size and type parameters became available in PHP 4.3.2.

Zurück | Zum Anfang | Nach vorne
imagegammacorrect | Nach oben | imagegd


imagegd

(PHP 4 >= 4.1.0, PHP 5)

imagegd -- Output GD image to browser or file

Description

int imagegd ( resource image [, string filename])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
imagegd2 | Nach oben | imagegif


imagegif

(PHP 3, PHP 4 , PHP 5)

imagegif -- Ausgabe eines Bildes an den Browser oder in eine Datei

Beschreibung:

int imagegif ( int im [, string filename])

ImageGIF() erzeugt eine Datei im Format GIF aus im. Falls Sie [filename] angegeben haben, wird die Ausgabe in diese Datei geschrieben, ansonsten wird die Ausgabe direkt an den Browser geleitet. Im ist das Ergebnis der imagecreate()-Funktion.

Das Format wird GIF87a sein, es sei denn, Sie haben das Bild per ImageColorTransparent() als transparent formatiert. In diesem Fall wird das Bild im GIF89a-Format ausgegeben.

Die Angabe des Dateinamens ist optional. Falls er fehlt, werden die Bilddaten direkt ausgegeben. Durch Verwendung der Funktion header() mit der "content-type"-Angabe "image/gif" können Sie PHP-Skripte erstellen, welche die GIF-Ausgabe direkt vornehmen.

Anmerkung: ACHTUNG: Ab Version 1.6 wurde die GIF-Unterstützung komplett aus der GD-Bibliothek entfernt. Diese Funktion ist also nur verfügbar, wenn Sie eine Version vor 1.6 verwenden.

Um trotzdem portable PHP-Anwendungen schreiben zu können, kann mit folgendem Code-Stück automatisch geprüft werden, welches Bildformat in der mitgebundenen GD-Bibliothek nutzbar ist. Ersetzen Sie hierfür die Codesequenz Header("Content-type: image/gif"); ImageGif($im); durch die flexiblere Folge:

<?php
  if (function_exists("imagegif")) {
    Header("Content-type: image/gif");
    ImageGif($im);
  }
  elseif (function_exists("imagejpeg")) {
    Header("Content-type: image/jpeg");
    ImageJpeg($im, "", 0.5);
  }
  elseif (function_exists("imagepng")) {
    Header("Content-type: image/png");
    ImagePng($im);
  }
  else
    die("Keine Grafik-Unterstützung vorhanden");
?>

Anmerkung: In PHP 4 ab Version 4.0.2 haben Sie alternativ zum Test per function_exists() auch die Möglichkeit, mit der imagetypes()-Funktion die unterstützten Bildformate abzutesten.

if (ImageTypes() & IMG_GIF) {
    Header("Content-type: image/gif");
    ImageGif($im);
}
elseif (ImageTypes() & IMG_JPG) {
... etc.

Siehe auch imagepng(), imagejpeg(), imagetypes().

Zurück | Zum Anfang | Nach vorne
imagegd | Nach oben | imageinterlace


imageinterlace

(PHP 3, PHP 4 , PHP 5)

imageinterlace -- Schaltet die Interlaced-Darstellung eines Bildes an oder aus

Beschreibung:

int imageinterlace ( int im [, int interlace])

Mit der Funktion imageInterlace() setzen Sie das Bit für die interlaced-Darstellung eines Bildes auf An (1) oder Aus (0).

Als Rückgabewert erhalten Sie die aktuelle Einstellung des Interlaced-Modus.

Zurück | Zum Anfang | Nach vorne
imagegif | Nach oben | imageistruecolor


imageistruecolor

(PHP 4 >= 4.3.2, PHP 5)

imageistruecolor -- Finds whether an image is a truecolor image.

Description

bool imageistruecolor ( resource image)

imageistruecolor() finds whether the image image is a truecolor image.

See also imagecreatetruecolor().

Zurück | Zum Anfang | Nach vorne
imageinterlace | Nach oben | imagejpeg


imagejpeg

(PHP 3>= 3.0.16, PHP 4 , PHP 5)

imagejpeg -- Ausgabe des Bildes im Browser oder als Datei

Beschreibung:

int imagejpeg ( int im [, string filename [, int quality]])

ImageJPEG() erzeugt die Datei filename im JPEG-Format aus dem Zeiger auf im. Das Argument im wurde ihnen vorher durch den Aufruf der Funktion ImageCreate() mitgeteilt.

Die Angabe des Dateinamens filename ist optional. Fehlt er, werden die erzeugten Bilddaten direkt ausgegeben. Um die Angabe des Dateinamen zu umgehen, dennoch aber den Parameter als solchen zu nutzen, können Sie einen Leerstring ('') benutzen. Durch Verwendung der Funktion header() mit der "content-type"-Angabe "image/jpeg" können Sie PHP-Skripte erstellen, welche die JPEG-Ausgabe direkt vornehmen.

Anmerkung: Die JPEG-Unterstützung können Sie nur verwenden, wenn Sie PHP mit einer GD-Bibliothek ab Version 1.8 kompiliert haben.

Siehe auch imagepng(), imagegif(), imagetypes().

Zurück | Zum Anfang | Nach vorne
imageistruecolor | Nach oben | imagelayereffect


imagelayereffect

(PHP 4 >= 4.3.0, PHP 5)

imagelayereffect -- Set the alpha blending flag to use the bundled libgd layering effects

Description

bool imagelayereffect ( resource image, int effect)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This function is only available if PHP is compiled with the bundled version of the GD library.

Zurück | Zum Anfang | Nach vorne
imagejpeg | Nach oben | imageline


imageline

(PHP 3, PHP 4 , PHP 5)

imageline -- Zeichnen einer Linie

Beschreibung:

int imageline ( int im, int x1, int y1, int x2, int y2, int col)

ImageLine() zeichnet eine Linie von der x1 / y1 Koordinate bis zur Kordinate x2 / y2 (die Koordinate 0 / 0 ist die obere linke Ecke von im). Die Linienfarbe wird durch col festgelegt.

Siehe auch imagecreate() und imagecolorallocate().

Zurück | Zum Anfang | Nach vorne
imagelayereffect | Nach oben | imageloadfont


imageloadfont

(PHP 3, PHP 4 , PHP 5)

imageloadfont -- Lädt einen neuen Font

Beschreibung:

int imageloadfont ( string file)

ImageLoadFont() lädt einen vom Benutzer definierten Bitmap-Font und gibt einen Zeiger auf diesen zurück. Dessen Wert ist immer grösser als 5, um Konflikte mit den eingebauten Fonts zu vermeiden.

Das Font-Datei-Format unterliegt binären Abhängigkeiten und ist von Rechner-Typ zu Rechner-Typ unterschiedlich. Das bedeutet, dass Sie die Font-Dateien immer auf dem Rechner-Typ erzeugen müssen, auf dem diese Verwendung finden.

Tabelle 1. Font-Datei-Format

Byte-Position | C Daten-Typ | Beschreibung
Byte 0-3 | int | Anzahl der Zeichen des Font
Byte 4-7 | int | Wert des ersten Zeichens des Fonts (meist 32 für Leerzeichen)
Byte 8-11 | int | Pixel-Breite jedes Zeichens
Byte 12-15 | int | Pixel-Höhe jedes Zeichens
Byte 16- | Zeichen | Zeichen-Daten als Array, ein Byte je Pixel für jedes Zeichen; in der Summe also (Anzahl-Zeichen * Breite * Höhe)-Bytes.

Siehe auch imagefontwidth() und imagefontheight().

Zurück | Zum Anfang | Nach vorne
imageline | Nach oben | imagepalettecopy


imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5)

imagepalettecopy -- Copy the palette from one image to another

Description

int imagepalettecopy ( resource destination, resource source)

imagepalettecopy() copies the palette from the source image to the destination image.

Zurück | Zum Anfang | Nach vorne
imageloadfont | Nach oben | imagepng


imagepng

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imagepng -- Ausgabe eines Bildes an den Browser oder in eine Datei

Beschreibung:

int imagepng ( int im [, string filename])

ImagePNG() erzeugt eine Datei im Format PNG aus im. Falls Sie [filename] angegeben haben, wird die Ausgabe in diese Datei geschrieben, ansonsten wird die Ausgabe direkt an den Browser geleitet. Im ist das Ergebnis der imagecreate()-Funktion.

<?php
$im = ImageCreateFromPNG("test.png");
ImagePNG($im);
?>

Die Angabe des Dateinamens ist optional. Fehlt er, werden die Bilddaten direkt ausgegeben. Durch Verwendung der Funktion header() mit der "content-type"-Angabe "image/png" können Sie PHP-Skripte erstellen, welche die PNG-Ausgabe direkt vornehmen.

Anmerkung: ACHTUNG: Die PNG-Unterstützung ersetzt die GIF-Funktionen ab der GD-Bibliothek Version 1.6. Diese Funktion ist also nur verfügbar, wenn Sie eine Version ab 1.6 verwenden.

Siehe auch imagegif(), imagejpeg(), imagetypes().

Zurück | Zum Anfang | Nach vorne
imagepalettecopy | Nach oben | imagepolygon


imagepolygon

(PHP 3, PHP 4 , PHP 5)

imagepolygon -- Zeichnen eines Vielecks (Polygon)

Beschreibung:

int imagepolygon ( int im, array points, int num_points, int col)

ImagePolygon() erzeugt ein Vieleck innerhalb von im. Points ist ein PHP-Array, das die Werte für die Eckpunkte des Polygons enthält, z.B. Points[0] = x0, Points[1] = y0, Points[2] = x1, Points[3] = y1 usw. Num_points enthält die Gesamtzahl an Points (Points[n]).

Siehe auch imagecreate() und imagefilledpolygon().

Zurück | Zum Anfang | Nach vorne
imagepng | Nach oben | imagepsbbox


imagepsbbox

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsbbox -- Ermittelt die Ausmaße des Rechtecks, das für die Ausgabe eines Textes unter Verwendung eines PostScript-Fonts (Typ 1) notwendig ist.

Beschreibung:

array imagepsbbox ( string text, int font, int size [, int space [, int tightness [, float angle]]])

Size ist die Größe in Pixel.

Space ermöglicht ihnen, den vorgegebenen Wert für den Zeichen-Zwischenraum eines Fonts anzugeben. Dieser Wert wird zum Normal-Wert hinzu gezählt und kann auch negativ sein.

Tightness ermöglicht ihnen die Kontrolle über die Breite eines Leerzeichens. Der angegebene Wert wird zur normalen Zeichenbreite hinzu gezählt und kann auch negativ sein.

Angle (Winkel) wird in Grad angegeben und beinhaltet den Drehungswinkel des auszugebenden Textes.

Die Parameter space und tightness haben als Einheit die Zeichenbreite, wobei der Wert 1 gleich 1/1000stel der Breite des Zeichens 'm' entspricht (Maß 'em').

Die Parameter space, tightness und angle sind optional.

Das umgebende Rechteck wird berechnet unter Verwendung der für die Zeichen-Abmessungen verfügbaren Informationen und unterscheidet sich immer etwas von den aktuellen Raster-Werten des Textes. Ist der Winkel (angle) mit 0 angegeben, können Sie davon ausgehen, dass der Text in jede Richtung immer 1 Pixel mehr braucht als sonst.

Diese Funktion gibt ein Array zurück, welches die folgenden Elemente enthält:

0 | untere linke x-Koordinate
1 | untere linke y-Koordinate
2 | obere rechte x-Koordinate
3 | obere rechte y-Koordinate

Siehe auch imagepstext().

Zurück | Zum Anfang | Nach vorne
imagepolygon | Nach oben | imagepscopyfont


imagepscopyfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepscopyfont -- Erstellt eine Kopie eines bereits geladenen Fonts für weitere Veränderungen

Beschreibung:

int imagepscopyfont ( int fontindex)

Falls Sie Veränderungen an einem Font (Größe, Dicke usw.) vornehmen wollen, den ursprüglichen Font aber noch brauchen, sollten Sie diese Funktion benutzen. Der zu kopierende Font muss über die Funktion ImagePSLoadFont() vorher geladen worden sein. Eine Kopie dieses Fonts können Sie nicht verwenden. Sie können aber bereits vor dem Kopieren Veränderungen vornehmen.

Falls Sie diese Funktion benutzen, müssen Sie die so erzeugten Fonts selbst freigeben und zwar in umgekehrter Reihenfolge, ansonsten wird ihr Skript 'hängen'.

Falls alles klappt, wird ihnen ein gültiger Font-Index zurück gegeben, den Sie weiter verwenden können. Falls nicht, wird FALSE zurück und eine Fehlermeldung ausgegeben.

Siehe auch imagepsloadfont().

Zurück | Zum Anfang | Nach vorne
imagepsbbox | Nach oben | imagepsencodefont


imagepsencodefont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsencodefont -- Ändert die Vektor-Beschreibung eines Fonts

Beschreibung:

int imagepsencodefont ( string encodingfile)

Lädt einen Zeichen-Beschreibungs-Vektor aus einer Datei und verändert die Vektor-Beschreibung des Fonts. Da ein PS-Font meist Lücken oberhalb des 127. Zeichens aufweist, werden Sie dies oft anpassen wollen, sofern Sie eine andere Sprache als Englisch benutzen. Das genaue Dateiformat ist in der Dokumentation zu T1Lib beschrieben. T1Lib wird mit zwei gebrauchsfertigen Beschreibungsdateien (IsoLatin1.enc und IsoLatin2.enc) ausgeliefert.

Sollten Sie diese Funktion ständig benutzen, ist es besser, diese Beschreibungs-Datei innerhalb der Konfigurations-Datei bei ps.default_encoding anzugeben. Dadurch wird immer die richtige Datei geladen und die Zeichen haben damit die richtige Beschreibung.

Zurück | Zum Anfang | Nach vorne
imagepscopyfont | Nach oben | imagepsextendfont


imagepsextendfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsextendfont -- Vergrößert oder komprimiert einen Font

Beschreibung:

bool imagepsextendfont ( int font_index, double extend)

Der mit font_index angegebene Font wird gedehnt (extend ist größer als der Font) oder verkleinert (extend ist kleiner als der Font).

Zurück | Zum Anfang | Nach vorne
imagepsencodefont | Nach oben | imagepsfreefont


imagepsfreefont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsfreefont -- Gibt den durch einen Typ 1 PostScript-Font belegten Speicher wieder frei

Beschreibung:

void imagepsfreefont ( int fontindex)

Siehe auch imagepsloadfont().

Zurück | Zum Anfang | Nach vorne
imagepsextendfont | Nach oben | imagepsloadfont


imagepsloadfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsloadfont -- Lädt einen Typ 1 PostScript-Font aus einer Datei

Beschreibung:

int imagepsloadfont ( string filename)

Wenn alles in Ordnung ist, wird ein gültiger Zeiger (Index) zurück gegeben, auf den Sie immer wieder zurück greifen können; ansonsten wird FALSE zurück und eine Fehlermeldung ausgegeben.

Siehe auch imagepsfreefont().

Zurück | Zum Anfang | Nach vorne
imagepsfreefont | Nach oben | imagepsslantfont


imagepsslantfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsslantfont -- Setzt einen Font schräg

Beschreibung:

bool imagepsslantfont ( int font_index, double slant)

Der mit font_index angegebene Font wird um den Faktor slant "verschrägt" (italic!).

Zurück | Zum Anfang | Nach vorne
imagepsloadfont | Nach oben | imagepstext


imagepstext

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepstext -- Ausgabe eines Textes auf einem Bild unter Verwendung von Typ 1 PostScript-Fonts

Beschreibung:

array imagepstext ( int image, string text, int font, int size, int foreground, int background, int x, int y [, int space [, int tightness [, float angle [, int antialias_steps]]]])

Size wird in Pixel ausgedrückt.

Foreground ist die Text-Ausgabefarbe (Vordergrund). Background ist die Farbe, zu der ein Farbübergang versucht werden soll. Dabei wird kein Pixel mit der Farbe Background ausgegeben, so dass das Bild im Hintergrund keine festen Farben benötigt.

Die Koordinaten x und y definieren den Ursprung (bzw. den Referenz-Punkt) des ersten Zeichens (ungefähr die linke untere Ecke). Dies ist anders als bei der ImageString()-Funktion, wo x und y die obere linke Ecke des ersten Zeichens angeben. Lesen Sie in der Dokumentation zu PostScript und seines Maßsystems nach, falls Sie die Funktionsweise nicht verstehen.

Space ermöglicht ihnen, die Vorgabe des Wertes für den Zeichen-Zwischenraum zu verändern. Der angegebene Wert wird addiert und kann auch negativ sein.

Tightness ermöglicht die Kontrolle über die Breite des Leerzeichens. Der Wert wird addiert und kann auch negativ sein.

Angle wird in Grad angegeben und hat die entsprechende Drehung des Ausgabetextes zur Folge.

Antialias_steps erlaubt die Kontrolle über die Anzahl der Farben, mit der der Farbübergang vom Text zum Hintergrundbild vorgenommen werden soll. Möglich sind Werte von 4 bis 16. Der höhere Wert wird empfohlen bei Textgrössen kleiner als 20, wo der Effekt bei der Textqualität deutlich sichtbar ist. Bei grösseren Werten als 20 werden 4 Farben empfohlen. Das ist weniger rechenintensiv.

Die Parameter space und tightness werden in 1/1000-stel der Breite des Buchstabens "m" (Einheit 'em') angegeben.

Die Parameter space, tightness, angle und antialias sind optional.

Diese Funktion gibt ein Array mit den folgenden Werten zurück:

0 | untere linke X-Koordinate
1 | untere linke Y-Koordinate
2 | obere rechte X-Koordinate
3 | obere rechte Y-Koordinate

Siehe auch imagepsbbox().

Zurück | Zum Anfang | Nach vorne
imagepsslantfont | Nach oben | imagerectangle


imagerectangle

(PHP 3, PHP 4 , PHP 5)

imagerectangle -- Zeichnet ein Rechteck

Beschreibung:

int imagerectangle ( int im, int x1, int y1, int x2, int y2, int col)

ImageRectangle() erzeugt ein Rechteck mit der Linienfarbe col, beginnend bei der oberen linken Koordinate X1 und Y1. Das Ende liegt bei der unteren rechten Koordinate X2 und Y2. Dabei ist 0, 0 die linke obere Ecke des Bildes im.

Zurück | Zum Anfang | Nach vorne
imagepstext | Nach oben | imagerotate


imagerotate

(PHP 4 >= 4.3.0, PHP 5)

imagerotate -- Rotate an image with a given angle

Description

resource imagerotate ( resource src_im, float angle, int bgd_color)

Rotates the src_im image using a given angle in degree. bgd_color specifies the color of the uncovered zone after the rotation.

Anmerkung: This function is only available if PHP is compiled with the bundled version of the GD library.

Zurück | Zum Anfang | Nach vorne
imagerectangle | Nach oben | imagesavealpha


imagesavealpha

(PHP 4 >= 4.3.2, PHP 5)

imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.

Description

bool imagesavealpha ( resource image, bool saveflag)

imagesavealpha() sets the flag to attempt to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.

You have to unset alphablending (imagealphablending($im, FALSE)), to use it.

Alpha channel is not supported by all browsers, if you have problem with your browser, try to load your script with an alpha channel compliant browser, e.g. latest Mozilla.

See also imagealphablending().

Zurück | Zum Anfang | Nach vorne
imagerotate | Nach oben | imagesetbrush


imagesetbrush

(PHP 4 >= 4.0.6, PHP 5)

imagesetbrush -- Set the brush image for line drawing

Description

int imagesetbrush ( resource image, resource brush)

imagesetbrush() sets the brush image to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special colors IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED.

Anmerkung: You need not take special action when you are finished with a brush, but if you destroy the brush image, you must not use the IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED colors until you have set a new brush image!

Anmerkung: This function was added in PHP 4.0.6

Zurück | Zum Anfang | Nach vorne
imagesavealpha | Nach oben | imagesetpixel


imagesetpixel

(PHP 3, PHP 4 , PHP 5)

imagesetpixel -- Setzt ein einzelnes Pixel

Beschreibung:

int imagesetpixel ( int im, int x, int y, int col)

ImageSetPixel() zeichnet ein Pixel an der Koordinate x / y. Dabei ist die Koordinate 0, 0 die linke obere Ecke des Bildes im. Die Pixelfarbe wird durch col bestimmt.

Siehe auch imagecreate() und imagecolorallocate().

Zurück | Zum Anfang | Nach vorne
imagesetbrush | Nach oben | imagesetstyle


imagesetstyle

(PHP 4 >= 4.0.6, PHP 5)

imagesetstyle -- Set the style for line drawing

Description

bool imagesetstyle ( resource image, array style)

imagesetstyle() sets the style to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special color IMG_COLOR_STYLED or lines of images with color IMG_COLOR_STYLEDBRUSHED. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The style parameter is an array of pixels. Following example script draws a dashed line from upper left to lower right corner of the canvas:

Beispiel 1. imagesetstyle() example

<?php
header("Content-type: image/jpeg");
$im  = imagecreate(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Draw a dashed line, 5 red pixels, 5 white pixels */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Draw a line of happy faces using imagesetbrush() with imagesetstyle */
$style = array($w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $red);
imagesetstyle($im, $style);

$brush = imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush, 255, 255, 255);
imagecolortransparent($brush, $w2);
imagesetbrush($im, $brush);
imageline($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

See also imagesetbrush(), imageline().

Anmerkung: This function was added in PHP 4.0.6

Zurück | Zum Anfang | Nach vorne
imagesetpixel | Nach oben | imagesetthickness


imagesetthickness

(PHP 4 >= 4.0.6, PHP 5)

imagesetthickness -- Set the thickness for line drawing

Description

bool imagesetthickness ( resource image, int thickness)

imagesetthickness() sets the thickness of the lines drawn when drawing rectangles, polygons, ellipses etc. etc. to thickness pixels. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Zurück | Zum Anfang | Nach vorne
imagesetstyle | Nach oben | imagesettile


imagesettile

(PHP 4 >= 4.0.6, PHP 5)

imagesettile -- Set the tile image for filling

Description

int imagesettile ( resource image, resource tile)

imagesettile() sets the tile image to be used by all region filling functions (such as imagefill() and imagefilledpolygon()) when filling with the special color IMG_COLOR_TILED.

A tile is an image used to fill an area with a repeated pattern. Any GD image can be used as a tile, and by setting the transparent color index of the tile image with imagecolortransparent(), a tile allows certain parts of the underlying area to shine through can be created.

Anmerkung: You need not take special action when you are finished with a tile, but if you destroy the tile image, you must not use the IMG_COLOR_TILED color until you have set a new tile image!

Zurück | Zum Anfang | Nach vorne
imagesetthickness | Nach oben | imagestring


imagestring

(PHP 3, PHP 4 , PHP 5)

imagestring -- Zeichnet einen horizontalen String

Beschreibung:

int imagestring ( int im, int font, int x, int y, string s, int col)

ImageString() gibt den String s in dem durch den Parameter im bezeichneten Bild an den Koordinaten x und y aus. Die Koordinaten 0, 0 geben die linke obere Ecke des Bildes im an. Der Font erscheint in der Farbe col. Hat font den Wert 1, 2, 3, 4 oder 5 wird ein interner Font benutzt.

Siehe auch imageloadfont().

Zurück | Zum Anfang | Nach vorne
imagesettile | Nach oben | imagestringup


imagestringup

(PHP 3, PHP 4 , PHP 5)

imagestringup -- Zeichnet einen vertikalen String

Beschreibung:

int imagestringup ( int im, int font, int x, int y, string s, int col)

ImageStringUp() gibt den String s vertikal innerhalb des Bildes im an den Koordinaten x und y aus. Die linke obere Ecke von im ist dabei 0, 0. Der Text wird in der Farbe col ausgegeben. Hat font den Wert 1, 2, 3, 4 oder 5 wird ein interner Font benutzt.

Siehe auch imageloadfont().

Zurück | Zum Anfang | Nach vorne
imagestring | Nach oben | imagesx


imagesx

(PHP 3, PHP 4 , PHP 5)

imagesx -- Ermittelt die Bild-Breite

Beschreibung:

int imagesx ( int im)

ImageSX() ermittelt die Breite des Bildes, das durch im referenziert wird.

Siehe auch imagecreate() und imagesy().

Zurück | Zum Anfang | Nach vorne
imagestringup | Nach oben | imagesy


imagesy

(PHP 3, PHP 4 , PHP 5)

imagesy -- Ermittelt die Bild-Höhe

Beschreibung:

int imagesy ( int im)

ImageSY() ermittelt die Höhe des Bildes, das durch im referenziert wird.

Siehe auch imagecreate() und imagesx().

Zurück | Zum Anfang | Nach vorne
imagesx | Nach oben | imagetruecolortopalette


imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5)

imagetruecolortopalette -- Convert a true color image to a palette image

Description

void imagetruecolortopalette ( resource image, bool dither, int ncolors)

imagetruecolortopalette() converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality.

dither indicates if the image should be dithered - if it is TRUE then dithering will be used which will result in a more speckled image but with better color approximation.

ncolors sets the maximum number of colors that should be retained in the palette.

Anmerkung: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Zurück | Zum Anfang | Nach vorne
imagesy | Nach oben | imagettfbbox


imagettfbbox

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

imagettfbbox -- Ermittelt die Rahmenmaße für die Ausgabe eines Textes im True-Type-Format

Beschreibung:

array imagettfbbox ( int size, int angle, string fontfile, string text)

Diese Funktion errechnet die Grösse des Bereichs für eine True-Type-Textausgabe.

text

Der zu messende Text

size

Die Font-Größe

fontfile

Der Name der TTF-Datei (kann auch eine URL sein)

angle

Der Winkel, in dem text ausgegeben wird

ImageTTFBBox() gibt ein Array mit acht Werten zurück. Diese enthalten die vier Punkte, durch die der Ausgabebereich markiert wird:

0 | untere linke Ecke, X-Position
1 | untere linke Ecke, Y-Position
2 | untere rechte Ecke, X-Position
3 | untere rechte Ecke, Y-Position
4 | obere rechte Ecke, X-Position
5 | obere rechte Ecke, Y-Position
6 | obere linke Ecke, X-Position
7 | obere linke Ecke, Y-Position

Die Punkte sind relativ zum text. Ohne Rücksicht auf den Winkel ist oben-links also die obere linke Ecke, wobei die Textausgabe horizontal gesehen wird.

Diese Funktion erfordert sowohl die GD- als auch die FreeType-Bibliothek.

Siehe auch imagettftext().

Zurück | Zum Anfang | Nach vorne
imagetruecolortopalette | Nach oben | imagettftext


imagettftext

(PHP 3, PHP 4 , PHP 5)

imagettftext -- Erzeugt TTF-Text im Bild

Beschreibung:

array imagettftext ( int im, int size, int angle, int x, int y, int col, string fontfile, string text)

ImageTTFText() zeichnet den Text text in das per im angegebene Bild, beginnend bei den Koordinaten x und y (oben links ist 0, 0) mit einem Ausgabewinkel von angle in der Farbe col unter Verwendung der TTF-Datei, die mittels fontfile benannt wurde.

Die per x und y angegebenen Koordinaten definieren den Startpunkt des ersten Zeichens (in etwa die linke untere Ecke). Das ist anders als bei der ImageString()-Funktion, bei der x und y die obere rechte Ecke des ersten Zeichens darstellen.

Angle ist in Grad anzugeben. 0 ist eine normale Ausrichtung von links nach rechts (von 9 nach 3 Uhr). Höhere Werte entsprechen einer immer weiteren Drehung entgegen dem Uhrzeiger-Sinn. Eine Drehung von 90 Grad entspricht also einer Text-Ausrichtung von unten nach oben (von 6 nach 12 Uhr).

Fontfile ist der Pfad zur TTF-Datei, die Sie verwenden wollen.

Text ist der auszugebende String, der auch UTF-8-Zeichenfolgen enthalten darf (z.B. &#123;)

Col ist der Farbindex. Verwenden Sie den negativen Index-Wert, führt das zum Aufheben des Farbüberlaufs (Antialiasing).

ImageTTFText() gibt ein Array aus acht Elementen zurück, das die vier Ecken des Textausgabe-Bereichs enthält (wie ImageTTFBBox()). Die Reihenfolge ist dabei oben links, oben rechts, unten rechts und unten links. Die Punkte sind dabei relativ zum Text. Deshalb gibt oben links die linke Ecke bei horizontaler Sichtweise an.

Das Beispiel-Skript erzeugt eine schwarze GIF-Grafik von 400x30 Pixel mit dem weissen Text "Teste..." im TT-Font Arial.

Beispiel 1. ImageTTFText

<?php
Header ("Content-type: image/gif");
$im = imagecreate (400, 30);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);
ImageTTFText ($im, 20, 0, 10, 20, $white, "/path/arial.ttf",
              "Teste... Omega: &#937;");
ImageGif ($im);
ImageDestroy ($im);
?>

Diese Funktion erfordert sowohl die GD- als auch die FreeType-Bibliothek.

Siehe auch imagettfbbox().

Zurück | Zum Anfang | Nach vorne
imagettfbbox | Nach oben | imagetypes


imagetypes

(PHP 3 CVS only, PHP 4 >= 4.0.2, PHP 5)

imagetypes -- Gibt die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück

Beschreibung:

int imagetypes ( void )

Der von dieser Funktion zurück gegebene Bit-Wert stellt die von der in der aktuellen PHP-Kompilation enthaltenen GD-Version unterstützten Grafik-Formate dar. Die folgenden Bit-Werte sind möglich: IMG_GIF, IMG_JPG, IMG_PNG oder IMG_WBMP. Um das Vorhanden sein der GD-Unterstützung zu testen, können Sie folgendes machen:

Beispiel 1. ImageTypes

<?php
if (ImageTypes() & IMG_PNG) {
    echo "PNG-Unterstützung ist vorhanden.";
}
?>

Zurück | Zum Anfang | Nach vorne
imagettftext | Nach oben | imagewbmp


imagewbmp

(PHP 3>= 3.0.15, PHP 4 >= 4.0.1, PHP 5)

imagewbmp -- Output image to browser or file

Description

int imagewbmp ( resource image [, string filename [, int foreground]])

imagewbmp() creates the WBMP file in filename from the image image. The image argument is the return from the imagecreate() function.

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Anmerkung: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Using the optional foreground parameter, you can set the foreground color. Use an identifier obtained from imagecolorallocate(). The default foreground color is black.

See also image2wbmp(), imagepng(),
imagegif(), imagejpeg(),
imagetypes().

Zurück | Zum Anfang | Nach vorne
imagetypes | Nach oben | imagexbm


imagexbm

(PHP 5)

imagexbm -- Output XBM image to browser or file

Description

int imagexbm ( resource image, string filename [, int foreground])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This function is only available if PHP is compiled with the bundled version of the GD library.

Zurück | Zum Anfang | Nach vorne
imagewbmp | Nach oben | iptcembed


iptcembed

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

iptcembed -- Embed binary IPTC data into a JPEG image

Description

array iptcembed ( string iptcdata, string jpeg_file_name [, int spool])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
imagexbm | Nach oben | iptcparse


iptcparse

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

iptcparse -- Parse a binary IPTC http://www.iptc.org/ block into single tags.

Description

array iptcparse ( string iptcblock)

This function parses a binary IPTC block into its single tags. It returns an array using the tagmarker as an index and the value as the value. It returns FALSE on error or if no IPTC data was found. See getimagesize() for a sample.

Zurück | Zum Anfang | Nach vorne
iptcembed | Nach oben | jpeg2wbmp


jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5)

jpeg2wbmp -- Convert JPEG image file to WBMP image file

Description

int jpeg2wbmp ( string jpegname, string wbmpname, int d_height, int d_width, int threshold)

Converts the jpegname JPEG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Anmerkung: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also png2wbmp().

Zurück | Zum Anfang | Nach vorne
iptcparse | Nach oben | png2wbmp


png2wbmp

(PHP 4 >= 4.0.5, PHP 5)

png2wbmp -- Convert PNG image file to WBMP image file

Description

int png2wbmp ( string pngname, string wbmpname, int d_height, int d_width, int threshold)

Converts the pngname PNG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Anmerkung: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also jpeg2wbmp().

Zurück | Zum Anfang | Nach vorne
jpeg2wbmp | Nach oben | read_exif_data


read_exif_data

(PHP 4 >= 4.0.1, PHP 5)

read_exif_data -- Liest die EXIF Header-Infos einer JPEG-Grafik

Beschreibung:

array read_exif_data ( string filename)

Die Funktion read_exif_data() liest die EXIF Datei-Kopf-Informationen aus einer JPEG-Grafik-Datei. Es wird ein assoziatives Array in dem die Indizes die EXIF-Kopf-Bezeichnungen und die Werte die Inhalte dieser Kopf-Infos sind. EXIF-Infos sind häufig in JPEG-Grafiken enthalten, die mit einer Digital-Kamera aufgenommen wurden. Jeder Aufnehmende hat aber andere Vorstellungen über die Daten einer JPEG-Grafik. Diese Unterschiede können Sie mit dieser Funktion ermitteln.

Beispiel 1. read_exif_data

<?php
$exif = read_exif_data ('p0001807.jpg');
while(list($k,$v)=each($exif)) {
   echo "$k: $v<br>\n";
}
?>

Ausgabe:
FileName: p0001807.jpg
FileDateTime: 929353056
FileSize: 378599
CameraMake: Eastman Kodak Company
CameraModel: KODAK DC265 ZOOM DIGITAL CAMERA (V01.00)
DateTime: 1999:06:14 01:37:36
Height: 1024
Width: 1536
IsColor: 1
FlashUsed: 0
FocalLength:  8.0mm
RawFocalLength: 8
ExposureTime:  0.004 s (1/250)
RawExposureTime: 0.0040000001899898
ApertureFNumber: f/ 9.5
RawApertureFNumber: 9.5100002288818
FocusDistance: 16.66m
RawFocusDistance: 16.659999847412
Orientation: 1
ExifVersion: 0200

Anmerkung: Diese Funktion ist in PHP 4 nur verfügbar, wenn Sie es mit --enable-exif compiliert haben.

Diese Funktion erfordert nicht die GD-Library.

Zurück | Zum Anfang | Nach vorne
png2wbmp | Nach oben | IMAP, POP3 und NNTP Funktionen


IMAP, POP3 und NNTP Funktionen

PHP Handbuch
Zurück Nach vorne

XLII. IMAP, POP3 und NNTP Funktionen

Dieses Paket baut auf auf der C-Client Bibliothek auf, die Sie unter der URL ftp://ftp.cac.washington.edu/imap/ erhalten. Kompilieren Sie diese und kopieren Sie c-client/c-client.a nach /usr/local/lib/libc-client.a sowie c-client/rfc822.h, mail.h und linkage.h nach /usr/local/include oder in ein anderes Verzeichnis in Ihrem Link- bzw. Include-Pfad. Anschließend konfigurieren und kompilieren Sie PHP mit der Option --with-imap.

Beachten Sie, dass diese Funktionen nicht auf das IMAP -Protokoll beschränkt sind, auch wenn der Name dies vermuten läßt. Die zugrundeliegende C-Client Bibliothek unterstützt auch POP3, NNTP und lokale Mailbox-Zugriffe.

Diese Dokumentation kann nicht alle Bereiche beschreiben, die von den enthaltenen Funktionen berührt werden. Weitergehende Informationen erhalten Sie in der Dokumentation der C-Client Bibliothek (Datei docs/internal.txt im Quellpaket der Bibliothek) sowie in folgenden RFC-Dokumenten:

  • RFC821 : Simple Mail Transfer Protocol (SMTP)

  • RFC822 : Standard for ARPA internet text messages

  • RFC2060 : Internet Message Access Protocol (IMAP) Version 4rev1

  • RFC1939 : Post Office Protocol Version 3 (POP3)

  • RFC977 : Network News Transfer Protocol (NNTP)

  • RFC2076 : Common Internet Message Headers

  • RFC2045 , RFC2046 , RFC2047 , RFC2048 & RFC2049 : Multipurpose Internet Mail Extensions (MIME)

Eine ausführliche Übersicht bietet auch das Buch Programming Internet Email von David Wood.

Inhaltsverzeichnis
imap_8bit -- Konvertiert einen String in einen quoted-printable kodierten String.
imap_alerts -- Diese Funktion liefert alle alert-Meldungen zurück, die während der Ausführung dieses Requests bzw. seit dem letzten Reset des alert-Stacks aufgetreten sind.
imap_append -- Fügt eine String-Nachricht an das angegebene Postfach an.
imap_base64 -- Dekodiert BASE64-codierten Text
imap_binary -- Konvertiert 8Bit-Text in einen BASE64-kodierten String.
imap_body -- Liest den Körper einer Nachricht
imap_bodystruct -- Read the structure of a specified body section of a specific message
imap_check -- Prüft den Status des aktuelle Postfachs
imap_clearflag_full -- Löscht Flags einer Nachricht
imap_close -- Schließt eine IMAP-Verbindung
imap_createmailbox -- Erzeugt ein neues Postfach
imap_delete -- Merkt eine Nachricht des aktuellen Postfachs zum Löschen vor.
imap_deletemailbox -- Löscht ein Postfach
imap_errors -- Diese Funktion liefert alle bisher aufgetretenen Fehlermeldungen
imap_expunge -- Löscht alle zum Löschen vorgemerkten Nachrichten
imap_fetch_overview -- Liefert einen Auszug aus den Header-Feldern von Nachrichten
imap_fetchbody -- Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht.
imap_fetchheader -- Liefert den Kopf einer Nachricht
imap_fetchstructure -- Liefert die Struktur der angegebenen Nachricht
imap_get_quota -- Retrieve the quota level settings, and usage statics per mailbox
imap_get_quotaroot -- Retrieve the quota settings per user
imap_getacl -- Gets the ACL for a given mailbox
imap_getmailboxes -- Liefert detailierte Informationen über eine Auswahl von Postfächern
imap_getsubscribed -- Liefert eine Auswahl aller abbonierten Postfächer
imap_header -- Liefert den Kopf einer Nachricht
imap_headerinfo -- Read the header of the message
imap_headers -- Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs
imap_last_error -- Diese Funktion liefert die zuletzt während dieses Seitenzugriffs aufgetretene Fehlermeldung (falls vorhanden)
imap_list -- Read the list of mailboxes
imap_listmailbox -- Liefert eine Liste der Postfach-Namen
imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox
imap_listsubscribed -- Liefert eine Liste aller abbonierten Postfächer
imap_lsub -- List all the subscribed mailboxes
imap_mail_compose -- Erzeugt eine MIME-Nachricht aus gegebenen Header- und Body-Teilen
imap_mail_copy -- Kopiert Nachrichten in ein Postfach
imap_mail_move -- Verschiebt Nachrichten in ein anderes Postfach
imap_mail -- Versendet eine Email
imap_mailboxmsginfo -- Liefert Informationen über das aktuelle Postfach
imap_mime_header_decode -- Decode MIME header elements
imap_msgno -- Liefert den aktuellen Nachrichten-Index zu einer UID
imap_num_msg -- Liefert die Anzahl der Nachrichten im aktuellen Postfach
imap_num_recent -- Liefert die Anzahl der neu hinzugekommenen Nachrichten im aktuellen Postfach
imap_open -- Öffnet eine Verbindung zu einem Postfach auf einem POP-, IMAP- oder NNTP-Server
imap_ping -- Prüft, ob die aktuelle Verbindung noch verfügbar ist
imap_qprint -- Konvertiert einen quoted-printable kodierten String in einen 8bit-String
imap_renamemailbox -- Ändert den Namen eines Postfachs
imap_reopen -- Wechselt das aktuelle Postfach der Verbindung
imap_rfc822_parse_adrlist -- Parsen eines Adress-Strings
imap_rfc822_parse_headers -- Parse mail headers from a string
imap_rfc822_write_address -- Bildet aus Realnamen, Postfach und Server eine korekt formatierte Mail-Adresse
imap_scanmailbox -- Druchsucht Postfächer nach einen String
imap_search -- Sucht Nachrichten, die den übergebenen Suchkriterien entsprechen
imap_set_quota -- Sets a quota for a given mailbox
imap_setacl -- Sets the ACL for a giving mailbox
imap_setflag_full -- Setzt Flags einer Nachricht
imap_sort -- Sortiert Nachrichten eines Postfachs
imap_status -- Liefert ausgewählte Statusinformationen zum angegebenen Postfach
imap_subscribe -- Abbonieren eines Postfachs
imap_thread -- Return threaded by REFERENCES tree
imap_timeout -- Set or fetch imap timeout
imap_uid -- Liefert die UID zu einem gegeben Nachrichten-Index
imap_undelete -- Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück
imap_unsubscribe -- Abbonement eines Postfachs beenden
imap_utf7_decode -- Dekodiert einem String im modifizierten UTF-7 Format.
imap_utf7_encode -- Kodiert Text im modifizieren UTF-7 Format
imap_utf8 -- Konvertiert Text zu UTF8

Zurück | Zum Anfang | Nach vorne
read_exif_data | Nach oben | imap_8bit


imap_8bit

(PHP 3, PHP 4 , PHP 5)

imap_8bit -- Konvertiert einen String in einen quoted-printable kodierten String.

Beschreibung

string imap_8bit ( string string)

Konvertiert einen String in einen quoted-printable kodierten String (gemäß RFC2045, Abschnitt 6.7).

Siehe auch imap_qprint().

Zurück | Zum Anfang | Nach vorne
IMAP, POP3 und NNTP Funktionen | Nach oben | imap_alerts


imap_alerts

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_alerts -- Diese Funktion liefert alle alert-Meldungen zurück, die während der Ausführung dieses Requests bzw. seit dem letzten Reset des alert-Stacks aufgetreten sind.

Beschreibung

array imap_alerts ( void )

Diese Funktion liefert in Form eines String-Arrays alle IMAP alert-Medlungen, die seit Beginn dieses Requests bzw. dem letzten Aufruf der Funktion aufgetreten sind. Durch den Aufruf der Funktion wird der alert-Stack gelöscht, so dass weitere Aufrufe zunächst bis zum Auftreten eines neuen alerts kein Ergebnis liefern.

Die IMAP-Spezifikationen verlangen, dass diese Meldungen an den Benutzer weitergegeben werden.

Zurück | Zum Anfang | Nach vorne
imap_8bit | Nach oben | imap_append


imap_append

(PHP 3, PHP 4 , PHP 5)

imap_append -- Fügt eine String-Nachricht an das angegebene Postfach an.

Beschreibung

int imap_append ( int imap_stream, string mbox, string message [, string flags])

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

imap_append() fügt den String aus message als neue Nachricht an die durch mbox spezifizierte Mailbox an. Wenn der optionale flags spezifiziert wird, so werden die Flags der Nachricht in der Mailbox entsprechend gesetzt.

Beispiel 1. imap_append() Beispiel

$stream = imap_open ("{your.imap.host}INBOX.Drafts", "username", "password");

$check = imap_check ($stream);
print "Msg Count before append: " . $check->Nmsgs . "<br>\n";

imap_append( $stream, "{your.imap.host}INBOX.Drafts"
                    , "From: me@my.host\r\n"
                    . "To: you@your.host\r\n"
                    . "Subject: test\r\n"
                    . "\r\n"
                    . "Das ist ein Test, bitte ignorieren\r\n"
                    );

$check = imap_check ($stream);
print "Msg Count after append : " . $check->Nmsgs . "<br>\n";

imap_close ($stream);

Warnung

Der Cyrus IMAP Server erwartet zwingend "\r\n" als Zeilenende-Kennung, ein einfaches "\n" wird nicht richtig verarbeitet.

Zurück | Zum Anfang | Nach vorne
imap_alerts | Nach oben | imap_base64


imap_base64

(PHP 3, PHP 4 , PHP 5)

imap_base64 -- Dekodiert BASE64-codierten Text

Beschreibung

string imap_base64 ( string text)

Die imap_base64() Funktion decodiert BASE64 codierten Text (gemäß RFC2045, Abschnitt 6.8). Der decodierte Text wird als String zurückgegeben.

Siehe auch imap_binary().

Zurück | Zum Anfang | Nach vorne
imap_append | Nach oben | imap_binary


imap_binary

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_binary -- Konvertiert 8Bit-Text in einen BASE64-kodierten String.

Beschreibung

string imap_binary ( string string)

Konvertiert 8Bit-Text in einen BASE64-kodierten String (gemäß RFC2045, Abschnitt 6.8).

Siehe auch imap_base64().

Zurück | Zum Anfang | Nach vorne
imap_base64 | Nach oben | imap_body


imap_body

(PHP 3, PHP 4 , PHP 5)

imap_body -- Liest den Körper einer Nachricht

Beschreibung

string imap_body ( int imap_stream, int msg_number [, int flags])

imap_body() liefert den Körper der Nachricht mit der Nummer msg_number im aktuellen Postfach. Die optionalen flags können eine Bitmaske enthalten, die sich aus folgenden Werten zusammensetzt:

  • FT_UID - msg_number ist eine UID

  • FT_PEEK - Das \Seen-Flag wird nicht beeinflußt.

  • FT_INTERNAL - Die Nachricht wird im internen Format zurückgegeben eine CRLF-Umwandlung findet nicht statt.

Zurück | Zum Anfang | Nach vorne
imap_binary | Nach oben | imap_bodystruct


imap_bodystruct

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_bodystruct -- Read the structure of a specified body section of a specific message

Description

object imap_bodystruct ( resource stream_id, int msg_no, int section)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
imap_body | Nach oben | imap_check


imap_check

(PHP 3, PHP 4 , PHP 5)

imap_check -- Prüft den Status des aktuelle Postfachs

Beschreibung

object imap_check ( int imap_stream)

Die imap_check() Funktion prüft den Status des aktuellen Postfach und liefert die entsprechenden Felder in einem Objekt mit folgenden Attributen zurück:

  • Date - Datum der letzten Änderung des Postfach-Inhalts

  • Driver - Zugriffsprotokoll: POP, IMAP, NNTP

  • Mailbox - Name des Postfachs

  • Nmsgs - Anzahl der Nachrichten im Postfach

  • Recent - Anzahl der neuen Nachrichten im Postfach

Beispiel 1. imap_check() Beispiel

$mbox = imap_open ("{your.imap.host}INBOX", "username", "password")
    || die ("can't connect: " . imap_last_error());

$check = imap_check ($mbox);

if($check) {
    print "Date: "     . $check->Date    . "<br>\n" ;
    print "Driver: "   . $check->Driver  . "<br>\n" ;
    print "Mailbox: "  . $check->Mailbox . "<br>\n" ;
    print "Messages: " . $check->Nmsgs   . "<br>\n" ;
    print "Recent: "   . $check->Recent  . "<br>\n" ;
} else {
    print "imap_check() failed: " . imap_last_error() . "<br>\n";
}

imap_close ($mbox);

Zurück | Zum Anfang | Nach vorne
imap_bodystruct | Nach oben | imap_clearflag_full


imap_clearflag_full

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_clearflag_full -- Löscht Flags einer Nachricht

Beschreibung

string imap_clearflag_full ( int stream, string sequence, string flag, string options)

Diese Funktion löscht die übergebenen Flags für eine oder mehrere Nachrichten.

Mögliche Flags sind "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", "\\Draft", und "\\Recent" ( siehe auch RFC2060)

Enthält options den Wert ST_UID, so werden die übergebenen Nachrichtennummern als UIDs anstelle von Indizes interpretiert.

Zurück | Zum Anfang | Nach vorne
imap_check | Nach oben | imap_close


imap_close

(PHP 3, PHP 4 , PHP 5)

imap_close -- Schließt eine IMAP-Verbindung

Beschreibung

int imap_close ( int imap_stream [, int flags])

Schließt eine IMAP-Verbindung. Mit dem optionalen flag CL_EXPUNGE kann ein Bereinigen (physikalisches Löschen aller zum Löschen markierten Nachrichten) ausgelöst werden.

Zurück | Zum Anfang | Nach vorne
imap_clearflag_full | Nach oben | imap_createmailbox


imap_createmailbox

(PHP 3, PHP 4 , PHP 5)

imap_createmailbox -- Erzeugt ein neues Postfach

Beschreibung

int imap_createmailbox ( int imap_stream, string mbox)

imap_createmailbox() legt ein über den Parameter mbox spezifiziertes neues Postfach an.

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

Siehe auch imap_renamemailbox() and
imap_deletemailbox()
sowie imap_open() für das Format des
Parameters mbox.

Beispiel 1. imap_createmailbox() Beispiel

$mbox = imap_open ("{your.imap.host}", "username", "password", OP_HALFOPEN)
     || die ("can't connect: ".imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode ("phpnewböx");

$newname = $name1;

echo "Newname will be '$name1'<br>\n";

# we will now create a new mailbox "phptestbox" in your inbox folder,
# check its status after creation and finaly remove it to restore
# your inbox to its initial state

if (@imap_createmailbox ($mbox,imap_utf7_encode ("{your.imap.host}INBOX.$newname"))) {
    $status = @imap_status($mbox,"{your.imap.host}INBOX.$newname",SA_ALL);
    if($status) {
        print("your new mailbox '$name1' has the following status:<br>\n");
        print("Messages:   ". $status->messages   )."<br>\n";
        print("Recent:     ". $status->recent     )."<br>\n";
        print("Unseen:     ". $status->unseen     )."<br>\n";
        print("UIDnext:    ". $status->uidnext    )."<br>\n";
        print("UIDvalidity:". $status->uidvalidity)."<br>\n";

        if (imap_renamemailbox ($mbox,"{your.imap.host}INBOX.$newname", "{your.imap.host}INBOX.$name2")) {
            echo "renamed new mailbox from '$name1' to '$name2'<br>\n";
            $newname=$name2;
        } else {
            print "imap_renamemailbox on new mailbox failed: ".imap_last_error ()."<br>\n";
        }
    } else {
            print "imap_status on new mailbox failed: ".imap_last_error()."<br>\n";
    }
    if (@imap_deletemailbox($mbox,"{your.imap.host}INBOX.$newname")) {
        print "new mailbox removed to restore initial state<br>\n";
    } else {
        print  "imap_deletemailbox on new mailbox failed: ".implode ("<br>\n", imap_errors())."<br>\n";
    }

} else {

    print "could not create new mailbox: ".implode ("<br>\n",imap_errors())."<br>\n";
}

imap_close($mbox);

Zurück | Zum Anfang | Nach vorne
imap_close | Nach oben | imap_delete


imap_delete

(PHP 3, PHP 4 , PHP 5)

imap_delete -- Merkt eine Nachricht des aktuellen Postfachs zum Löschen vor.

Beschreibung

int imap_delete ( int imap_stream, int msg_number [, int flags])

Diese Funktion liefert immer TRUE, eventuelle Fehler können nicht erkannt werden!

Die imap_delete() Funktion merkt die mit msg_number angegebene Nachricht des aktuellen Postfachs zum Löschen vor. Enthält der optionale Parameter flags den Wert FT_UID, so wird der Parameter msg_number als UID interpretiert. Die Nachricht verbleibt zunächst noch im Postfach, endgültig gelöscht wird sie (zusammen mit allen anderen entsprechend markierten Nachrichten) durch Aufruf der Funktion imap_expunge() oder durch imap_close() mit dem optionalen Flag CL_EXPUNGE.

Beispiel 1. imap_delete() Beispiel

$mbox = imap_open ("{your.imap.host}INBOX", "username", "password")
    || die ("can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo ($mbox);
print "Messages before delete: " . $check->Nmsgs . "<br>\n" ;
imap_delete ($mbox, 1);
$check = imap_mailboxmsginfo ($mbox);
print "Messages after  delete: " . $check->Nmsgs . "<br>\n" ;
imap_expunge ($mbox);
$check = imap_mailboxmsginfo ($mbox);
print "Messages after expunge: " . $check->Nmsgs . "<br>\n" ;
imap_close ($mbox);

Zurück | Zum Anfang | Nach vorne
imap_createmailbox | Nach oben | imap_deletemailbox


imap_deletemailbox

(PHP 3, PHP 4 , PHP 5)

imap_deletemailbox -- Löscht ein Postfach

Beschreibung

int imap_deletemailbox ( int imap_stream, string mbox)

imap_deletemailbox() löscht das angegebene Postfach inclusive aller darin enthaltener Nachrichten und Unter-Postfächer.

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

Siehe auch imap_createmailbox() und
imap_renamemailbox()
sowie imap_open() für das Format des
mbox Parameters.

Zurück | Zum Anfang | Nach vorne
imap_delete | Nach oben | imap_errors


imap_errors

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_errors -- Diese Funktion liefert alle bisher aufgetretenen Fehlermeldungen

Beschreibung

array imap_errors ( void )

Diese Funktion liefert in Form eines String-Arrays alle seit Beginn des Requests bzw. seit dem letzten Aufruf von imap_errors() aufgetretenen Fehlermeldung. Der Fehler-Stack wird dabei gelöscht, so dass folgende Aufrufe von imap_errors() bzw. imap_last_errors() bis zum mächsten aufgetretenen Fehler kein Ergebnis liefern.

Zurück | Zum Anfang | Nach vorne
imap_deletemailbox | Nach oben | imap_expunge


imap_expunge

(PHP 3, PHP 4 , PHP 5)

imap_expunge -- Löscht alle zum Löschen vorgemerkten Nachrichten

Beschreibung

int imap_expunge ( int imap_stream)

imap_expunge() löscht endgültig alle von den
Funktionen imap_delete(),
imap_mail_move() oder
imap_setflag_full() zum Löschen vorgemerkten
Nachrichten.

Diese Funktion liefert immer TRUE, eventuelle Fehler können nicht erkannt werden!

Zurück | Zum Anfang | Nach vorne
imap_errors | Nach oben | imap_fetch_overview


imap_fetch_overview

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_fetch_overview -- Liefert einen Auszug aus den Header-Feldern von Nachrichten

Beschreibung

array imap_fetch_overview ( int imap_stream, string sequence [, int flags])

Diese Funktion liefert ausgewählte Headerfelder der in sequence übergebenen Nachrichten und liefert sie in einem Array mit je einem Objekt pro Nachricht zurück. sequence enthält eine Sequenz von Nachrichten-Indizes oder, bei gesetztem FT_UID in flags, von UIDs. Die einzelnen Objekte des zurückgegeben Arrays enthalten dabei folgende Informationen:

  • subject - Betreff

  • from - Absender

  • date - Sendedatum

  • message_id - Message-ID

  • references - bezieht sich auf Message-ID

  • size - Größe in Byte

  • uid - UID der Nachricht im Postfach

  • msgno - Index der Nachricht im Postfach

  • recent - Flag gesetzt

  • flagged - Flag gesetzt

  • answered - Flag gesetzt

  • deleted - Flag gesetzt

  • seen - Flag gesetzt

  • draft - Flag gesetzt

Beispiel 1. imap_fetch_overview() Beispiel

$mbox = imap_open ("{your.imap.host:143}", "username", "password")
    || die ("can't connect: " . imap_last_error());

$overview = imap_fetch_overview ($mbox, "2,4:6", 0);

if (is_array ($overview )) {
    reset ($overview);
    while (list ($key, $val) = each ($overview)) {
        print $val->msgno
            . " - " . $val->date
            . " - " . $val->subject
            . "\n";
    }
}

imap_close ($mbox);

Zurück | Zum Anfang | Nach vorne
imap_expunge | Nach oben | imap_fetchbody


imap_fetchbody

(PHP 3, PHP 4 , PHP 5)

imap_fetchbody -- Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht.

Beschreibung

string imap_fetchbody ( int imap_stream, int msg_number, string part_number [, flags flags])

Diese Funktion liefert einen bestimmten Teil einer MIME-kodierten Nachricht als String. Die Nummer des gewünschten Teils besteht aus von Punkten getrennten Zahlen, die den Index des Teils gemäß der IMAP4-Spezifikationen bezeichnen. Der Inhalt wird dabei von dieser Funktion nicht dekodiert.

Die Bitmaske flags kann aus folgenden Werten zusammengesetzt werden:

  • FT_UID - msg_number enthält eine UID

  • FT_PEEK - Das \Seen Flag der Nachricht wird nicht verändert

  • FT_INTERNAL - Das Ergebnis wird ohne jeden Versuch einer Konvertierung der Zeilenenden zurückgegeben

Zurück | Zum Anfang | Nach vorne
imap_fetch_overview | Nach oben | imap_fetchheader


imap_fetchheader

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_fetchheader -- Liefert den Kopf einer Nachricht

Beschreibung

string imap_fetchheader ( int imap_stream, int msgno, int flags)

Diese Funktion liefert den vollständigen, ungefilterten und gemäß RFC 822 formatierten Kopf einer Nachricht als String zurück.

Die Bitmaske flags kann aus folgenden Werten zusammengesetzt werden:

  • FT_UID msgno enthält eine UID

  • FT_INTERNAL Der Kopf wird im "internen" Format, d.h. ohne jegliche Konvertierung von Zeilenenden zurückgegeben

  • FT_PREFETCHTEXT Der Körper der Nachricht wird ebenfalls angefordert, hierdurch wird ein zus. Zugriff vermieden, wenn z.B. für eine Save-Operation der gesamte Text einer Nachricht benötigt wird

Zurück | Zum Anfang | Nach vorne
imap_fetchbody | Nach oben | imap_fetchstructure


imap_fetchstructure

(PHP 3, PHP 4 , PHP 5)

imap_fetchstructure -- Liefert die Struktur der angegebenen Nachricht

Beschreibung

object imap_fetchstructure ( int imap_stream, int msg_number [, int flags])

Diese Funktion liefert die gesamten Strukturinformationen zu einer gegebenen Nachricht. Das zurückgegebene Objekt enthält den Umschlag, die internen Daten, Größe und Flags der Nachricht sowie ein (rekursives) Array von ähnlichen Objekten für jeden enthaltenen MIME-Teil der Nachricht. Enthält der optionale Parameter flags den Wert FT_UID, so wird msg_number als UID anstelle eines Index interpretiert.

Das zurückgegebene Objekt verfügt über die folgenden Attribute:

Tabelle 1. Zurückgegebene Objekte von imap_fetchstructure()

type | Primärer MIME-Typ des Nachrichten-Teils
encoding | Transfer-Kodierung
ifsubtype | Wahr, wenn das Feld subtype gesetzt ist
subtype | MIME Subtyp
ifdescription | Wahr, wenn ein Beschreibungsstring existiert
description | Inhalt des Bechreibungsstrings
ifid | Wahr, wenn ein Identifikationsstring existiert
id | Identificationsstring
lines | Anzahl der Zeilen dieses Teils
bytes | Größe des Teils in Byte
ifdisposition | Wahr, wenn der Dispositionsstring gesetzt ist
disposition | Dispositionsstring
ifdparameters | Wahr, wenn Dispositions-Parameterwerte gesetzt sind
dparameters | Array der DispositionsParameter
ifparameters | Wahr, wenn Parameter gesetzt sind
parameters | Array der MIME Parameter
parts | Array von Objekten, die die einzelnen Unterteile der Nachricht beschreiben

  1. dparameters ist ein Array von Objekten mit jeweils einem "attribute" und einem "value" Attribut.

  2. parameters ist ein Array von Objekten mit jeweils einem "attribute" und einem "value" Attribut.

  3. Die Elemente des parts Array entsprechen dem von der Funktion zurückgegebenen Objekt (usf.).

Tabelle 2. Primary body type

0 | text
1 | multipart
2 | message
3 | application
4 | audio
5 | image
6 | video
7 | other

Tabelle 3. Transfer encodings

0 | 7BIT
1 | 8BIT
2 | BINARY
3 | BASE64
4 | QUOTED-PRINTABLE
5 | OTHER

Zurück | Zum Anfang | Nach vorne
imap_fetchheader | Nach oben | imap_get_quota


imap_get_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_get_quota -- Retrieve the quota level settings, and usage statics per mailbox

Description

array imap_get_quota ( resource imap_stream, string quota_root)

Returns an array with integer values limit and usage for the given mailbox. The value of limit represents the total amount of space allowed for this mailbox. The usage value represents the mailboxes current level of capacity. Will return FALSE in the case of failure.

This function is currently only available to users of the c-client2000 or greater library.

NOTE: For this function to work, the mail stream is required to be opened as the mail-admin user. For a non-admin user version of this function, please see the imap_get_quotaroot() function of PHP.

imap_stream should be the value returned from an imap_open() call. NOTE: This stream is required to be opened as the mail admin user for the get_quota function to work. quota_root should normally be in the form of user.name where name is the mailbox you wish to retrieve information about.

Beispiel 1. imap_get_quota() example

<?php
$mbox = imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Usage level is: " . $quota_value['usage'];
    echo "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

As of PHP 4.3, the function more properly reflects the functionality as dictated by the RFC 2087. The array return value has changed to support an unlimited number of returned resources (i.e. messages, or sub-folders) with each named resource receiving an individual array key. Each key value then contains an another array with the usage and limit values within it. The example below shows the updated returned output.

For backwards compatibility reasons, the originial access methods are still available for use, although it is suggested to update.

Beispiel 2. imap_get_quota() 4.3 or greater example

<?php
$mbox = imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE limit is: " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quotaroot().

Zurück | Zum Anfang | Nach vorne
imap_fetchstructure | Nach oben | imap_get_quotaroot


imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5)

imap_get_quotaroot -- Retrieve the quota settings per user

Description

array imap_get_quotaroot ( resource imap_stream, string quota_root)

Returns an array of integer values pertaining to the specified user mailbox. All values contain a key based upon the resource name, and a corresponding array with the usage and limit values within.

The limit value represents the total amount of space allowed for this user's total mailbox usage. The usage value represents the user's current total mailbox capacity. This function will return FALSE in the case of call failure, and an array of information about the connection upon an un-parsable response from the server.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream should be the value returned from an imap_open() call. This stream should be opened as the user whose mailbox you wish to check. quota_root should normally be in the form of which mailbox (i.e. INBOX).

Beispiel 1. imap_get_quotaroot() example

<?php
$mbox = imap_open("{your.imap.host}", "kalowsky", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE usage level is: " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quota().

Zurück | Zum Anfang | Nach vorne
imap_get_quota | Nach oben | imap_getacl


imap_getacl

(PHP 5)

imap_getacl -- Gets the ACL for a given mailbox

Description

array imap_getacl ( resource stream_id, string mailbox)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also: imap_setacl().

Zurück | Zum Anfang | Nach vorne
imap_get_quotaroot | Nach oben | imap_getmailboxes


imap_getmailboxes

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_getmailboxes -- Liefert detailierte Informationen über eine Auswahl von Postfächern

Beschreibung

array imap_getmailboxes ( int imap_stream, string ref, string pat)

imap_getmailboxes() liefert ein Array zurück, das für jedes gefundene Postfach ein Objekt mit de Attributen name, delimiter und attributes enthält. name enthält dabei den vollständigen Pfadnamen des Postfachs, delimiter das verwendete Trennzeichen zwischen Postfach-Ebenen, und attributes besteht aus einer Bitmaske, die einzelne Eigenschaften des Postfachs beschreibt:

  • LATT_NOINFERIORS - es existieren keine weiteren Postfächer unterhalb dieses Postfachs

  • LATT_NOSELECT - Dieses "Postfach" ist nur ein Behälter für weitere Postfächer.

    Es kann selbst keine Nachrichten enthalten und somit auch nicht geöffnet werden.

  • LATT_MARKED - Dieses Postfach wurde markiert (nur bei UW-IMAPD).

  • LATT_UNMARKED - Dieses Postfach wurde nicht markiert (nur bei UW-IMAPD).

Namen von Postfächern, die Zeichen außerhalb des druckbaren ASCII-Bereiches enthalten, können mit Hilfe der Funktion imap_utf7_decode() dekodiert werden.

ref sollte normalerweise nur die Spezifikation des Servers in der in imap_open() beschriebenen Form enthalten. Über pat kann ein Startpunkt innerhalb der Postfach-Hierachie vorgegeben werden. Wünschen Sie die Ausgabe aller Postfächer, so übergeben Sie als pat '*'.

Die Zeichen '*' und '%' haben innerhalb von pattern eine besondere Bedeutung:

  • '*' - entspricht beliebig vielen Zeichen (incl. des Trennzeichens zw. Postfach-Namen)

  • '%' - entspricht beliebig vielen Zeichen innerhalb eines Postfach-Namens

So liefert "*" alle verfügbaren Postfächer auf dem Server, "INBOX/*" dementsprechend alle persönlichen Postfächer des aktuellen Benutzers. "%" dagegen liefert nur die Toplevel-Postfächer des Servers, "INBOX/%" dementsprechend nur die Toplevel-Postfächer des aktuellen Benutzers. Ein '%' am Ende von pattern entspricht zusätzlich auch allen Zeichenfolgen, die mit dem Trennzeichen beginnen.

Beispiel 1. imap_getmailboxes() Beispiel

$mbox = imap_open ("{your.imap.host}", "username", "password", OP_HALFOPEN)
    || die ("can't connect: " . imap_last_error());

$list = imap_getmailboxes ($mbox, "{your.imap.host}", "*");
if (is_array ($list)) {
    reset ($list);
    while (list( $key, $val) = each ($list)) {
        print "($key) ";
        print imap_utf7_decode ($val->name) . ",";
        print "'" . $val->delimiter . "',";
       print $val->attributes . "<br>\n";
    }
} else {
    print "imap_getmailboxes failed: " . imap_last_error() . "\n";
}
imap_close ($mbox);

Zurück | Zum Anfang | Nach vorne
imap_getacl | Nach oben | imap_getsubscribed


imap_getsubscribed

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_getsubscribed -- Liefert eine Auswahl aller abbonierten Postfächer

Beschreibung

array imap_getsubscribed ( int imap_stream, string ref, string pattern)

Diese Funktion entspricht weitgehend imap_getmailboxes(), allerdings werden nur Postfächer zurückgegeben, die der aktuelle Benutzer auch abboniert hat.

Zurück | Zum Anfang | Nach vorne
imap_getmailboxes | Nach oben | imap_header


imap_header

(PHP 3, PHP 4 , PHP 5)

imap_header -- Liefert den Kopf einer Nachricht

Beschreibung

object imap_header ( int imap_stream, int msg_number [, int fromlength [, int subjectlength [, string defaulthost]]])

Diese Funktion liefert ein Objekt, das aus verschiedenen Header-Elementen gebildet wird.

remail, date, Date, subject, Subject, in_reply_to, message_id,
newsgroups, followup_to, references

message flags:
Recent - 'R' wenn neu und bereits gelesen,
'N' wenn neu und noch nicht gelesen,
' ' wenn nicht neu
Unseen - 'U' wenn noch nicht gelesen UND nicht neu,
' ' wenn gelesen OR neu und noch nicht gelesen
Answered -'A' wenn beantwortet,
' ' sonst
Deleted - 'D' wenn zum Löschen vorgemerkt
' ' sonst
Draft - 'X' wenn als Entwurf markiert,
' ' sonst
Flagged - 'F' wenn als 'wichtig' markiert,
' ' sonst

Beachten Sie bitte die etwas seltsame Recent/Unseen-Zuordnung.
Eine Nachricht wurde noch nicht gelesen, wenn folgende Bedingung
erfüllt ist:

Unseen == 'U' || Recent == 'N'

toaddress (Inhalt der to: Zeile, bis zu 1024 Zeichen)

to[] (ein Array aus Objekten aus der to: Zeile, jeweils mit:)
personal
adl
mailbox
host

fromaddress (Inhalt der from: Zeile, up to 1024 characters)

from[] (Inhalt der From Zeile, bestehend aus:)
personal
adl
mailbox
host

ccaddress (Inhalt der cc: Zeile, max. 1024 Zeichen)
cc[] (Inhalt der Cc Zeile, bestehend aus:)
personal
adl
mailbox
host

bccaddress (Inhalt der bcc Zeile, max. 1024 Zeichen)
bcc[] (Inhalt der Bcc Zeile, bestehend aus:)
personal
adl
mailbox
host

reply_toaddress (Inhalt der reply_to: Zeile, max. 1024 Zeichen)
reply_to[] (Inhalt der Reply_to Zeile, bestehend aus:)
personal
adl
mailbox
host

senderaddress (Inhalt der sender: Zeile, max. 1024 Zeichen)
sender[] (Inhalt der sender Zeile, bestehend aus:)
personal
adl
mailbox
host

return_path (Inhalt der return-path: Zeile, max. 1024 Zeichen)
return_path[] (Inhalt der return_path Zeile, bestehend aus:)
personal
adl
mailbox
host

udate (Sende-Zeitpunkt der Nachricht in Sekunden seit 1.1.1970)

fetchfrom (From: Zeile, formartiert auf
max. fromlength Zeichen)

fetchsubject (Subject: Zeile, formatiert auf
max. subjectlength Zeichen)

Zurück | Zum Anfang | Nach vorne
imap_getsubscribed | Nach oben | imap_headerinfo


imap_headerinfo

(PHP 3, PHP 4 , PHP 5)

imap_headerinfo -- Read the header of the message

Description

object imap_headerinfo ( resource imap_stream, int msg_number [, int fromlength [, int subjectlength [, string defaulthost]]])

This function returns an object of various header elements.

remail, date, Date, subject, Subject, in_reply_to, message_id,
newsgroups, followup_to, references

message flags:
Recent - 'R' if recent and seen,
'N' if recent and not seen,
' ' if not recent
Unseen - 'U' if not seen AND not recent,
' ' if seen OR not seen and recent
Answered -'A' if answered,
' ' if unanswered
Deleted - 'D' if deleted,
' ' if not deleted
Draft - 'X' if draft,
' ' if not draft
Flagged - 'F' if flagged,
' ' if not flagged

NOTE that the Recent/Unseen behavior is a little odd. If you want to
know if a message is Unseen, you must check for

Unseen == 'U' || Recent == 'N'

toaddress (full to: line, up to 1024 characters)

to[] (returns an array of objects from the To line, containing):
personal
adl
mailbox
host

fromaddress (full from: line, up to 1024 characters)

from[] (returns an array of objects from the From line, containing):
personal
adl
mailbox
host

ccaddress (full cc: line, up to 1024 characters)
cc[] (returns an array of objects from the Cc line, containing):
personal
adl
mailbox
host

bccaddress (full bcc line, up to 1024 characters)
bcc[] (returns an array of objects from the Bcc line, containing):
personal
adl
mailbox
host

reply_toaddress (full reply_to: line, up to 1024 characters)
reply_to[] (returns an array of objects from the Reply_to line,
containing):
personal
adl
mailbox
host

senderaddress (full sender: line, up to 1024 characters)
sender[] (returns an array of objects from the sender line, containing):
personal
adl
mailbox
host

return_path (full return-path: line, up to 1024 characters)
return_path[] (returns an array of objects from the return_path line,
containing):
personal
adl
mailbox
host

udate (mail message date in unix time)

fetchfrom (from line formatted to fit fromlength
characters)

fetchsubject (subject line formatted to fit subjectlength characters)

Zurück | Zum Anfang | Nach vorne
imap_header | Nach oben | imap_headers


imap_headers

(PHP 3, PHP 4 , PHP 5)

imap_headers -- Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs

Beschreibung

array imap_headers ( int imap_stream)

Diese Funktion liefert ein String-Array, das je Nachricht einen String mit vorformatierten Informationen aus dem Nachrichtenheader enthält.

Zurück | Zum Anfang | Nach vorne
imap_headerinfo | Nach oben | imap_last_error


imap_last_error

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_last_error -- Diese Funktion liefert die zuletzt während dieses Seitenzugriffs aufgetretene Fehlermeldung (falls vorhanden)

Beschreibung

string imap_last_error ( void )

Diese Funktion liefert den vollständigen Text der zuletzt aufgetretenen Fehlermeldung dieses Requests. Der Zustand des Fehlerstacks wird durch diese Funktion nicht verändert, weitere Aufrufe von imap_last_error() liefern somit weiter dasselbe Ergebis, solange keine weiteren Fehler aufgetreten sind.

Zurück | Zum Anfang | Nach vorne
imap_headers | Nach oben | imap_list


imap_list

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_list -- Read the list of mailboxes

Description

array imap_list ( resource imap_stream, string ref, string pattern)

Returns an array containing the names of the mailboxes. See imap_getmailboxes() for a description of ref and pattern.

Beispiel 1. imap_list() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$list = imap_list($mbox, "{your.imap.host}", "*");
if (is_array($list)) {
  reset($list);
  while (list($key, $val) = each($list)) {
    echo imap_utf7_decode($val) . "<br />\n";
  }
} else {
  echo "imap_list failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

See also: imap_getmailboxes().

Zurück | Zum Anfang | Nach vorne
imap_last_error | Nach oben | imap_listmailbox


imap_listmailbox

(PHP 3, PHP 4 , PHP 5)

imap_listmailbox -- Liefert eine Liste der Postfach-Namen

Beschreibung

array imap_listmailbox ( int imap_stream, string ref, string pat)

Liefert die Namen der gefundenen Postfächer als String-Array. ref und pat werden in imap_getmailboxes() beschrieben.

Zurück | Zum Anfang | Nach vorne
imap_list | Nach oben | imap_listscan


imap_listscan

(no version information, might be only in CVS)

imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox

Description

array imap_listscan ( resource imap_stream, string ref, string pattern, string content)

Returns an array containing the names of the mailboxes that have content in the text of the mailbox.

This function is similar to imap_listmailbox(), but it will additionally check for the presence of the string content inside the mailbox data.

See imap_getmailboxes() for a description of ref and pattern.

Zurück | Zum Anfang | Nach vorne
imap_listmailbox | Nach oben | imap_listsubscribed


imap_listsubscribed

(PHP 3, PHP 4 , PHP 5)

imap_listsubscribed -- Liefert eine Liste aller abbonierten Postfächer

Beschreibung

array imap_listsubscribed ( int imap_stream, string ref, string pattern)

Diese Funktion entspricht weitgehend imap_listmailbox(), allerdings werden nur Postfächer zurückgegeben, die der aktuelle Benutzer auch abboniert hat.

Zurück | Zum Anfang | Nach vorne
imap_listscan | Nach oben | imap_lsub


imap_lsub

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_lsub -- List all the subscribed mailboxes

Description

array imap_lsub ( resource imap_stream, string ref, string pattern)

Returns an array of all the mailboxes that you have subscribed.

Zurück | Zum Anfang | Nach vorne
imap_listsubscribed | Nach oben | imap_mail_compose


imap_mail_compose

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

imap_mail_compose -- Erzeugt eine MIME-Nachricht aus gegebenen Header- und Body-Teilen

Beschreibung

string imap_mail_compose ( array envelope, array body)

Zurück | Zum Anfang | Nach vorne
imap_lsub | Nach oben | imap_mail_copy


imap_mail_copy

(PHP 3, PHP 4 , PHP 5)

imap_mail_copy -- Kopiert Nachrichten in ein Postfach

Beschreibung

int imap_mail_copy ( int imap_stream, string msglist, string mbox [, int flags])

Diese Funktion kopiert die in msglist angegebenen Nachrichten in das Postfach mbox. msglist kann eine einzelne Nachrichtennummer oder Aufzählungen und Bereiche gemäß RFC2060 enthalten.

Die Bitmaske flags kann aus den foldengen Werten zusammengesetzt werden.

  • CP_UID - Die Nummern in msglist entsprechen den UIDs der gewünschten Nachrichten

  • CP_MOVE - Die ursprunglichen Nachrichten werden nach dem Kopieren gelöscht. copying

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

Zurück | Zum Anfang | Nach vorne
imap_mail_compose | Nach oben | imap_mail_move


imap_mail_move

(PHP 3, PHP 4 , PHP 5)

imap_mail_move -- Verschiebt Nachrichten in ein anderes Postfach

Beschreibung

int imap_mail_move ( int imap_stream, string msglist, string mbox [, int flags])

Diese Funktion verschiebt die in msglist angegebenen Nachrichten in das Postfach mbox. msglist kann eine einzelne Nachrichtennummer oder Aufzählungen und Bereiche gemäß RFC2060 enthalten.

Die Bitmaske flags kann den foldengen Wert enthalten:

  • CP_UID - Die Nummern in msglist entsprechen den UIDs der gewünschten Nachrichten

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

Zurück | Zum Anfang | Nach vorne
imap_mail_copy | Nach oben | imap_mail


imap_mail

(PHP 3>= 3.0.14, PHP 4 , PHP 5)

imap_mail -- Versendet eine Email

Beschreibung

string imap_mail ( string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]])

This function is currently not available for PHP4 on WIN32.

Zurück | Zum Anfang | Nach vorne
imap_mail_move | Nach oben | imap_mailboxmsginfo


imap_mailboxmsginfo

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_mailboxmsginfo -- Liefert Informationen über das aktuelle Postfach

Beschreibung

object imap_mailboxmsginfo ( int imap_stream)

Diese Funktion liefert dieselben Informationen wie imap_status() sowie zusätzlich die Größe des Postfachs in Bytes. Diese wird aus der Summe der Größe der einzelnen Nachrichten gebildet, deshalb benötigt diese Funktion mehr Zeit zur Ausführung als imap_status().

Tabelle 1. Felder des Rückgabe-Objekts

Date | Datum der letzten Änderung
Driver | Driver
Mailbox | Name des Postfachs
Nmsgs | Anzahl der Nachrichten
Recent | Anzahl neuer Nachrichten
Unread | Anzahl ungelesener Nachrichten
Size | Größe des Postfachs in Byte

Beispiel 1. imap_mailboxmsginfo() Beispiel

$mbox = imap_open ("{your.imap.host}INBOX", "username", "password")
    || die ("can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo ($mbox);

if ($check) {
    print "Date: "     . $check->Date    . "<br>\n";
    print "Driver: "   . $check->Driver  . "<br>\n";
    print "Mailbox: "  . $check->Mailbox . "<br>\n";
    print "Messages: " . $check->Nmsgs   . "<br>\n" ;
    print "Recent: "   . $check->Recent  . "<br>\n";
    print "Size: "     . $check->Size    . "<br>\n";
} else {
    print "imap_check() failed: " . imap_lasterror() . "<br>\n";
}
imap_close ($mbox);

Zurück | Zum Anfang | Nach vorne
imap_mail | Nach oben | imap_mime_header_decode


imap_mime_header_decode

(PHP 3>= 3.0.17, PHP 4 , PHP 5)

imap_mime_header_decode -- Decode MIME header elements

Beschreibung

array imap_header_decode ( string text)

imap_mime_header_decode() decodiert MIME Headerfelder, die mehr als nur reinen ASCII-Text enthalten und gemäß RFC2047 codiert wurden. Die decodierten Teilstücke werden in einem Array von Objekten zurückgegeben, wobei jedes Objekt die Felder "text" für den decodierten Teiltext und "charset" für den zugehörigen Zeichensatz enthält. Nichtcodierte Teile des Headerfeldes werden dabei durch den Wert "default" beschrieben.

Im folgenden Beispiel besteht das Headerfeld aus zwei Teilstücken, wobei das erste nach ISO-8859-1 codiert ist:

Beispiel 1. imap_mime_header_decode() example

$text="=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>";

$elements=imap_mime_header_decode($text);
for($i=0;$i<count($elements);$i++) {
       echo "Charset: {$elements[$i]->charset}\n";
       echo "Text: {$elements[$i]->text}\n\n";
}

Zurück | Zum Anfang | Nach vorne
imap_mailboxmsginfo | Nach oben | imap_msgno


imap_msgno

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_msgno -- Liefert den aktuellen Nachrichten-Index zu einer UID

Beschreibung

int imap_msgno ( int imap_stream, int uid)

Diese Funktion liefert den aktuellen Index einer Nachricht innerhalb eines Postfachs aus der eindeutigen UID. Sie ist somit die Umkehrung der Funktion imap_uid().

Zurück | Zum Anfang | Nach vorne
imap_mime_header_decode | Nach oben | imap_num_msg


imap_num_msg

(PHP 3, PHP 4 , PHP 5)

imap_num_msg -- Liefert die Anzahl der Nachrichten im aktuellen Postfach

Beschreibung

int imap_num_msg ( int imap_stream)

Liefert die Anzahl der Nachrichten im aktuellen Postfach

Zurück | Zum Anfang | Nach vorne
imap_msgno | Nach oben | imap_num_recent


imap_num_recent

(PHP 3, PHP 4 , PHP 5)

imap_num_recent -- Liefert die Anzahl der neu hinzugekommenen Nachrichten im aktuellen Postfach

Beschreibung

int imap_num_recent ( int imap_stream)

Liefert die Anzahl der neu hinzugekommenen Nachrichten im aktuellen Postfach

Zurück | Zum Anfang | Nach vorne
imap_num_msg | Nach oben | imap_open


imap_open

(PHP 3, PHP 4 , PHP 5)

imap_open -- Öffnet eine Verbindung zu einem Postfach auf einem POP-, IMAP- oder NNTP-Server

Beschreibung

int imap_open ( string mailbox, string username, string password [, int flags])

Diese Funktion liefert ein Verbindungs-Handle bzw. FALSE bei evtl. auftretenden Fehlern. Verbindungen können nicht nur zu IMAP-, sondern auch zu POP- oder NNTP-Servern aufgebaut werden, wobei dann allerdings nicht der gesamte Funktionsumfang zur Verfügung steht. Liefert ein IMAP-Streamhandle oder FALSE bei Fehlern.

Der Name eines Postfachs setzt sich zusammen aus der Bezeichnung des Servers und dem Pfad des Postfachs auf diesem Server. Der spezielle Name INBOX steht dabei als Synonym für das persönliche Postfach des jeweiligen Benutzers. Die Bezeichnung des Servers setzt sich zusammen aus dem eigentlichen Servernamen oder der entsprechenden IP-Adresse sowie das gewünschte Protokoll (getrennt durch '/') und optional der zu benutzende Port (getrennt durch ':'). Die gesamte Serverbezeichnung wird in '{' und '}' eingeschlossen und muss immer mit angegeben werden. Enthält der Name eines Postfachs Zeichen außerhalb des druckbaren ASCII-Bereiches wie z.B. Umlaute oder das 'ß', so muss er mit Hilfe der Funktion imap_utf7_encode() codiert werden.

Der optionale Parameter flags kann sich aus den folgenden Bitmasken zusammensetzen:

  • OP_READONLY - Über diese Verbindung darf nur lesend zugegriffen werden

  • OP_ANONYMOUS - Bei NNTP-Verbindungen wird die Datei .newsrc nicht aktualisiert

  • OP_HALFOPEN - es wird eine IMAP- oder NNTP-Verbindung aufgebaut, aber noch kein Postfach ausgewählt

  • CL_EXPUNGE - beim Schließen der Verbindung werden alle zum Löschen vorgemerkte Nachrichten endgültig gelöscht (siehe auch imap_delete() und imap_expunge())

Das folgende Beispiel stellt eine Verbindung zu einem lokalen IMAP-Server (IMAP = Port 143) her:

$mbox = imap_open ("{localhost:143}INBOX", "user_id", "password");

Eine Verbindung zu einem lokalen POP3-Server (POP3 = Port 110) erhalten sie mit:

$mbox = imap_open ("{localhost/pop3:110}INBOX", "user_id", "password");

Eine Verbindung zu einem lokalen News-Server (NNTP = Port 119) erhalten Sie mit:

$nntp = imap_open ("{localhost/nntp:119}comp.test", "", "");

Eine Verbindung zu einem nicht lokalen Server können Sie herstellen, indem Sie in den oben genannten Beispielen "localhost" durch den Namen oder die IP-Adresse des Servers ersetzen.

Beispiel 1. imap_open() Beispiel

$mbox = imap_open ("{your.imap.host:143}", "username", "password");

echo "<p><h1>Mailboxes</h1>\n";
$folders = imap_listmailbox ($mbox, "{your.imap.host:143}", "*");
if ($folders == false)
    echo "Call failed<br>\n";
else
    while (list ($key, $val) = each ($folders))
        echo $val . "<br>\n";

echo "<p><h1>Headers in INBOX</h1>\n";
$headers = imap_headers ($mbox);
if ($headers == false)
    echo "Call failed<br>\n";
else
    while (list ($key, $val) = each ($headers))
        echo $val . "<br>n";

imap_close ($mbox);

Zurück | Zum Anfang | Nach vorne
imap_num_recent | Nach oben | imap_ping


imap_ping

(PHP 3, PHP 4 , PHP 5)

imap_ping -- Prüft, ob die aktuelle Verbindung noch verfügbar ist

Beschreibung

int imap_ping ( int imap_stream)

Liefert TRUE, wenn die aktuelle Verbindung noch verfügbar ist, sonst FALSE.

Die imap_ping() Funktion schickt ein Ping-Signal an den Mailserver und prüft so die Verfügbarkeit der Verbindung. Auf diese Weise kann die Verbindung zu einem Server aufrechterhalten werden, der Verbindungen nach einer gewissen Zeit ohne Aktivität automatisch beendet (da PHP-Scripte i.A. nicht sehr lange laufen, kann ich mir kaum vorstellen, das jemand diese Funktion wirklich benötigt).

Zurück | Zum Anfang | Nach vorne
imap_open | Nach oben | imap_qprint


imap_qprint

(PHP 3, PHP 4 , PHP 5)

imap_qprint -- Konvertiert einen quoted-printable kodierten String in einen 8bit-String

Beschreibung

string imap_qprint ( string string)

Konvertiert einen quoted-printable kodierten String (gemäß RFC2045, Abschnitt 6.7) in einen 8bit-String.

Siehe auch imap_8bit().

Zurück | Zum Anfang | Nach vorne
imap_ping | Nach oben | imap_renamemailbox


imap_renamemailbox

(PHP 3, PHP 4 , PHP 5)

imap_renamemailbox -- Ändert den Namen eines Postfachs

Beschreibung

int imap_renamemailbox ( int imap_stream, string old_mbox, string new_mbox)

Die Funktion imap_renamemailbox() ändert den Namen eines Postfachs.

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

Siehe auch imap_createmailbox() und
imap_deletemailbox() sowie
imap_open() für das Format der Parameter
old_mbox und
new_mbox.

Zurück | Zum Anfang | Nach vorne
imap_qprint | Nach oben | imap_reopen


imap_reopen

(PHP 3, PHP 4 , PHP 5)

imap_reopen -- Wechselt das aktuelle Postfach der Verbindung

Beschreibung

int imap_reopen ( string imap_stream, string mailbox [, string flags])

Mit Hilfe dieser Funktion kann auf IMAP- und NNTP-Servern ein anderes Postfach als das bisher aktuelle ausgewählt werden.

Der optionale Parameter flags kann sich aus den folgenden Bitmasken zusammensetzen:

  • OP_READONLY - Auf das Postfach soll nur lesend zugegriffen werden

  • OP_ANONYMOUS - Bei NNTP-Verbindungen wird die persönliche .newsrc Datei nicht aktualisiert

  • OP_HALFOPEN - bei IMAP- oder NNTP-Servern wird in den allgemeinen Verbindungsstatus ohne aktuelles Postfach zurückgeschaltet

  • CL_EXPUNGE - beim Schließen der Verbindung werden alle zum Löschen vorgemerkte Nachrichten endgültig gelöscht (siehe auch imap_delete() und imap_expunge())

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

Zurück | Zum Anfang | Nach vorne
imap_renamemailbox | Nach oben | imap_rfc822_parse_adrlist


imap_rfc822_parse_adrlist

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_rfc822_parse_adrlist -- Parsen eines Adress-Strings

Beschreibung

array imap_rfc822_parse_adrlist ( string address, string default_host)

Diese Funktion zerlegt einen Adress-String gemäß RFC822 und liefert ein Array von Objekten mit einem Eintrag je erkannter Adresse. Die Address-Objekte bestehen dabei jeweils aus den folgenden vier String-Elementen:

  • mailbox - Name des Postfachs (Username)

  • host - Hostname

  • personal - Realer Name des Empfängers

  • adl - at domain source route

Beispiel 1. imap_rfc822_parse_adrlist() Beispiel

$address_string = "Hartmut Holzgraefe <hartmut@php.net>,
                   postmaster@somedomain.net, root";
$address_array  = imap_rfc822_parse_adrlist ($address_string,
                                             "somedomain.net");
if (! is_array ($address_array)) die ("somethings wrong\n");

reset ($address_array);
while (list( $key, $val) = each ($address_array)) {
    print "mailbox : " . $val->mailbox  . "<br>\n";
    print "host    : " . $val->host     . "<br>\n";
    print "personal: " . $val->personal . "<br>\n";
    print "adl     : " . $val->adl      . "<p>\n";
}

Zurück | Zum Anfang | Nach vorne
imap_reopen | Nach oben | imap_rfc822_parse_headers


imap_rfc822_parse_headers

(PHP 4 , PHP 5)

imap_rfc822_parse_headers -- Parse mail headers from a string

Description

object imap_rfc822_parse_headers ( string headers [, string defaulthost])

This function returns an object of various header elements, similar to imap_header(), except without the flags and other elements that come from the IMAP server.

Zurück | Zum Anfang | Nach vorne
imap_rfc822_parse_adrlist | Nach oben | imap_rfc822_write_address


imap_rfc822_write_address

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_rfc822_write_address -- Bildet aus Realnamen, Postfach und Server eine korekt formatierte Mail-Adresse

Beschreibung

string imap_rfc822_write_address ( string mailbox, string host, string personal)

Bildet aus Realnamen, Postfach und Server eine korekt formatierte Mail-Adresse gemäß RFC822.

Beispiel 1. imap_rfc822_write_address() Beispiel

print imap_rfc822_write_address ("hartmut", "cvs.php.net",
                                 "Hartmut Holzgraefe);

Zurück | Zum Anfang | Nach vorne
imap_rfc822_parse_headers | Nach oben | imap_scanmailbox


imap_scanmailbox

(PHP 3, PHP 4 , PHP 5)

imap_scanmailbox -- Druchsucht Postfächer nach einen String

Beschreibung

array imap_scanmailbox ( int imap_stream, string ref, string pat, string content)

Diese Funktion arbeitet ähnlich wie imap_listmailbox(). Sie gibt aber nur die Namen der Postfächer zurück, in denen irgendwo der Text content vorkommt.

Zurück | Zum Anfang | Nach vorne
imap_rfc822_write_address | Nach oben | imap_search


imap_search

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_search -- Sucht Nachrichten, die den übergebenen Suchkriterien entsprechen

Beschreibung

array imap_search ( int imap_stream, string criteria, int flags)

Diese Funktion durchsucht die Nachrichten des aktuellen Postfachs und liefert ein Array mit den Nummern der Nachrichten, die mit den angegebenen Kriterien übereinstimmen. Der Parameter criteria enthält einen String, der sich aus den folgenden Suchbegriffen zusammensetzen kann

  • ALL - liefert alle Nachrichten, die den restlichen Kriterien entsprechen

  • ANSWERED - das \\ANSWERED Flag der Nachricht ist gesetzt

  • BCC "string" - Das Bcc: Feld der Nachricht enthält "string"

  • BEFORE "date" - Das Date: Feld der Nachricht enthält ein Datum, das vor dem in "date" angegebenen liegt

  • BODY "string" - Im Inhalt der Nachricht ist "string" enthalten

  • CC "string" - Das Cc: Feld der Nachricht enthält "string"

  • DELETED - Die Nachricht ist zum Löschen vorgemerkt

  • FLAGGED - Das \\FLAGGED (wichtig bzw. dringend) Flag der Nachricht ist gesetzt

  • FROM "string" - Das From: Feld der Nachricht enthält "string"

  • KEYWORD "string" - Das Feld Keyword: enthält "string"

  • NEW - die Nachricht ist neu

  • OLD - die Nachricht ist nicht neu

  • ON "date" - Das Datum in Date: entspricht "date"

  • RECENT - Das \\RECENT Flag ist gesetzt

  • SEEN - Das \\SEEN Flag ist gesetzt, die Nachricht wurde bereits einmal abgerufen

  • SINCE "date" - Das Datum "date" liegt vor dem im Date: Feld der Nachricht

  • SUBJECT "string" - "string" ist Teil des Betreffs der Nachricht

  • TEXT "string" - "string" ist Teil der Nachricht (Kopf oder Inhalt)

  • TO "string" - Das To: Feld der Nachricht enthält "string"

  • UNANSWERED - Die Nachricht wurde nicht beantwortet, das \\Answered Flag ist nicht gesetzt

  • UNDELETED - Die Nachricht ist nicht zum Löschen vorgemerkt

  • UNFLAGGED - Die Nachricht ist nicht als 'wichtig' markiert

  • UNKEYWORD "string" - "string" ist nicht Schlüsselwort der Nachricht

  • UNSEEN - Die Nachricht wurde bisher nicht gelesen

Argumente, die Leerzeichen enthalten, müssen dabei in Anführungszeichen eingebettet werden.

Um zum Beispiel alle unbeantworteten Nachrichten von Mama zu finden übergeben Sie als criteria: "UNANSWERED FROM Mama". Die Suche scheint nicht zwischen Groß- und Kleinschreibung zu unterscheiden. Die Liste der Suchbegriffe entstand nach Inspektion der UW c-client Sourcen und ist vermutlich nicht vollständig (siehe auch RFC 2060, Abschnitt 6.4.4).

Enthält der optionale Parameter flags den Wert SE_UID, so werden UIDs anstelle von laufenden Nachrichtennummern zurückgegeben.

Zurück | Zum Anfang | Nach vorne
imap_scanmailbox | Nach oben | imap_set_quota


imap_set_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_set_quota -- Sets a quota for a given mailbox

Description

bool imap_set_quota ( resource imap_stream, string quota_root, int quota_limit)

Sets an upper limit quota on a per mailbox basis. This function requires the imap_stream to have been opened as the mail administrator account. It will not work if opened as any other user.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream is the stream pointer returned from a imap_open() call. This stream must be opened as the mail administrator, other wise this function will fail. quota_root is the mailbox to have a quota set. This should follow the IMAP standard format for a mailbox, 'user.name'. quota_limit is the maximum size (in KB) for the quota_root.

Returns TRUE on success and FALSE on error.

Beispiel 1. imap_set_quota() example

<?php
$mbox = imap_open("{your.imap.host:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Error in setting quota\n";
    return;
}

imap_close($mbox);
?>

See also imap_open() and imap_set_quota().

Zurück | Zum Anfang | Nach vorne
imap_search | Nach oben | imap_setacl


imap_setacl

(PHP 4 >= 4.1.0, PHP 5)

imap_setacl -- Sets the ACL for a giving mailbox

Description

bool imap_setacl ( resource stream_id, string mailbox, string id, string rights)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also: imap_getacl().

Zurück | Zum Anfang | Nach vorne
imap_set_quota | Nach oben | imap_setflag_full


imap_setflag_full

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_setflag_full -- Setzt Flags einer Nachricht

Beschreibung

string imap_setflag_full ( int stream, string sequence, string flag, string options)

Diese Funktion setzt die übergebenen Flags für eine oder mehrere Nachrichten.

Mögliche Flags sind "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", "\\Draft", und "\\Recent" (siehe auch RFC2060)

Enthält options den Wert ST_UID, so werden die übergebenen Nachrichtennummern als UIDs anstelle von Indizes interpretiert.

Beispiel 1. imap_setflag_full() Beispiel

$mbox = imap_open ("{your.imap.host:143}", "username", "password")
     || die ("can't connect: " . imap_last_error());

$status = imap_setflag_full ($mbox, "2,5", "\\Seen \\Flagged");
if (!$status) echo imap_last_error();

imap_close ($mbox);

Zurück | Zum Anfang | Nach vorne
imap_setacl | Nach oben | imap_sort


imap_sort

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_sort -- Sortiert Nachrichten eines Postfachs

Beschreibung

array imap_sort ( int stream, int criteria, int reverse, int options)

Diese Funktion liefert die Indizes der Nachrichten eines Postfachs als sortiertes Array zurück. Als Sortier-Kriterium kann im Parameter criteria genau einer der folgenden Werte angegeben werden

  • SORTDATE Versanddatum der Nachricht

  • SORTARRIVAL Empfangsdatum der Nachricht

  • SORTFROM Benutzername des ersten From: Eintrags

  • SORTSUBJECT Betreff der Nachricht

  • SORTTO Benutzername des ersten To: Eintrags

  • SORTCC Benutzername des ersten CC: Eintrags

  • SORTSIZE Größe der Nachricht in Bytes

Ist reverse ungleich 0, so werden die Nachrichten in umgekehrter Reihenfolge übergeben.

Die Bitmaske options kann aus folgenden werten zusammengesetzt werden:

  • SE_UID Es werden UIDs anstelle von Indizes zurückgegeben

  • SE_NOPREFETCH Es werden keine Nachrichten im Cache gehalten

Zurück | Zum Anfang | Nach vorne
imap_setflag_full | Nach oben | imap_status


imap_status

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_status -- Liefert ausgewählte Statusinformationen zum angegebenen Postfach

Beschreibung

object imap_status ( int imap_stream, string mailbox, int options)

Diese Funktion liefert Statusinformationen zum mit mailbox angegebenen Postfach. Im der Bitmaske options können dabei folgende Funktionen ausgewählt werden, die den Inhalt des zurückgegebenen Objekts beeinflussen:

  • SA_MESSAGES - das Feld messages wird mit der Anzahl der enthaltenen Nachrichten gefüllt

  • SA_RECENT - das Feld recent wird mit der Anzahl der neuen Nachrichten gefüllt

  • SA_UNSEEN - das Feld unseen wird mit der Anzahl der noch nicht abgerufenen Nachrichten gefüllt

  • SA_UIDNEXT - das Feld uidnext wird mit der UID gefüllt, die die nächste in diesem Postfach abgelegte Nachricht erhalten wird

  • SA_UIDVALIDITY - das Feld uidvalidity wird mit einer Konstanten gefüllt, die sich immer dann verändern wird, wenn die UIDs der Nachrichten im Postfach sich vermutlich verändert haben

  • SA_ALL - es werden alle beschriebenen Felder gefüllt

Status->flags wird ebenfalls gesetzt und enthält eine Bitmaske aus den oben genannten Werten, die die tatsächlich zurückgegebenen Informationen beschreibt.

Beispiel 1. imap_status() Beispiel

$mbox = imap_open ("{your.imap.host}", "username", "password", OP_HALFOPEN)
      || die ("can't connect: " . imap_last_error());

$status = imap_status ($mbox, "{your.imap.host}INBOX", SA_ALL);
if($status) {
    print ("Messages:    " . $status->messages   ) . "<br>\n";
    print ("Recent:      " . $status->recent     ) . "<br>\n";
    print ("Unseen:      " . $status->unseen     ) . "<br>\n";
    print ("UIDnext:     " . $status->uidnext    ) . "<br>\n";
    print ("UIDvalidity: " . $status->uidvalidity) . "<br>\n";
} else {
    print "imap_status failed: " . imap_last_error() . "\n";
}
imap_close ($mbox);

Zurück | Zum Anfang | Nach vorne
imap_sort | Nach oben | imap_subscribe


imap_subscribe

(PHP 3, PHP 4 , PHP 5)

imap_subscribe -- Abbonieren eines Postfachs

Beschreibung

int imap_subscribe ( int imap_stream, string mbox)

Abbonieren eines Postfachs.

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

Zurück | Zum Anfang | Nach vorne
imap_status | Nach oben | imap_thread


imap_thread

(PHP 4 >= 4.1.0, PHP 5)

imap_thread -- Return threaded by REFERENCES tree

Description

array imap_thread ( resource stream_id [, int options])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
imap_subscribe | Nach oben | imap_timeout


imap_timeout

(PHP 4 >= 4.3.3, PHP 5)

imap_timeout -- Set or fetch imap timeout

Description

mixed imap_timeout ( int timeout_type [, int timeout])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
imap_thread | Nach oben | imap_uid


imap_uid

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_uid -- Liefert die UID zu einem gegeben Nachrichten-Index

Beschreibung

int imap_uid ( int imap_stream, int msgno)

Diese Funktion ermittelt die UID zu einem gegebenen Nachrichten-Index. Während die Nachrichten-Indices einfach von eins an aufsteigend durchnummeriert sind und sich z.B. bei Löschoperationen ändern können, ist die UID einer Nachricht innerhalb eines Postfachs unveränderbar eindeutig. ( Siehe auch imap_msgno()).

Zurück | Zum Anfang | Nach vorne
imap_timeout | Nach oben | imap_undelete


imap_undelete

(PHP 3, PHP 4 , PHP 5)

imap_undelete -- Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück

Beschreibung

int imap_undelete ( int imap_stream, int msg_number)

Diese Funktion nimmt eine evtl. durch die Funktionen imap_delete() oder imap_mail_move() gesetzte Löschmarkierung für die durch msg_number spezifizierte Nachricht zurück.

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

Zurück | Zum Anfang | Nach vorne
imap_uid | Nach oben | imap_unsubscribe


imap_unsubscribe

(PHP 3, PHP 4 , PHP 5)

imap_unsubscribe -- Abbonement eines Postfachs beenden

Beschreibung

int imap_unsubscribe ( int imap_stream, string mbox)

Abbonement eines Postfachs beenden.

Liefert TRUE bei Erfolg und FALSE bei Fehlern.

Zurück | Zum Anfang | Nach vorne
imap_undelete | Nach oben | imap_utf7_decode


imap_utf7_decode

(PHP 3>= 3.0.15, PHP 4 , PHP 5)

imap_utf7_decode -- Dekodiert einem String im modifizierten UTF-7 Format.

Beschreibung

string imap_utf7_decode ( string text)

Dekodiert den String text aus dem modifizierten UTF-7 Format in 8Bit-Text.

Liefert den dekodierten Text oder FALSE, wenn die Eingabe nicht gemäß modifiziertem UTF-7 formatiert war. Diese Funktion wird benötigt, um Postfachnamen zu decodieren, die internationale Sonderzeichen, wie z.B. unsere Umlaute, enthalten.

(siehe RFC2152 für UTF-7 und RFC2060, Abschnitt 5.1.3 für modifiziertes UTF-7)

Zurück | Zum Anfang | Nach vorne
imap_unsubscribe | Nach oben | imap_utf7_encode


imap_utf7_encode

(PHP 3>= 3.0.15, PHP 4 , PHP 5)

imap_utf7_encode -- Kodiert Text im modifizieren UTF-7 Format

Beschreibung

string imap_utf7_encode ( string data)

Konvertiert den in data übergebenen Text in das modifizierte UTF-7 Format. Diese Funktion wird benötigt, um Postfachnamen darzustellen, die internationale Sonderzeichen, wie z.B. unsere Umlaute, enthalten.

(siehe RFC2152 für UTF-7 und RFC2060, Abschnitt 5.1.3 für modifiziertes UTF-7)

Zurück | Zum Anfang | Nach vorne
imap_utf7_decode | Nach oben | imap_utf8


imap_utf8

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imap_utf8 -- Konvertiert Text zu UTF8

Beschreibung

string imap_utf8 ( string text)

Konvertiert den übergebenen String in das UTF8-Format gemäß RFC2044.

Zurück | Zum Anfang | Nach vorne
imap_utf7_encode | Nach oben | Informix Funktionen


Informix Funktionen

PHP Handbuch
Zurück Nach vorne

XLIII. Informix Funktionen

Einführung

Der Informix-Treiber für Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x und IDS 2000 ist in "ifx.ec" und "php3_ifx.h" im Verzeichnis der Informix Erweiterung implementiert. Die Unterstützung für IDS 7.x ist mit der vollen Unterstützung für TEXT- und BYTE-Felder ziemlich vollständig. Die Unterstützung von IUS 9.x ist nur teilweise fertig: die neuen Datentypen gibt es zwar, aber die Unterstützung von SLOB- und CLOB-Datentypen ist noch in Arbeit.

Anforderungen

Bemerkungen zur Konfiguration: Sie brauchen ESQL/C, um den PHP Informix-Treiber zu kompilieren. ESQL/C Versionen ab 7.2x sollten genügen. ESQL/C ist jetzt Teil des Informix Client SDK.

Versichern Sie sich, dass die Variable "INFORMIXDIR" gesetzt ist und dass Sie $INFORMIXDIR/bin in Ihren Pfad eingebunden haben, bevor Sie das "configure" Skript aufrufen.

Installation

Anmerkung: Das Konfigurationsskript findet die Bibliotheken und Include-Verzeichnisse selbständig, wenn Sie configure mit der Option --with_informix=yes aufrufen. Sie können diese automatische Erkennung überschreiben, wenn Sie in der Systemumgebung "IFX_LIBDIR", "IFX_LIBS" und "IFX_INCDIR" setzen. Das Konfigurationsskript wird ebenso versuchen, die Version Ihres Informix Servers zu erkennen. Es setzt die Variable "HAVE_IFX_IUS" für eine bedingte Kompilation, falls Ihre Version >= 9.00 ist.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Anmerkung: Die Umgebungsvariablen INFORMIXDIR und INFORMIXSERVER müssen für den PHP-Treiber verfügbar sein und das INFORMIX bin-Verzeichnis muss im Pfad enthalten sein. Prüfen Sie diese Voraussetzungen mit einem Skript, das einen Aufruf von phpinfo() enthält, bevor Sie testen. Die Ausgabe von phpinfo() sollte diese Umgebungsvariablen auflisten. Dies ist sowohl für CGI PHP als auch Apache mod_php TRUE. Möglicherweise müssen Sie diese Umgebungsvariablen in Ihrem Apache Startskript setzen.

Die Informix shared libraries sollten für den Lader ebenfalls verfügbar sein (überprüfen Sie den LD_LIBRARY_PATH oder ld.so.conf/ldconfig).

Einige Anmerkungen zum Gebrauch von BLOBs (TEXT- und BYTE Felder): BLOBs werden normalerweise durch BLOB-Identifikatoren adressiert. Select Abfragen geben eine "blob id" für alle TEXT- und BYTE-Felder zurück. Sie können die Inhalte mit "string_var = ifx_get_blob($blob_id);" auslesen, falls Sie angeben, dass Sie die BLOBS in den Speicher schreiben möchten (mit "ifx_blobinfile(0);"). Wenn Sie die Inhalte von BLOB-Felder lieber in eine Datei ausgeben möchten, benutzen Sie "ifx_blobinfile(1);" und mit "ifx_get_blob($blob_id);" ermitteln Sie den Dateinamen. Benutzen Sie normale Datei I/O-Routinen, um die Inhalte von BLOBs zu erhalten.

Bei insert/update Abfragen müssen Sie diese "blob id's" mit der Funktion "ifx_create_blob();" selber erzeugen. Danach schreiben Sie die blob id's in ein Array und ersetzen die BLOB-Felder durch ein Fragezeichen (?) im Abfragestring. Für die Inhalte der BLOBs, die mit der Funktion ifx_update_blob() gesetzt werden, sind Sie bei updates/inserts selber verantwortlich.

Das Verhalten einer BLOB-Spalte kann auch zur Laufzeit durch Konfigurationsvariablen verändert werden.

Konfigurationsvariable : ifx.textasvarchar

Konfigurationsvariable : ifx.byteasvarchar

Laufzeitfunktionen :

ifx_textasvarchar(0) : benutzt bei SELECT Abfragen von TEXT-Felder die blob-id

ifx_byteasvarchar(0) : benutzt bei SELECT Abfragen von BYTE-Felder die blob-id

ifx_textasvarchar(1) : gibt TEXT-Felder so zurück, als wären es VARCHAR Felder, so dass Sie keine blob-id für select Abfragen brauchen.

ifx_byteasvarchar(1) : gibt BYTE-Felder so zurück, als wären es VARCHAR Felder, so dass Sie keine blob-id für select Abfragen brauchen.

Konfigurationsvariable : ifx.blobinfile

Laufzeitfunktionen :

ifx_blobinfile_mode(0) : gibt BYTE-Felder in den Speicher zurück, mit der blob-id können Sie auf den Inhalt zugreifen.

ifx_blobinfile_mode(1) : gibt BYTE-Felder in einer Datei zurück, mit der blob-id können Sie den Dateinamen ermitteln.

Wenn Sie ifx_text/byteasvarchar auf 1 setzen, können Sie TEXT- und BYTE-Felder in select Abfragen genauso benutzen, wie normale (allerdings sehr lange) VARCHAR-Felder. Da alle Zeichenketten in PHP "gezählt" werden, bleibt dies "binary safe". Es bleibt Ihnen überlassen, korrekt damit umzugehen. Die zurückgegebenen Daten können alles mögliche enthalten, so dass Sie für die Inhalte verantwortlich sind.

Wenn Sie ifx_blobinfile auf 1 setzen, benutzen Sie den Dateinamen, der von ifx_get_blob(..) zurückgegeben wird, um auf den Inhalt des BLOB zuzugreifen. Beachten Sie, dass Sie in diesem Fall FÜR DAS LÖSCHEN DER TEMPORÄREN DATEIEN, DIE VON INFORMIX ERSTELLT WERDEN VERANTWORTLLICH SIND, wenn sie ein Tupel auslesen. Jedes neue Tupel, das gelesen wird, erzeugt für jedes BYTE-Feld eine neue temporäre Datei.

Der Speicherort für die temporären Dateien kann mit der Umgebungsvariablen "blobdir" beeinflusst werden, die Standardeinstellung ist "." (das aktuelle Verzeichnis). Etwas Ähnliches wie : putenv(blobdir=tmpblob"); erleichtert das Bereinigen der temporären Dateien, die versehentlich stehen geblieben sind (ihre Namen beginnen alle mit "blb").

Automatisches Abschneiden von Leerzeichen bei "char" (SQLCHAR und SQLNCHAR) Daten: Dies kann mit einer Konfigurationsvariablen eingestellt werden

ifx.charasvarchar : falls auf 1 gesetzt, werden abschliessende Leerzeichen automatisch abgeschnitten. Dies erspart den Aufruf der chop() Funktion.

NULL-Werte: Wenn die Konfigurationsvariable ifx.nullformat (und die Laufzeitfunktion ifx_nullformat()) auf TRUE gesetzt sind, werden NULL-werte in Spalten als Zeichenkette NULL zurückgegeben, wenn die Variable auf FALSE gesetzt ist, werden leere Strings für NULLwerte zurückgegeben. So können sie zwischen NULLwerten und leeren Spalten unterscheiden.

Tabelle 1. Informix Konfigurationsoptionen

Name | Standardwert | Änderbar
ifx.allow_persistent | "1" | PHP_INI_SYSTEM
ifx.max_persistent | "-1" | PHP_INI_SYSTEM
ifx.max_links | "-1" | PHP_INI_SYSTEM
ifx.default_host | NULL | PHP_INI_SYSTEM
ifx.default_user | NULL | PHP_INI_SYSTEM
ifx.default_password | NULL | PHP_INI_SYSTEM
ifx.blobinfile | "1" | PHP_INI_ALL
ifx.textasvarchar | "0" | PHP_INI_ALL
ifx.byteasvarchar | "0" | PHP_INI_ALL
ifx.charasvarchar | "0" | PHP_INI_ALL
ifx.nullformat | "0" | PHP_INI_ALL
Weitere Details und Definitionen der PHP_INI_* Konstanten finden sie bei der Funktion ini_set().

Hier folgt eine kurze Beschreibung der Konfigurationseinstellungen.

ifx.allow_persistent boolean

Bestimmt, ob persistente Verbindungen zugelassen sind.

ifx.max_persistent integer

Gibt die maximale Anzahl persistenter Verbindungen pro Prozess an.

ifx.max_links integer

Gibt die maximale Anzahl der Verbindungen zum Informix Server pro Prozess an, einschliesslich der persistenten Verbindungen.

ifx.default_host string

Der Standardhost, zu dem verbunden wird, wenn kein Host in ifx_connect() oder ifx_pconnect() angegeben wurde. Diese Einstellung kann im safe mode nicht verwendet werden.

ifx.default_user string

Der Standardbenutzer, wenn kein Benutzer in ifx_connect() oder ifx_pconnect() angegeben wurde. Diese Einstellung kann im safe mode nicht verwendet werden.

ifx.default_password string

Das Standardpasswort, wenn kein Passwort in ifx_connect() oder ifx_pconnect() angegeben wurde. Diese Einstellung kann im safe mode nicht verwendet werden.

ifx.blobinfile boolean

TRUE, falls blob-Spalten in eine Datei ausgegeben werden sollen, FALSE, falls blob-Spalten in den Speicher ausgegeben werden sollen. Sie können diese Einstellung mit der Funktion ifx_blobinfile_mode() zur Laufzeit ändern.

ifx.textasvarchar boolean

TRUE, falls text-Spalten in select Abfragen als normale Strings zurückgegeben werden sollen. FALSE, falls Sie blob-id Parameter benutzen wolen. Sie können diese Einstellung mit der Funktion ifx_textasvarchar() zur Laufzeit ändern.

ifx.byteasvarchar boolean

TRUE, falls BYTE-Spalten in select Abfragen als normale Strings zurückgegeben werden sollen. FALSE, falls Sie blob-id Parameter benutzen wolen. Sie können diese Einstellung mit der Funktion ifx_textasvarchar() zur Laufzeit ändern.

ifx.charasvarchar boolean

TRUE, falls Sie abschliesende Leerzeichen von CHAR Spalten beim Auslesen abschneiden wollen.

ifx.nullformat boolean

TRUE, falls der Spaltenwert NULL als Literal "NULL" zurückgegeben werden soll. FALSE, falls für Nullwerte leere Strigs "" zurückgegeben werden sollen. Sie können diese Einstellung mit der Funktion ifx_nullformat() zur Laufzeit ändern.

Resource Typen

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
ifx_affected_rows -- Gibt die Anzahl der Datensätze zurück, die von einer Abfrage betroffen sind
ifx_blobinfile_mode -- Setzt den Standardmodus für BLOBs bei allen SELECT Abfragen
ifx_byteasvarchar -- Setzt den Standard Byte-Modus
ifx_close -- Schliesst eine Informix Verbindung
ifx_connect -- Öffnet eine Verbindung zu einem Informix Server
ifx_copy_blob -- Dupliziert ein gegebenes BLOB (Binary Large Object)
ifx_create_blob -- Erzeugt ein BLOB (Binary Large Object)
ifx_create_char -- Erzeugt ein Zeichen-Objekt
ifx_do -- Führt eine vorbereitete Abfrage aus
ifx_error -- Gibt den Fehlercode des letzten Informix Aufrufs zurück
ifx_errormsg -- Gibt die Fehlermeldung des zuletzt aufgetretenen Informix Fehlers zurück
ifx_fetch_row -- Holt eine Zeile als aufgezähltes Array
ifx_fieldproperties -- Gibt eine Liste mit den Feldeigenschaften zurück
ifx_fieldtypes -- Gibt eine Liste der Informix SQL Felder zurück
ifx_free_blob -- Löscht ein Blob Objekt
ifx_free_char -- Löscht ein CHAR Objekt
ifx_free_result -- Gibt den belegten Speicher einer Ergebnismenge wieder frei
ifx_get_blob -- Gibt den Inhalt eines Large Objects zurück
ifx_get_char -- Gibt den Inhalt eines Zeichen-Objekts zurück
ifx_getsqlca -- Gibt den Inhalt von sqlca.sqlerrd[0..5] nach einer Abfrage zurück
ifx_htmltbl_result -- Gibt alle Zeilen einer Abfrage als HTML-Tabelle formatiert zurück
ifx_nullformat -- Setzt den aktuellen Rückgabewert für Nullwerte beim Lesen von Zeilen
ifx_num_fields -- Gibt die Anzahl der Spalten einer Abfrage zurück
ifx_num_rows -- Count the rows already fetched from a query
ifx_pconnect -- Öffnet eine persistente Informix Verbindung
ifx_prepare -- Stellt einen SQL Befehl zur späteren Ausführung bereit
ifx_query -- Schickt eine Informix Abfrage an den Server
ifx_textasvarchar -- Setzt den Standard-Textmodus
ifx_update_blob -- Aktualisiert den Inhalt eines Blob-Objekts
ifx_update_char -- Aktualisiert den Inhalt eines Char-Objekts
ifxus_close_slob -- Löscht ein Slob-Objekt
ifxus_create_slob -- Erzeugt ein Slob-Objekt und öffnet es
ifxus_free_slob -- Löscht ein Slob-Objekt
ifxus_open_slob -- Öffnet ein Slob-Objekt
ifxus_read_slob -- Liest nbytes aus einem Slob-Objekt
ifxus_seek_slob -- Setzt die aktuelle Dateizeiger- oder Suchposition
ifxus_tell_slob -- Gibt die aktuelle Dateizeiger- oder Suchposition zurück
ifxus_write_slob -- Schreibt einen String in ein Slob-Objekt

Zurück | Zum Anfang | Nach vorne
imap_utf8 | Nach oben | ifx_affected_rows


ifx_affected_rows

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_affected_rows -- Gibt die Anzahl der Datensätze zurück, die von einer Abfrage betroffen sind

Beschreibung

int ifx_affected_rows ( int result_id)

result_id ist eine gültige Ergebniskennung, die von ifx_query() oder ifx_prepare() zurückgegeben wurde.

Gibt die Anzahl der Datensätze zurück, die von der Abfrage mit der Ergebniskennung result_id betroffen sind.

Bei inserts, updates und deletes wird die Anzahl der tatsächlich betroffenen Datensätze (sqlerrd[2]) zurückgegeben. Bei selects wird die Anzahl geschätzt (sqlerrd[0]). Verlassen Sie sich nicht darauf. Der Datenbankserver kann niemals die exakte Anzahl der Datensätze angeben, die ein SELECT zurückgeben wird, weil er zu diesem Zeitpunkt noch nicht einmal mit dem Holen der Datensätze begonnen hat (erst nach einem "PREPARE", wenn der Optimierer den Abfrageplan erstellt hat).

Diese Funktion ist nützlich, um Abfrageergebnisse nach einem ifx_prepare() auf eine vernünftige Größe zu begrenzen.

Siehe auch: ifx_num_rows()

Beispiel 1. Informix affected rows

$rid = ifx_prepare ("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    ... Fehler ...
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Zu viele Datensätze in der Ergebnismenge (%d)\n<br>", $rowcount);
    die ("Bitte begrenzen Sie Ihre Abfrage<br>\n");
}

Zurück | Zum Anfang | Nach vorne
Informix Funktionen | Nach oben | ifx_blobinfile_mode


ifx_blobinfile_mode

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_blobinfile_mode -- Setzt den Standardmodus für BLOBs bei allen SELECT Abfragen

Beschreibung

void ifx_blobinfile_mode ( int mode)

Setzt den Standardmodus für BLOBs bei allen SELECT Abfragen. Modus "0" bedeutet, dass Byte-BLOBs im Speicher gehalten werden und Modus "1" bedeutet, dass Byte-BLOBs in einer Datei gespeichert werden.

Zurück | Zum Anfang | Nach vorne
ifx_affected_rows | Nach oben | ifx_byteasvarchar


ifx_byteasvarchar

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_byteasvarchar -- Setzt den Standard Byte-Modus

Beschreibung

void ifx_byteasvarchar ( int mode)

Setzt den Standard Byte-Modus für alle SELECT Abfragen. Modus "0" gibt eine blob-id zurück und Modus "1" gibt ein Ergebnis vom Typ VARCHAR mit einem Textinhalt zurück.

Zurück | Zum Anfang | Nach vorne
ifx_blobinfile_mode | Nach oben | ifx_close


ifx_close

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_close -- Schliesst eine Informix Verbindung

Beschreibung

int ifx_close ( [int link_identifier])

Gibt immer TRUE zurück.

ifx_close() schliesst die Verbindung zu der Informix Datenbank, die mit der angegebenen Verbindungskennung verknüpft ist. Falls keine Verbindungskennung angegeben ist, wird die zuletzt geöffnete Verbindung angenommen.

Beachten Sie, dass dies normalerweise nicht notwendig ist, da nichtpersistente Verbindungen automatisch mit dem Ende des Skripts geschlossen werden.

ifx_close() schliesst keine persistenten Verbindungen, die mit ifx_pconnect() geöffnet wurden.

Siehe auch: ifx_connect() und ifx_pconnect().

Beispiel 1. Eine Informix Verbindung schliessen

$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
... einige Abfragen und mehr ...
ifx_close($conn_id);

Zurück | Zum Anfang | Nach vorne
ifx_byteasvarchar | Nach oben | ifx_connect


ifx_connect

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_connect -- Öffnet eine Verbindung zu einem Informix Server

Beschreibung

int ifx_connect ( [string database [, string userid [, string password]]])

Gibt bei Erfolg eine Verbindungskennung zurück oder FALSE, falls ein Fehler aufgetreten ist.

ifx_connect() erstellt eine Verbindung zu einem Informix Server. Alle Argumente sind optional und wenn sie fehlen, werden die Standardeinstellungen benutzt, die in der Konfigurationsdatei angegeben wurden: ifx.default_host für den Host (Informix Bibliotheken benutzen die Umgebungsvariable INFORMIXSERVER falls nichts anderes angegeben ist), ifx.default_user für den Benutzer, ifx.default_password für das Passwort (dies bleibt leer, falls kein Passwort definiert ist).

Falls ein zweiter Aufruf von ifx_connect() mit denselben Verbindungsoptionen erfolgt, wird keine neue Verbindung aufgebaut, stattdessen wird die Verbindungskennung der bereits geöffneten Verbindung zurückgegeben.

Die Verbindung zum Server wird geschlossen, sobald die Ausführung des Skripts beendet ist, es sei denn, sie wurde schon früher durch einen expliziten Aufruf von ifx_close() geschlossen.

Siehe auch ifx_pconnect() und ifx_close().

Beispiel 1. Zu einer Informix Datenbank verbinden

$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");

Zurück | Zum Anfang | Nach vorne
ifx_close | Nach oben | ifx_copy_blob


ifx_copy_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_copy_blob -- Dupliziert ein gegebenes BLOB (Binary Large Object)

Beschreibung

int ifx_copy_blob ( int bid)

Dupliziert das gegebene BLOB. bid ist die ID des BLOB Objekts.

Gibt bei Erfolg eine neue Objekt-ID für das BLOB zurück oder FALSE, falls ein Fehler auftrat.

Zurück | Zum Anfang | Nach vorne
ifx_connect | Nach oben | ifx_create_blob


ifx_create_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_create_blob -- Erzeugt ein BLOB (Binary Large Object)

Beschreibung

int ifx_create_blob ( int type, int mode, string param)

Erzeugt ein BLOB.

Typ: 1 = TEXT, 0 = BYTE

Modus: 0 = Der Inhalt des BLOB wird in den Speicher geschrieben, 1 = der Inhalt des BLOB wird in eine Datei geschrieben,

Parameter: falls Modus = 0: Zeiger auf denInhalt, falls Modus = 1: Zeiger auf die Datei.

Gibt bei einem Fehler FALSE zurück, anderenfalls die ID des neuen BLOBs.

Zurück | Zum Anfang | Nach vorne
ifx_copy_blob | Nach oben | ifx_create_char


ifx_create_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_create_char -- Erzeugt ein Zeichen-Objekt

Beschreibung

int ifx_create_char ( string param)

Erzeugt ein Zeichen-Objekt mit dem Inhalt param.

Zurück | Zum Anfang | Nach vorne
ifx_create_blob | Nach oben | ifx_do


ifx_do

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_do -- Führt eine vorbereitete Abfrage aus

Beschreibung

int ifx_do ( int result_id)

Bei Erfolg wird TRUE zurückgegeben, bei einem Fehler FALSE.

Führt eine zuvor bereitgestellte Abfrage aus oder öffnet einen Cursor dafür.

Bei einem Fehler wird result_id nicht freigegeben.

Die exakte Anzahl der betroffenen Datensätze für Abfragen, die keine SELECTs sind, wird gesetzt und kann mit ifx_affected_rows() ermittelt werden.

Siehe auch: ifx_prepare().

Zurück | Zum Anfang | Nach vorne
ifx_create_char | Nach oben | ifx_error


ifx_error

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_error -- Gibt den Fehlercode des letzten Informix Aufrufs zurück

Beschreibung

string ifx_error ( void )

Die Informix Fehlercodes (SQLSTATE & SQLCODE) sind wie folgt formatiert:

x [SQLSTATE = aa bbb SQLCODE=cccc]

mit x = Leerzeichen : kein Fehler

E : Fehler

N : Keine Daten mehr

W : Warnung

? : undefiniert

Falls anstelle des Zeichens "x" etwas anderes als ein Leerzeichen angezeigt wird, beschreiben SQLSTATE und SQLCODE den Fehler genauer.

Schauen Sie im Informix Handbuch nach den Beschreibungen von SQLSTATE und SQLCODE.

Die Funktion gibt einen String zurück, der in einem Zeichen einen allgemeinen Status der Abfrage zurückgibt, und die Zustände von SQLSTATE und SQLCODE, die mit der letzten ausgeführten Abfrage verknüpft sind. Das Format dieses Strings ist: "(char) [SQLSTATE=(zwei Ziffern) (drei Ziffern) SQLCODE=(eine Ziffer)]". Das erste Zeichen kann ein ' ' (Leerzeichen) (kein Fehler), ein 'W' (der Befehl verursachte eine Warnung), ein 'E' (ein Fehler ist bei der Ausführung des Befehls aufgetreten) oder ein 'N' (der Befehl lieferte keine Daten zurück) sein.

Siehe auch: ifx_errormsg()

Zurück | Zum Anfang | Nach vorne
ifx_do | Nach oben | ifx_errormsg


ifx_errormsg

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_errormsg -- Gibt die Fehlermeldung des zuletzt aufgetretenen Informix Fehlers zurück

Beschreibung

string ifx_errormsg ( [int errorcode])

Gibt die Informix-Fehlermeldung des zuletzt aufgetretenen Fehlers zurück, oder, falls der optionale Parameter "errorcode" angegeben wurde, die Fehlermeldung, die mit mit "errorcode" korrespondiert.

Siehe auch: ifx_error()

printf("%s\n&lt;br>", ifx_errormsg(-201));

Zurück | Zum Anfang | Nach vorne
ifx_error | Nach oben | ifx_fetch_row


ifx_fetch_row

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_fetch_row -- Holt eine Zeile als aufgezähltes Array

Beschreibung

array ifx_fetch_row ( int result_id [, mixed position])

Gibt ein assoziatives Array zurück, das die gelesene Zeile enthält oder FALSE, falls es keine Zeilen mehr zu lesen gibt.

Für Blob Spalten werden Integerwerte als blob ids zurückgegeben, die von der Funktion ifx_get_blob() verwendet werden, es sei denn, Sie haben ifx_textasvarchar(1) oder ifx_byteasvarchar(1) benutzt. Dann werden Blobs als Zeichenketten zurückgegeben. Bei einem Fehler wird FALSE zurückgegeben.

result_id ist eine gültige Ergebniskennung, die von ifx_query() oder ifx_prepare() (nur bei SELECT Abfragen!) zurückgegeben wurde.

position ist ein optionaler Parameter für eine "fetch" Operation eines "scroll" Cursors. Der Wert dieses Parameters kann "NEXT", "PREVIOUS", "CURRENT", "FIRST", "LAST" oder eine Zahl sein. Falls Sie eine Zahl angeben, werden die zu holenden Zeilen "absolut" angegeben. Dieser Parameter ist optional und gilt nur für SCROLL Cursors.

ifx_fetch_row() holt eine Zeile aus der Ergebnismenge, die mit der angegebenen Ergebniskennung verknüpft ist. Die Zeile wird als Array zurückgegeben. Jede Spalte der Ergebnismenge wird in einer Arraykomponente gespeichert, beginnend bei Offset 0, mit dem Spaltennamen als Index.

Aufeinanderfolgende Aufrufe von ifx_fetch_row() geben die jeweils nächste Zeile der Ergebnismenge zurück oder FALSE, falls es keine Zeile mehr gibt.

Beispiel 1. Informix fetch rows

$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    ... Fehler ...
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Zu viele Zeilen in der Ergebnismenge (%d)\n<br>", $rowcount);
    die ("Bitte begrenzen Sie Ihre Abfrage<br>\n");
}
if (! ifx_do ($rid)) {
   ... Fehler ...
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
    for(reset($row); $fieldname=key($row); next($row)) {
        $fieldvalue = $row[$fieldname];
        printf ("%s = %s,", $fieldname, $fieldvalue);
    }
    printf("\n<br>");
    $row = ifx_fetch_row ($rid, "NEXT");
}
ifx_free_result ($rid);

Zurück | Zum Anfang | Nach vorne
ifx_errormsg | Nach oben | ifx_fieldproperties


ifx_fieldproperties

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_fieldproperties -- Gibt eine Liste mit den Feldeigenschaften zurück

Beschreibung

array ifx_fieldproperties ( int result_id)

Gibt ein assoziatives Array für das mit result_id angegebene Abfrageergebnis zurück, mit den Feldnamen als Schlüssel und den SQL-Eigenschaften der Felder als Daten.

Die Informix SQL Eigenschaften jedes Feldes der Ergebnismenge werden als assoziatives Array zurückgegeben. Die Eigenschaften sind wie folgt codiert: "SQLTYPE;length;precision;scale;ISNULLABLE" mit SQLTYPE = der Informix Typ, wie etwa "SQLVCHAR" usw. und ISNULLABLE = "Y" or "N".

Beispiel 1. Informix SQL Feldeigenschaften

$properties = ifx_fieldproperties ($resultid);
if (! isset($properties)) {
  ... error ...
}
for ($i = 0; $i < count($properties); $i++) {
    $fname = key ($properties);
    printf ("%s:\t type =  %s\n", $fname, $properties[$fname]);
    next ($properties);
}

Zurück | Zum Anfang | Nach vorne
ifx_fetch_row | Nach oben | ifx_fieldtypes


ifx_fieldtypes

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_fieldtypes -- Gibt eine Liste der Informix SQL Felder zurück

Beschreibung

array ifx_fieldtypes ( int result_id)

Gibt für das Abfrageergebnis result_id ein assoziatives Array zurück mit den Feldnamen als Schlüssel und den SQL Feldtypen als Daten. Bei einem Fehler wird FALSE zurückgegeben.

Beispiel 1. Feldnamen und SQL Feldtypen

$types = ifx_fieldtypes ($resultid);
if (! isset ($types)) {
  ... error ...
}
for ($i = 0; $i < count($types); $i++) {
    $fname = key($types);
    printf("%s :\t type =  %s\n", $fname, $types[$fname]);
    next($types);
}

Zurück | Zum Anfang | Nach vorne
ifx_fieldproperties | Nach oben | ifx_free_blob


ifx_free_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_free_blob -- Löscht ein Blob Objekt

Beschreibung

int ifx_free_blob ( int bid)

Löscht das Blob Objekt, das durch die angegebene blob-id bid identifiziert wird. Bei Erfolg wird TRUE zurückgegeben, bei einem Fehler FALSE.

Zurück | Zum Anfang | Nach vorne
ifx_fieldtypes | Nach oben | ifx_free_char


ifx_free_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_free_char -- Löscht ein CHAR Objekt

Beschreibung

int ifx_free_char ( int bid)

Löscht das durch die Objekt Id bid bezeichnete CHAR Objekt. Bei Erfolg wird TRUE zurückgegeben und FALSE bei einem Fehler. TRUE.

Zurück | Zum Anfang | Nach vorne
ifx_free_blob | Nach oben | ifx_free_result


ifx_free_result

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_free_result -- Gibt den belegten Speicher einer Ergebnismenge wieder frei

Beschreibung

int ifx_free_result ( int result_id)

Gibt den belegten Speicher, der mit der Ergebniskennung result_id verknüpft ist, wieder frei. Bei einem Fehler wird FALSE zurückgegeben.

Zurück | Zum Anfang | Nach vorne
ifx_free_char | Nach oben | ifx_get_blob


ifx_get_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_get_blob -- Gibt den Inhalt eines Large Objects zurück

Beschreibung

int ifx_get_blob ( int bid)

Gibt den Inhalt des Large Objects zurück, das durch die gegebene Objekt-ID bid bestimmt wird.

Zurück | Zum Anfang | Nach vorne
ifx_free_result | Nach oben | ifx_get_char


ifx_get_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_get_char -- Gibt den Inhalt eines Zeichen-Objekts zurück

Beschreibung

int ifx_get_char ( int bid)

Gibt den Inhalt des durch die Objekt-ID bid gegebenen Zeichen-Objekts zurück.

Zurück | Zum Anfang | Nach vorne
ifx_get_blob | Nach oben | ifx_getsqlca


ifx_getsqlca

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ifx_getsqlca -- Gibt den Inhalt von sqlca.sqlerrd[0..5] nach einer Abfrage zurück

Beschreibung

array ifx_getsqlca ( int result_id)

result_id ist eine gültige Ergebniskennung, die von ifx_query() oder ifx_prepare() zurückgegeben wurde.

Diese Funktion gibt nach einer Abfrage, die mit result_id verknüpft ist, eine Pseudo-Zeile (assoziatives Array) mit sqlca.sqlerrd[0] ... sqlca.sqlerrd[5] zurück.

Bei INSERTs, UPDATEs und DELETEs sind die zurückgegebenen Werte die, die der Server nach dem Ausführen der Abfrage setzt. Dadurch bekommt man Zugriff auf die Anzahl der betroffenen Zeilen und auf den Eingabewert eines Serial-Feldes. Bei SELECTs sind das die Werte, die nach einem PREPARE-Kommando gespeichert wurden. Hier hat man Zugriff auf die *geschätzte* Anzahl der betroffenen Zeilen. Der Gebrauch dieser Funktion erspart den Overhead für die Ausführung einer "select dbinfo('sqlca.sqlerrdx')"-Abfrage, weil hier die Werte gelesen werden, die der ifx-Treiber im passenden Moment gespeichert hat.

Beispiel 1. Informix sqlca.sqlerrd[x] Werte ermitteln

/* angenommen, das erste Feld von 'sometable' ist vom Typ SERIAL */
$qid = ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') ", $connid);
if (! $qid) {
    ... error ...
}
$sqlca = ifx_getsqlca ($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "Der Wert des SERIAL-Feldes der eingefügten Zeile ist: " . $serial_value<br>\n";

Zurück | Zum Anfang | Nach vorne
ifx_get_char | Nach oben | ifx_htmltbl_result


ifx_htmltbl_result

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_htmltbl_result -- Gibt alle Zeilen einer Abfrage als HTML-Tabelle formatiert zurück

Beschreibung

int ifx_htmltbl_result ( int result_id [, string html_table_options])

Gibt die Anzahl der gelesenen Zeilen aus oder FALSE bei einem Fehler.

Gibt alle Zeilen der durch result_id bestimmten Abfrage fornmatiert in einer HTML-Tabelle zurück. Das optionale zweite Argument ist ein String mit <table>-Tag Optionen.

Beispiel 1. Informix Ergebnisse als HTML Tabellen

$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
   ... Fehler ...
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Zu viele Zeilen in der Ergebnismenge (%d)\n<br>", $rowcount);
    die ("Bitte beschränken Sie die Abfrage<br>\n");
}
if (! ifx_do($rid) {
  ... Fehler ...
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);

Zurück | Zum Anfang | Nach vorne
ifx_getsqlca | Nach oben | ifx_nullformat


ifx_nullformat

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_nullformat -- Setzt den aktuellen Rückgabewert für Nullwerte beim Lesen von Zeilen

Beschreibung

void ifx_nullformat ( int mode)

Hiermit wird festgelegt, wie Nullwerte in einer Ergebnismenge dargestellt werden sollen. Modus "0" gibt "" (einen leerren String), und Modus "1" gibt "NULL zurück".

Zurück | Zum Anfang | Nach vorne
ifx_htmltbl_result | Nach oben | ifx_num_fields


ifx_num_fields

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_num_fields -- Gibt die Anzahl der Spalten einer Abfrage zurück

Beschreibung

int ifx_num_fields ( int result_id)

Gibt die Anzahl der Spalten in dem durch result_id bestimmten Abfrageergebnis zurück oder FALSE, falls ein Fehler auftritt.

Nachdem eine Abfrage vorbereitet oder ausgeführt wurde, liefert diese Funktion die Anzahl der Spalten in der Abfrage.

Zurück | Zum Anfang | Nach vorne
ifx_nullformat | Nach oben | ifx_num_rows


ifx_num_rows

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_num_rows -- Count the rows already fetched from a query

Beschreibung

int ifx_num_rows ( int result_id)

Gibt nach der Ausführung von ifx_query() oder ifx_do()die Anzahl der Zeilen in der durch result_id gegebenen Ergebnismenge zurück.

Zurück | Zum Anfang | Nach vorne
ifx_num_fields | Nach oben | ifx_pconnect


ifx_pconnect

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_pconnect -- Öffnet eine persistente Informix Verbindung

Beschreibung

int ifx_pconnect ( [string database [, string userid [, string password]]])

Gibt bei einem erfolgreichen Verbindungsaufbau eine positive Informix Verbindungskennung zurück oder FALSE, falls ein Fehler auftrat.

ifx_pconnect() verhält sich sehr ähnlich wie ifx_connect() mit hauptsächlich zwei Unterschieden:

Diese Funktion verhält sich exakt wie ifx_connect() wenn PHP nicht als Apache-Modul läuft. Bei einem Verbindungsaufbau wird zuerst versucht, eine bereits geöffnete (persistente) Verbindung zu finden, die mit denselben Angaben für Host, Benutzername und Passwort geöffnet wurde. Wird eine solche Verbindung gefunden, so wird deren Verbindungskennung zurückgegeben, anstatt eine neue Verbindung zu öffnen.

Zweitens wird die Verbindung zum SQL-Server nicht geschlossen, wenn die Ausführung des Skripts beendet ist. Stattdessen bleibt sie für die weitere Benutzung offen (ifx_close() schliesst keine Verbindung, die mit ifx_pconnect() geöffnet wurde).

Aus diesem Grunde werden solche Verbindungen 'persistent' genannt.

Siehe auch: ifx_connect().

Zurück | Zum Anfang | Nach vorne
ifx_num_rows | Nach oben | ifx_prepare


ifx_prepare

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_prepare -- Stellt einen SQL Befehl zur späteren Ausführung bereit

Beschreibung

int ifx_prepare ( string query, int conn_id [, int cursor_def, mixed blobidarray])

Gibt einen Integerwert, result_id zurück, der von der Funktion ifx_do() benutzt wird. Die Anzahl der betroffenen Datensätze, die mit der Funktion affected_rows abfragt werden kann, wird gesetzt.

Bereitet die Abfrage query für die Verbindung conn_id vor. Bei SELECT Abfragen wird ein Cursor deklariert und geöffnet. Mit dem optionalen Parameter cursor_def können Sie einen "scroll"- und/oder "hold"-Cursor definieren. Beides sind Bitmasken, die entweder IFX_SCROLL oder IFX_HOLD oder beides, mit ODER verknüpft, sein können.

Für jeden Anfragetyp wird die geschätzte Anzahl der betroffenen Datensätze gespeichert und kann mit ifx_affected_rows() abgefragt werden.

Falls Sie in Ihrer Abfrage BLOB (BYTE oder TEXT) Felder haben, können Sie den Parameter blobidarray angeben, der die korrespondierenden "blob ids" enthält. Diese Spaltennamen sollten Sie in der Abfrage durch ein "?" ersetzen.

Falls die Inhalte der TEXT (oder BYTE) Spalten es erlauben, können Sie auch "ifx_textasvarchar(1)" und "ifx_byteasvarchar(1)" benutzen. Damit können Sie TEXT (oder BYTE) Spalten wie gewöhnliche (aber lange) VARCHAR Spalten in SELECT Abfragen behandeln und müssen sich nicht um blob-ids kümmern.

Mit ifx_textasvarchar(0) oder ifx_byteasvarchar(0) (die Standardeinstellung), geben SELECT Abfragen BLOB Spalten als blob-ids (Integerwerte) zurück. Mit den blob-Funktionen (siehe unten) können Sie die Werte eines BLOB als String oder Datei erhalten.

Siehe auch: ifx_do().

Zurück | Zum Anfang | Nach vorne
ifx_pconnect | Nach oben | ifx_query


ifx_query

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_query -- Schickt eine Informix Abfrage an den Server

Beschreibung

int ifx_query ( string query, int link_identifier [, int cursor_type [, mixed blobidarray]])

Gibt bei Erfolg einen positiven Integerwert als Ergebniskennung zurück oder FALSE, falls ein Fehler auftrat.

Die Ergebniskennung, "result-id", wird von anderen Funktionen benutzt. Die Zahl der betroffenen Zeilen wird für spätere Abfragen mit ifx_affected_rows() gesetzt.

ifx_query() schickt eine Abfrage an die gegenwärtig aktive Datenbank auf dem Server, die durch die angegebene Verbindungskennung bezeichnet wird.

Auf der Verbindung conn_id wird eine query ausgeführt. Bei SELECT-Abfragen wird ein Cursor deklariert und geöffnet. Mit dem optionalen Parameter cursor_type können Sie bestimmen, ob dies ein "scroll"- und/oder ein "hold"-Cursor sein soll. Dies ist eine Bitmaske, die entweder die Werte IFX_SCROLL, IFX_HOLD oder beides (mit OR verknüpft) annehmen kann. Andere Abfragen auuser SELECTs werden unverzüglich ausgeführt. IFX_SCROLL und IFX_HOLD sind symbolische Konstanten und als solche sollten sie nicht in Anführungszeichen eingeschlossen werden. Wenn Sie den Parameter weglassen, definieren Sie einen ganz normalen sequentiellen Cursor.

Für jeden Abfragetyp wird die Anzahl der betroffenen Zeilen (geschätzt oder wirklich) für spätere Abfragen mit ifx_affected_rows() gespeichert.

Falls Sie BLOB-Felder (BYTE oder TEXT) in einem UPDATE haben, können Sie den Parameter blobidarray benutzen, der die entsprechenden blob-ids enthält und Sie sollten diese Felder in der Abfrage durch "?" ersetzen.

Falls der Inhalt der TEXT- (oder BYTE) Spalte es erlaubt, können Sie auch "ifx_textasvarchar(1)" und "ifx_byteasvarchar(1)" benutzen. Damit können Sie TEXT- oder BYTE-Felder behandeln, als wären sie normale (nur sehr lange) VARCHAR-Felder in SELECT-Abfragen und Sie brauchen sich nicht um blob-ids kümmern.

Mit ifx_textasvarchar(0) oder ifx_byteasvarchar(0) (der Standardeinstellung) werden für BLOB-Spalten in SELECT-Abfragen die blob-ids (Integerwerte) zurückgegeben. Sie können die Inhalte der BLOBs mit den BLOB-Funktionen als Zeichenketten oder Dateien erhalten (siehe weiter unten) .

Siehe auch: ifx_connect().

Beispiel 1. Gibt alle Zeilen der "orders"-Tabelle als HTML-Tabelle zurück

ifx_textasvarchar(1);      // "text mode" bei blobs benutzen
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Kann orders nicht abfragen: %s\n<br>%s<br>\n", ifx_error());
    ifx_errormsg();
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);

Beispiel 2. Ein paar Werte in die "catalog"-Tabelle einfügen

// blob id's für byte- und text-Spalten erzeugen
$textid = ifx_create_blob(0, 0, "Text Spalte im Speicher");
$byteid = ifx_create_blob(1, 0, "Byte Spalte im Speicher");
                   // blob id's in einem blobid array speichern
$blobidarray[] = $textid;
$blobidarray[] = $byteid;
                      // Abfrage ausführen
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
  ... Fehler ...
}
                     // Speicher freigeben
ifx_free_result($res_id);

Zurück | Zum Anfang | Nach vorne
ifx_prepare | Nach oben | ifx_textasvarchar


ifx_textasvarchar

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_textasvarchar -- Setzt den Standard-Textmodus

Beschreibung

void ifx_textasvarchar ( int mode)

Setzt den Standard-Textmodus für alle SELECT-Abfragen. Im Modus "0" wird eine Blob-ID zurückgegeben, im Modus "1" wird ein varchar mit einem Textinhalt zurückgegeben.

Zurück | Zum Anfang | Nach vorne
ifx_query | Nach oben | ifx_update_blob


ifx_update_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_update_blob -- Aktualisiert den Inhalt eines Blob-Objekts

Beschreibung

ifx_update_blob ( int bid, string content)

Aktualisiert den Inhalt des gegebenen Blob-Objekts bid. content ist ein String, der die neuen Daten enthält. Bei Erfolg wird TRUE zurückgegeben und im Falle eines Fehlers FALSE.

Zurück | Zum Anfang | Nach vorne
ifx_textasvarchar | Nach oben | ifx_update_char


ifx_update_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_update_char -- Aktualisiert den Inhalt eines Char-Objekts

Beschreibung

int ifx_update_char ( int bid, string content)

Aktualisiert den Inhalt des Char-Objekts bid. content ist ein String, der die neuen Daten enthält. Bei Erfolg wird TRUE zurückgegeben und FALSE, falls ein Fehler auftrat.

Zurück | Zum Anfang | Nach vorne
ifx_update_blob | Nach oben | ifxus_close_slob


ifxus_close_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_close_slob -- Löscht ein Slob-Objekt

Beschreibung

int ifxus_close_slob ( int bid)

Löscht das Slob-Objekt mit der angegebenen Slob-ID bid. Bei Erfolg wird TRUE zurückgegeben oder FALSE, falls ein Fehler auftrat.

Zurück | Zum Anfang | Nach vorne
ifx_update_char | Nach oben | ifxus_create_slob


ifxus_create_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_create_slob -- Erzeugt ein Slob-Objekt und öffnet es

Beschreibung

int ifxus_create_slob ( int mode)

Erzeugt ein Slob-Objekt und öffnet es. Modi: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-Maske. Sie können ebenso Konstanten mit den Namen IFX_LO_RDONLY, IFX_LO_WRONLY usw. benutzen. Bei einem Fehler wird FALSE zurueckgegeben, anderenfalls die neue Slob-Objekt-ID.

Zurück | Zum Anfang | Nach vorne
ifxus_close_slob | Nach oben | ifxus_free_slob


ifxus_free_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_free_slob -- Löscht ein Slob-Objekt

Beschreibung

int ifxus_free_slob ( int bid)

Löscht das Slob-Objekt mit der Slob-Objekt-ID bid. Bei Erfolg wird TRUE zurückgegeben und bei einem Fehler FALSE.

Zurück | Zum Anfang | Nach vorne
ifxus_create_slob | Nach oben | ifxus_open_slob


ifxus_open_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_open_slob -- Öffnet ein Slob-Objekt

Beschreibung

int ifxus_open_slob ( long bid, int mode)

Öffnet das Slob-Objekt mit der Slob-Objekt-ID bid. Modi: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-Maske. Bei Erfolg wird die neue Slob-Objekt-ID zurückgegeben oder FALSE, falls ein Fehler auftrat.

Zurück | Zum Anfang | Nach vorne
ifxus_free_slob | Nach oben | ifxus_read_slob


ifxus_read_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_read_slob -- Liest nbytes aus einem Slob-Objekt

Beschreibung

int ifxus_read_slob ( long bid, long nbytes)

Liest nbytes aus einem Slob-Objekt. bid ist die Objekt-Id eines existierenden Slob-Objekts und nbytes ist die Anzahl der Bytes, die gelesen werden sollen. Bei Erfolg wird der gelesene String zurückgegeben oder FALSE, falls ein Fehler auftrat.

Zurück | Zum Anfang | Nach vorne
ifxus_open_slob | Nach oben | ifxus_seek_slob


ifxus_seek_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_seek_slob -- Setzt die aktuelle Dateizeiger- oder Suchposition

Beschreibung

int ifxus_seek_slob ( long bid, int mode, long offset)

Setzt die aktuelle Dateizeiger- oder Suchposition in einem geöffneten Slob-Objekt. bid sollte eine existierende Slob-Objekt-ID sein. Modi: 0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END. offset ist ein Byte-Offset. Bei Erfolg wird die Suchposition zurückgegeben anderenfalls FALSE.

Zurück | Zum Anfang | Nach vorne
ifxus_read_slob | Nach oben | ifxus_tell_slob


ifxus_tell_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_tell_slob -- Gibt die aktuelle Dateizeiger- oder Suchposition zurück

Beschreibung

int ifxus_tell_slob ( long bid)

Gibt die aktuelle Position des Dateizeigers bzw. die Suchposition in einem geöffneten Slob-Objekt zurück. bid sollte eine existierende Slob-Objekt-ID sein. Bei Erfolg wird die aktuelle Position zurückgegeben oder FALSE, falls ein Fehler auftrat.

Zurück | Zum Anfang | Nach vorne
ifxus_seek_slob | Nach oben | ifxus_write_slob


ifxus_write_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_write_slob -- Schreibt einen String in ein Slob-Objekt

Beschreibung

int ifxus_write_slob ( long bid, string content)

Schreibt einen String in ein Slob-Objekt. bid ist ein existierendes Slob-Objekt und content enthält den String, der dort hineingeschrieben wird. Bei Erfolg gibt die Funktion die Anzahl der geschriebenen Bytes zurück oder FALSE, falls ein Fehler aufgetreten ist.

Zurück | Zum Anfang | Nach vorne
ifxus_tell_slob | Nach oben | InterBase-Funktionen


InterBase-Funktionen

PHP Handbuch
Zurück Nach vorne

XLIV. InterBase-Funktionen

InterBase ist eine bekannte Datenbank, die von Borland/Inprise stammt. Weitere Informationen zu InterBase finden sie unter http://www.interbase.com/. Wichtig: InterBase befindet sich gerade auf dem Weg zum Open Source!

Anmerkung: Umfassende Unterstützung für InterBase 6 wurde in PHP 4.0 eingeführt.

Inhaltsverzeichnis
ibase_add_user -- Add a user to a security database (only for IB6 or later)
ibase_affected_rows -- Return the number of rows that were affected by the previous query
ibase_backup -- Initiates a backup task in the service manager and returns immediately
ibase_blob_add -- Add data into a newly created blob
ibase_blob_cancel -- Cancel creating blob
ibase_blob_close -- Close blob
ibase_blob_create -- Create a new blob for adding data
ibase_blob_echo -- Output blob contents to browser
ibase_blob_get -- Get len bytes data from open blob
ibase_blob_import -- Create blob, copy file in it, and close it
ibase_blob_info -- Return blob length and other useful info
ibase_blob_open -- Open blob for retrieving data parts
ibase_close -- Schließt die Verbindung zu einer InterBase-Datenbank
ibase_commit_ret -- Commit a transaction without closing it
ibase_commit -- Commit a transaction
ibase_connect -- Öffnet eine Verbindung zu einer InterBase-Datenbank
ibase_db_info -- Request statistics about a database
ibase_delete_user -- Delete a user from a security database (only for IB6 or later)
ibase_drop_db -- Drops a database
ibase_errcode -- Return an error code
ibase_errmsg -- Return error messages
ibase_execute -- Ausführen einer vorbereiteten Abfrage
ibase_fetch_assoc -- Fetch a result row from a query as an associative array
ibase_fetch_object -- Liest einen Datensatz einer InterBase-Datenbank als Objekt ein
ibase_fetch_row -- Liest einen Datensatz aus einer InterBase-Datenbank
ibase_field_info -- Get information about a field
ibase_free_event_handler -- Cancels a registered event handler
ibase_free_query -- Gibt den Speicher einer vorbereiteten Abfrage wieder frei
ibase_free_result -- Gibt den Speicher eines Abfrage-Ergebnisses frei
ibase_gen_id -- Increments the named generator and returns its new value
ibase_maintain_db -- Execute a maintenance command on the database server
ibase_modify_user -- Modify a user to a security database (only for IB6 or later)
ibase_name_result -- Assigns a name to a result set
ibase_num_fields -- Ermittelt die Anzahl der Felder einer Ergebnis-Liste
ibase_num_params -- Return the number of parameters in a prepared query
ibase_param_info -- Return information about a parameter in a prepared query
ibase_pconnect -- Erzeugt eine permanente Verbindung zu einer InterBase-Datenbank
ibase_prepare -- Vorbereitung einer Abfrage für den folgenden Gebrauch von Parameter-Platzhaltern und für die eigentliche Ausführung.
ibase_query -- Führt eine Abfrage (Query) auf eine InterBase-DB aus
ibase_restore -- Initiates a restore task in the service manager and returns immediately
ibase_rollback_ret -- Roll back a transaction without closing it
ibase_rollback -- Roll back a transaction
ibase_server_info -- Request information about a database server
ibase_service_attach -- Connect to the service manager
ibase_service_detach -- Disconnect from the service manager
ibase_set_event_handler -- Register a callback function to be called when events are posted
ibase_timefmt -- Bestimmt das Format von Zeitstempel-, Datums- und Zeit-Feldern, die von einer Abfrage zurück gegeben werden
ibase_trans -- Begin a transaction
ibase_wait_event -- Wait for an event to be posted by the database

Zurück | Zum Anfang | Nach vorne
ifxus_write_slob | Nach oben | ibase_add_user


ibase_add_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_add_user -- Add a user to a security database (only for IB6 or later)

Description

bool ibase_add_user ( string server, string dba_user_name, string dba_user_password, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also ibase_modify_user() and ibase_delete_user().

Zurück | Zum Anfang | Nach vorne
InterBase-Funktionen | Nach oben | ibase_affected_rows


ibase_affected_rows

(PHP 5)

ibase_affected_rows -- Return the number of rows that were affected by the previous query

Description

int ibase_affected_rows ( resource link_identifier)

This function returns the number of rows that were affected by the previous query that was executed from within the transaction context specified by link_identifier. If link_identifier is a connection resource, its default transaction is used.

See also ibase_query() and ibase_execute().

Zurück | Zum Anfang | Nach vorne
ibase_add_user | Nach oben | ibase_backup


ibase_backup

(PHP 5)

ibase_backup -- Initiates a backup task in the service manager and returns immediately

Description

mixed ibase_backup ( resource service_handle, string source_db, string dest_file [, int options [, bool verbose]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ibase_affected_rows | Nach oben | ibase_blob_add


ibase_blob_add

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_add -- Add data into a newly created blob

Description

bool ibase_blob_add ( resource blob_handle, string data)

ibase_blob_add() adds data into a blob created with ibase_blob_create(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also
ibase_blob_cancel(),
ibase_blob_close(),
ibase_blob_create() and
ibase_blob_import().

Zurück | Zum Anfang | Nach vorne
ibase_backup | Nach oben | ibase_blob_cancel


ibase_blob_cancel

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_cancel -- Cancel creating blob

Description

bool ibase_blob_cancel ( resource blob_handle)

This function will discard a BLOB created by ibase_create_blob() if it has not yet been closed by ibase_blob_close(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also
ibase_blob_close(),
ibase_blob_create() and
ibase_blob_import().

Zurück | Zum Anfang | Nach vorne
ibase_blob_add | Nach oben | ibase_blob_close


ibase_blob_close

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_close -- Close blob

Description

mixed ibase_blob_close ( resource blob_handle)

This function closes a BLOB that has either been opened for reading by ibase_open_blob() or has been opened for writing by ibase_create_blob(). If the BLOB was being read, this function returns TRUE on success, if the BLOB was being written to, this function returns a string containing the BLOB id that has been assigned to it by the database. On failure, this function returns FALSE.

See also ibase_blob_cancel() and ibase_blob_open().

Zurück | Zum Anfang | Nach vorne
ibase_blob_cancel | Nach oben | ibase_blob_create


ibase_blob_create

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_create -- Create a new blob for adding data

Description

resource ibase_blob_create ( [resource link_identifier])

ibase_blob_create() creates a new BLOB for filling with data. It returns a BLOB handle for later use with ibase_blob_add() or FALSE on failure.

See also
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() and
ibase_blob_import().

Zurück | Zum Anfang | Nach vorne
ibase_blob_close | Nach oben | ibase_blob_echo


ibase_blob_echo

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_echo -- Output blob contents to browser

Description

bool ibase_blob_echo ( string blob_id)

This function opens a BLOB for reading and sends its contents directly to standard output (the browser, in most cases). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also
ibase_blob_open(),
ibase_blob_close() and
ibase_blob_get().

Zurück | Zum Anfang | Nach vorne
ibase_blob_create | Nach oben | ibase_blob_get


ibase_blob_get

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_get -- Get len bytes data from open blob

Description

string ibase_blob_get ( resource blob_handle, int len)

This function returns at most len bytes from a BLOB that has been opened for reading by ibase_blob_open(). Returns FALSE on failure.

<?php
    $sql       = "SELECT blob_value FROM table";
    $result    = ibase_query($sql);
    $data      = ibase_fetch_object($result);
    $blob_data = ibase_blob_info($data->BLOB_VALUE);
    $blob_hndl = ibase_blob_open($data->BLOB_VALUE);
    echo         ibase_blob_get($blob_hndl, $blob_data[0]);
?>

Whilst this example doesn't do much more than a 'ibase_blob_echo($data->BLOB_VALUE)' would do, it does show you how to get information into a $variable to manipulate as you please.

Anmerkung: It is not possible to read from a BLOB that has been opened for writing by ibase_blob_create().

See also
ibase_blob_open(),
ibase_blob_close() and
ibase_blob_echo().

Zurück | Zum Anfang | Nach vorne
ibase_blob_echo | Nach oben | ibase_blob_import


ibase_blob_import

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_import -- Create blob, copy file in it, and close it

Description

string ibase_blob_import ( [resource link_identifier, resource file_handle])

This function creates a BLOB, reads an entire file into it, closes it and returns the assigned BLOB id. The file handle is a handle returned by fopen(). Returns FALSE on failure.

See also
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() and
ibase_blob_create().

Zurück | Zum Anfang | Nach vorne
ibase_blob_get | Nach oben | ibase_blob_info


ibase_blob_info

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_info -- Return blob length and other useful info

Description

array ibase_blob_info ( string blob_id)

Returns an array containing information about a BLOB. The information returned consists of the length of the BLOB, the number of segments it contains, the size of the largest segment, and whether it is a stream BLOB or a segmented BLOB.

Zurück | Zum Anfang | Nach vorne
ibase_blob_import | Nach oben | ibase_blob_open


ibase_blob_open

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_open -- Open blob for retrieving data parts

Description

resource ibase_blob_open ( string blob_id)

ibase_blob_open() opens an existing BLOB for reading. It returns a BLOB handle for later use with ibase_blob_get() or FALSE on failure.

See also
ibase_blob_close(),
ibase_blob_echo() and
ibase_blob_get().

Zurück | Zum Anfang | Nach vorne
ibase_blob_info | Nach oben | ibase_close


ibase_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_close -- Schließt die Verbindung zu einer InterBase-Datenbank

Beschreibung:

int ibase_close ( [int connection_id])

Beendet die Verbindung zu einer InterBase-DB, deren Verbindungs-ID mit der von ibase_connect() zurück gegebenen ID überein stimmt. Wird die Verbindungs-ID weg gelassen, wird die zuletzt hergestellte Verbindung beendet. Vorgenommene Transaktionen der Verbindung werden übertragen, andere werden zurück genommen.

Zurück | Zum Anfang | Nach vorne
ibase_blob_open | Nach oben | ibase_commit_ret


ibase_commit_ret

(PHP 5)

ibase_commit_ret -- Commit a transaction without closing it

Description

bool ibase_commit_ret ( [resource link_identifier])

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. The transaction context will be retained, so statements executed from within this transaction will not be invalidated. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ibase_close | Nach oben | ibase_commit


ibase_commit

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_commit -- Commit a transaction

Description

bool ibase_commit ( [resource link_identifier])

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ibase_commit_ret | Nach oben | ibase_connect


ibase_connect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_connect -- Öffnet eine Verbindung zu einer InterBase-Datenbank

Beschreibung:

int ibase_connect ( string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])

Stellt eine Verbindung zu einem InterBase-Server her. Das database-Argument muss ein gültiger Pfad zu einer bestehenden Datenbank des Servers sein. Ist der DB-Server nicht lokal, muss ihm - in Abhängigkeit vom benutzten Protokoll - ein 'hostname:' (bei TCP/IP), '//hostname/' (bei NetBEUI) oder 'hostname@' (bei IPX/SPX) vorangestellt werden. Die Parameter username und password können auch über die PHP-Konfigurations-Anweisungen ibase.default_user und ibase.default_password gesetzt werden. Charset ist der reguläre Zeichensatz der Datenbank. Mit buffers geben sie die Anzahl der Datenbank-Cache-Buffer (serverseitig) an. Ist der Wert 0 oder nicht angegeben, benutzt der Server seine Default-Werte. Mittels dialect bestimmen sie den Default-Wert des anzuwendenden SQL-Dialekts für alle Anweisungen während einer Datenbank-Verbindung (default ist der Client-seitig höchst verfügbare Dialekt).

Wenn ibase_connect() mit den selben Argumenten erneut aufgerufen wird, wird keine neue Verbindung hergestellt, sondern die ID der bereits geöffneten Verbindung zurück gegeben. Die Verbindung zum InterBase-Server wird am Ende des jeweiligen Skripts automatisch beendet, es sei denn, es wird vorher die Funktion ibase_close() aufgerufen.

Beispiel 1. ibase_connect()-Beispiel:

<?php
    $dbh = ibase_connect ($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';
    $sth = ibase_query ($dbh, $stmt);
    while ($row = ibase_fetch_object ($sth)) {
        print $row->email . "\n";
    }
    ibase_close ($dbh);
?>

Anmerkung: Buffers existiert seit PHP4-RC2.

Anmerkung: Dialect wurde in PHP4-RC2 hinzugefügt. Er funktioniert ab der InterBase-Version 6.

Anmerkung: Role existiert seit PHP4-RC2. Er funktioniert ab der InterBase-Version 5.

Siehe auch: ibase_pconnect().

Zurück | Zum Anfang | Nach vorne
ibase_commit | Nach oben | ibase_db_info


ibase_db_info

(PHP 5)

ibase_db_info -- Request statistics about a database

Description

string ibase_db_info ( resource service_handle, string db, int action [, int argument])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ibase_connect | Nach oben | ibase_delete_user


ibase_delete_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_delete_user -- Delete a user from a security database (only for IB6 or later)

Description

bool ibase_delete_user ( string server, string dba_user_name, string dba_user_password, string user_name)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also ibase_add_user() and ibase_modify_user().

Zurück | Zum Anfang | Nach vorne
ibase_db_info | Nach oben | ibase_drop_db


ibase_drop_db

(PHP 5)

ibase_drop_db -- Drops a database

Description

bool ibase_drop_db ( resource connection)

This functions drops a database that was opened by either ibase_connect() or ibase_pconnect(). The database is closed and deleted from the server. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also ibase_connect() and ibase_pconnect().

Zurück | Zum Anfang | Nach vorne
ibase_delete_user | Nach oben | ibase_errcode


ibase_errcode

(PHP 5)

ibase_errcode -- Return an error code

Description

int ibase_errcode ( void )

Returns the error code that resulted from the most recent InterBase function call. Returns FALSE if no error occurred.

See also ibase_errmsg().

Zurück | Zum Anfang | Nach vorne
ibase_drop_db | Nach oben | ibase_errmsg


ibase_errmsg

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_errmsg -- Return error messages

Description

string ibase_errmsg ( void )

Returns the error message that resulted from the most recent InterBase function call. Returns FALSE if no error occurred.

See also ibase_errcode().

Zurück | Zum Anfang | Nach vorne
ibase_errcode | Nach oben | ibase_execute


ibase_execute

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_execute -- Ausführen einer vorbereiteten Abfrage

Beschreibung:

int ibase_execute ( int query [, int bind_args])

Führt eine vorher per ibase_prepare() vorbereitete Abfrage aus. Dies ist effizienter als der Gebrauch von ibase_query(), sofern sie mehrere ähnliche Abfragen durchführen wollen, bei denen sich immer nur einige Parameter ändern.

<?php
    $updates = array(
        1 => 'Erik',
        5 => 'Phillip',
        7 => 'Ludwig'
    );

    $query = ibase_prepare("UPDATE FOO SET BAR = ? WHERE BAZ = ?");

    while (list($baz, $bar) = each($updates)) {
        ibase_execute($query, $bar, $baz);
    }
?>

Zurück | Zum Anfang | Nach vorne
ibase_errmsg | Nach oben | ibase_fetch_assoc


ibase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

ibase_fetch_assoc -- Fetch a result row from a query as an associative array

Description

array ibase_fetch_assoc ( resource result [, int fetch_flag])

ibase_fetch_assoc() returns an associative array that corresponds to the fetched row. Subsequent calls will return the next row in the result set, or FALSE if there are no more rows.

ibase_fetch_assoc() fetches one row of data from the result. If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using ibase_fetch_row() or use alias names in your query.

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

See also ibase_fetch_row() and ibase_fetch_object().

Zurück | Zum Anfang | Nach vorne
ibase_execute | Nach oben | ibase_fetch_object


ibase_fetch_object

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_fetch_object -- Liest einen Datensatz einer InterBase-Datenbank als Objekt ein

Beschreibung:

object ibase_fetch_object ( int result_id)

Liest die Daten der per ibase_query() oder ibase_execute() gewonnenen result_id in ein Pseudo-Objekt ein.

<php
    $dbh  = ibase_connect ($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';
    $sth  = ibase_query ($dbh, $stmt);
    while ($row = ibase_fetch_object ($sth)) {
        print $row->email . "\n";
    }
    ibase_close ($dbh);
?>

Siehe auch ibase_fetch_row().

Zurück | Zum Anfang | Nach vorne
ibase_fetch_assoc | Nach oben | ibase_fetch_row


ibase_fetch_row

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_fetch_row -- Liest einen Datensatz aus einer InterBase-Datenbank

Beschreibung:

array ibase_fetch_row ( int result_identifier)

Gibt den nächsten Datensatz des per ibase_query() gewonnenen Zeigers in einem Array zurück.

Zurück | Zum Anfang | Nach vorne
ibase_fetch_object | Nach oben | ibase_field_info


ibase_field_info

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_field_info -- Get information about a field

Description

array ibase_field_info ( resource result, int field_number)

Returns an array with information about a field after a select query has been run. The array is in the form of name, alias, relation, length, type.

<?php
    $rs = ibase_query("SELECT * FROM tablename");
    $coln = ibase_num_fields($rs);
    for ($i = 0; $i < $coln; $i++) {
        $col_info = ibase_field_info($rs, $i);
        echo "name: ". $col_info['name']. "\n";
        echo "alias: ". $col_info['alias']. "\n";
        echo "relation: ". $col_info['relation']. "\n";
        echo "length: ". $col_info['length']. "\n";
        echo "type: ". $col_info['type']. "\n";
    }
?>

See also: ibase_num_fields().

Zurück | Zum Anfang | Nach vorne
ibase_fetch_row | Nach oben | ibase_free_event_handler


ibase_free_event_handler

(PHP 5)

ibase_free_event_handler -- Cancels a registered event handler

Description

bool ibase_free_event_handler ( resource event)

This function causes the registered event handler specified by event to be cancelled. The callback function will no longer be called for the events it was registered to handle. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also ibase_set_event_handler().

Zurück | Zum Anfang | Nach vorne
ibase_field_info | Nach oben | ibase_free_query


ibase_free_query

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_free_query -- Gibt den Speicher einer vorbereiteten Abfrage wieder frei

Beschreibung:

int ibase_free_query ( int query)

Gibt den Speicher einer vorbereiteten Abfrage (siehe ibase_prepare()) wieder frei.

Zurück | Zum Anfang | Nach vorne
ibase_free_event_handler | Nach oben | ibase_free_result


ibase_free_result

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_free_result -- Gibt den Speicher eines Abfrage-Ergebnisses frei

Beschreibung:

int ibase_free_result ( int result_identifier)

Gibt den durch den Aufruf von ibase_query() belegten Speicher wieder frei.

Zurück | Zum Anfang | Nach vorne
ibase_free_query | Nach oben | ibase_gen_id


ibase_gen_id

(PHP 5)

ibase_gen_id -- Increments the named generator and returns its new value

Description

int ibase_gen_id ( [resource link_identifier [, string generator [, int increment]]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ibase_free_result | Nach oben | ibase_maintain_db


ibase_maintain_db

(PHP 5)

ibase_maintain_db -- Execute a maintenance command on the database server

Description

bool ibase_maintain_db ( resource service_handle, string db, int action [, int argument])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ibase_gen_id | Nach oben | ibase_modify_user


ibase_modify_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_modify_user -- Modify a user to a security database (only for IB6 or later)

Description

bool ibase_modify_user ( string server, string dba_user_name, string dba_user_password, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

See also ibase_add_user() and ibase_delete_user().

Zurück | Zum Anfang | Nach vorne
ibase_maintain_db | Nach oben | ibase_name_result


ibase_name_result

(PHP 5)

ibase_name_result -- Assigns a name to a result set

Description

bool ibase_name_result ( resource result, string name)

This function assigns a name to a result set. This name can be used later in UPDATE|DELETE ... WHERE CURRENT OF name statements. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

<?php
$result = ibase_query("SELECT field1,field2 FROM table FOR UPDATE");
    ibase_name_result($result, "my_cursor");

    $updateqry = ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

    for ($i = 0; ibase_fetch_row($result); ++$i) {
        ibase_execute($updateqry, $i);
    }
?>

See also ibase_prepare() and ibase_execute().

Zurück | Zum Anfang | Nach vorne
ibase_modify_user | Nach oben | ibase_num_fields


ibase_num_fields

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_num_fields -- Ermittelt die Anzahl der Felder einer Ergebnis-Liste

Beschreibung:

int ibase_num_fields ( int result_id)

Der zurück gegebene Integer-Wert stellt die Anzahl der Felder einer Ergebnis-Liste dar.

<?php
    $dbh = ibase_connect ($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';
    $sth = ibase_query ($dbh, $stmt);

    if (ibase_num_fields($sth) > 0) {
        while ($row = ibase_fetch_object ($sth)) {
            print $row->email . "\n";
        }
    } else {
        die ("Keine Ergebnisse für ihre Abfrage");
    }

    ibase_close ($dbh);
?>

Siehe auch: ibase_field_info().

Anmerkung: ibase_num_fields() funktioniert z.Zt. nicht bei PHP 4.

Zurück | Zum Anfang | Nach vorne
ibase_name_result | Nach oben | ibase_num_params


ibase_num_params

(PHP 5)

ibase_num_params -- Return the number of parameters in a prepared query

Description

int ibase_num_params ( resource query)

This function returns the number of parameters in the prepared query specified by query. This is the number of binding arguments that must be present when calling ibase_execute().

See also ibase_prepare() and ibase_param_info().

Zurück | Zum Anfang | Nach vorne
ibase_num_fields | Nach oben | ibase_param_info


ibase_param_info

(PHP 5)

ibase_param_info -- Return information about a parameter in a prepared query

Description

array ibase_param_info ( resource query, int param_number)

Returns an array with information about a parameter after a query has been prepared. The array is in the form of name, alias, relation, length, type.

See also ibase_field_info() and ibase_num_params().

Zurück | Zum Anfang | Nach vorne
ibase_num_params | Nach oben | ibase_pconnect


ibase_pconnect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_pconnect -- Erzeugt eine permanente Verbindung zu einer InterBase-Datenbank

Beschreibung:

int ibase_connect ( string database [, string username [, string password [, string charset [, string role]]]])

ibase_pconnect() agiert ähnlich der Funktion ibase_connect() (mit zwei Ausnahmen). Erstens wird beim Verbindungs-Aufbau versucht, eine bereits bestehende permanente Verbindung zu finden, die mit den selben Parametern aufgebaut worden ist. Wird eine solche gefunden, wird statt eines neuen Verbindungs-Aufbaus die ID der bestehenden Verbindung zurück gegeben. Zweitens wird beim Beenden des Skripts die Verbindung nicht beendet. Statt dessen wird die Verbindung für den weiteren Gebrauch beibehalten (ibase_close() beendet keine Verbindung, die mittels ibase_pconnect() erzeugt wurde). Diese Art der Verbindung wird deshalb auch 'persistent' (permanent) genannt.

Siehe auch ibase_connect() hinsichtlich der Bedeutung der dieser Funktion übergebenen Parameter. Es sind die gleichen.

Zurück | Zum Anfang | Nach vorne
ibase_param_info | Nach oben | ibase_prepare


ibase_prepare

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_prepare -- Vorbereitung einer Abfrage für den folgenden Gebrauch von Parameter-Platzhaltern und für die eigentliche Ausführung.

Beschreibung:

int ibase_prepare ( [int link_identifier, string query])

Vorbereitung einer Abfrage für den folgenden Gebrauch von Parameter-Platzhaltern und für die eigentliche Ausführung (per ibase_execute()).

Zurück | Zum Anfang | Nach vorne
ibase_pconnect | Nach oben | ibase_query


ibase_query

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_query -- Führt eine Abfrage (Query) auf eine InterBase-DB aus

Beschreibung:

int ibase_query ( [int link_identifier, string query [, int bind_args]])

Erzeugt eine Anfrage auf eine InterBase-DB, deren Ergebnis mit
ibase_fetch_row(),
ibase_fetch_object(),
ibase_free_result() und
ibase_free_query() weiter verarbeitet werden
kann.

Anmerkung: Obwohl diese Funktion auch die Verwendung von Platzhaltern unterstützt, ist ihr keine besondere Bedeutung beizumessen. Für reale Abfragen und Beispiele sehen sie unter ibase_prepare() und ibase_execute() nach.

Zurück | Zum Anfang | Nach vorne
ibase_prepare | Nach oben | ibase_restore


ibase_restore

(PHP 5)

ibase_restore -- Initiates a restore task in the service manager and returns immediately

Description

mixed ibase_restore ( resource service_handle, string source_file, string dest_db [, int options [, bool verbose]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ibase_query | Nach oben | ibase_rollback_ret


ibase_rollback_ret

(PHP 5)

ibase_rollback_ret -- Roll back a transaction without closing it

Description

bool ibase_rollback_ret ( [resource link_identifier])

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. The transaction context will be retained, so statements executed from within this transaction will not be invalidated. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ibase_restore | Nach oben | ibase_rollback


ibase_rollback

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_rollback -- Roll back a transaction

Description

bool ibase_rollback ( [resource link_identifier])

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ibase_rollback_ret | Nach oben | ibase_server_info


ibase_server_info

(PHP 5)

ibase_server_info -- Request information about a database server

Description

string ibase_server_info ( resource service_handle, int action)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ibase_rollback | Nach oben | ibase_service_attach


ibase_service_attach

(PHP 5)

ibase_service_attach -- Connect to the service manager

Description

resource ibase_service_attach ( string host, string dba_username, string dba_password)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ibase_server_info | Nach oben | ibase_service_detach


ibase_service_detach

(PHP 5)

ibase_service_detach -- Disconnect from the service manager

Description

bool ibase_service_detach ( resource service_handle)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ibase_service_attach | Nach oben | ibase_set_event_handler


ibase_set_event_handler

(PHP 5)

ibase_set_event_handler -- Register a callback function to be called when events are posted

Description

resource ibase_set_event_handler ( [resource connection, callback event_handler, string event_name1 [, string event_name2 [, string ...]]])

This function registers a PHP user function as event handler for the specified events. The callback is called with the event name and the link resource as arguments whenever one of the specified events is posted by the database. The callback must return FALSE if the event handler should be canceled. Any other return value is ignored.

<?php

function event_handler($event_name, $link)
{
    if ($event_name=="NEW ORDER") {
        // process new order
        ibase_query($link, "UPDATE orders SET status='handled'");
    } else if ($event_name=="DB_SHUTDOWN") {
        // free event handler
        return false;
    }
}

ibase_set_event_handler($link, "event_handler", "NEW_ORDER", "DB_SHUTDOWN");
?>

The return value is an event resource. This resource can be used to free the event handler using ibase_free_event_handler().

See also ibase_free_event_handler() and ibase_wait_event().

Zurück | Zum Anfang | Nach vorne
ibase_service_detach | Nach oben | ibase_timefmt


ibase_timefmt

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_timefmt -- Bestimmt das Format von Zeitstempel-, Datums- und Zeit-Feldern, die von einer Abfrage zurück gegeben werden

Beschreibung:

int ibase_timefmt ( string format [, int columntype])

Bestimmt das Format von Zeitstempel-, Datums- und Zeit-Feldern, die durch eine Abfrage zurück gegeben werden. Intern werden diese Felder durch die C-Funktion strftime() formatiert. Deshalb finden sie in der dazu bestehenden Dokumentation genaue Hinweise über das entsprechende String-Format. Der optionale Parameter columntype kann eine der Konstanten IBASE_TIMESTAMP, IBASE_DATE oder IBASE_TIME sein. Fehlt er, wird per default von IBASE_TIMESTAMP ausgegangen (wegen der Abwärts-Kompatibilität).

<?php
    // InterBase 6 Zeit-Typ-Felder werden im
    // Format '05 Stunden 37 Minuten' zurück gegeben.
    ibase_timefmt("%H Stunden %M Minuten", IBASE_TIME);
?>

Sie können über die PHP-Konfigurations-Anweisungen ibase.timestampformat, ibase.dateformat und ibase.timeformat den default-Wert anpassen.

Anmerkung: Columntype wurde in PHP 4.0 hinzu gefügt. Er hat erst ab InterBase-Version 6 eine Bedeutung.

Anmerkung: Eine Abwärts-Inkompatibilität wurde in PHP 4.0 behoben, indem die Konfigurations-Anweisung ibase.timeformat umbenannt wurde in ibase.timestampformat und die Anweisungen ibase.dateformat und ibase.timeformat hinzu gefügt wurden. Dadurch entsprechen die Namen eher ihrer eigentlichen Funktionalität.

Zurück | Zum Anfang | Nach vorne
ibase_set_event_handler | Nach oben | ibase_trans


ibase_trans

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_trans -- Begin a transaction

Description

resource ibase_trans ( [int trans_args [, resource link_identifier]])

Begins a transaction.

trans_args can be a combination of IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT and IBASE_NOWAIT.

Anmerkung: The behaviour of this function has been changed in PHP 5.0.0. The first call to ibase_trans() will not return the default transaction of a connection. All transactions started by ibase_trans() will be rolled back at the end of the script if they were not committed or rolled back by either ibase_commit() or ibase_rollback().

Anmerkung: In PHP 5.0.0. and up, this function will accept multiple trans_args and link_identifier arguments. This allows transactions over multiple database connections, which are committed using a 2-phase commit algorithm. This means you can rely on the updates to either succeed in every database, or fail in every database. It does NOT mean you can use tables from different databases in the same query!

If you use transactions over multiple databases, you will have to specify both the link_id and transaction_id in calls to ibase_query() and ibase_prepare().

Zurück | Zum Anfang | Nach vorne
ibase_timefmt | Nach oben | ibase_wait_event


ibase_wait_event

(PHP 5)

ibase_wait_event -- Wait for an event to be posted by the database

Description

string ibase_wait_event ( [resource connection, string event_name1 [, string event_name2 [, string ...]]])

This function suspends execution of the script until one of the specified events is posted by the database. The name of the event that was posted is returned. This function accepts up to 15 event arguments.

See also ibase_set_event_handler() and ibase_free_event_handler().

Zurück | Zum Anfang | Nach vorne
ibase_trans | Nach oben | Ingres II Funktionen


Ingres II Funktionen

PHP Handbuch
Zurück Nach vorne

XLV. Ingres II Funktionen

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Mit diesen Funktionen können Sie auf einen Ingres II Datenbankserver zugreifen.

Damit Ihnen diese Funktionen zur Verfügung stehen, müssen Sie php mit der Ingres-Unterstützung kompilieren, indem Sie die Option --with-ingres angeben. Ausserdem brauchen Sie die Open API Bibliothek sowie header Dateien, die in Ingres II eingebunden werden. Falls die II_SYSTEM Umgebungsvariable nicht korrekt gesetzt ist, müssen Sie vielleicht --with-ingres=DIR benutzen, um Ihr Inges Installationsverzeichnis anzugeben.

Wenn Sie diese Erweiterung mit Apache benutzen, und Ihr Apache fährt nicht hoch, sondern bringt die Fehlermeldung: "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0", dann vergewissern Sie sich, dass die Umgebungsvariable II_SYSTEM korrekt gesetzt ist. Wenn Sie im Startskript für den Apache "export II_SYSTEM="/home/ingres/II" angeben, gerade bevor httpd gestartet wird, sollte dieses Problem gelöst sein.

Anmerkung: Falls Sie schon andere PHP Erweiterungen zum Zugriff auf andere Datenbankserver benutzt haben, sollten Sie beachten, dass Sie mit Ingres keine konkurrierenden Abfragen und/oder Transaktionen über eine Verbindung durchführen können. Darum finden Sie in dieser Erweiterung keine Ergebnis- oder Transaktions-Handler. Die Ergebnisse einer Abfrage müssen verarbeitet werden, bevor eine neue Abfrage an den Datenbankserver geschickt wird und eine Transaktion muss commited oder zurückgesetzt (roll-back) werden, bevor eine neue Transaktion geöffnet wird (die Transaktion wird automatisch geöffnet, wenn die erste Abfrage gesendet wird).

Inhaltsverzeichnis
ingres_autocommit -- Schaltet den autocommit-Modus an oder aus
ingres_close -- Schliesst eine Ingres II Datenbankverbindung
ingres_commit -- Schliesst eine Transaktion ab
ingres_connect -- Eine Verbindung zu einem Ingres II Datenbankserver öffnen
ingres_fetch_array -- Liest eine Zeile der Ergebnismenge in ein Array ein
ingres_fetch_object -- Holt eine Zeile als Objekt
ingres_fetch_row -- Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array
ingres_field_length -- Gibt die Länge eines Feldes zurück
ingres_field_name -- Holt den Namen eines Feldes in einer Ergebnismenge
ingres_field_nullable -- Prüft, ob für ein Feld NULL-Werte zugelassen sind
ingres_field_precision -- Gibt die Genauigkeit eines Feldes zurück
ingres_field_scale -- Gibt den Skalar eines Feldes zurück
ingres_field_type -- Gibt den Typ eines Feldes in einer Ergebnismenge zurück
ingres_num_fields -- Gibt die Anzahl der Felder der letzten Abfrage zurück
ingres_num_rows -- Gibt die Anzahl der Datensätze der Ergebnismenge zurück oder die Anzahl der von der letzten Abfrage betroffenen Datensätze
ingres_pconnect -- Öffnet eine persistente Verbindung zu einem Ingres II Datenbankserver
ingres_query -- Sendet eine SQL Abfrage an den Ingres II Server
ingres_rollback -- Setzt eine Transaktion zurück

Zurück | Zum Anfang | Nach vorne
ibase_wait_event | Nach oben | ingres_autocommit


ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5)

ingres_autocommit -- Schaltet den autocommit-Modus an oder aus

Beschreibung

bool ingres_autocommit ( [resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_autocommit() wird vor dem Öffnen einer Transaktion aufgerufen (vor dem ersten Aufruf der Funktion ingres_query() oder gleich nach einem Aufruf von ingres_rollback() oder ingres_autocommit()) um in den "autocommit" Modus des Servers ein- oder auszuschalten (beim Beginn eines Skripts ist der autocommit-Modus ausgeschaltet).

Wenn der autocommit-Modus eingeschaltet ist, wird jede Abfrage automatisch sofort vom Server commited, so als würde die Funktion ingres_commit() nach jedem Aufruf von ingres_query() aufgerufen werden.

Siehe auch
ingres_query(),
ingres_rollback() und
ingres_commit().

Zurück | Zum Anfang | Nach vorne
Ingres II Funktionen | Nach oben | ingres_close


ingres_close

(PHP 4 >= 4.0.2, PHP 5)

ingres_close -- Schliesst eine Ingres II Datenbankverbindung

Beschreibung

bool ingres_close ( [resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Gibt bei Erfolg TRUE zurück, bei einem Fehler FALSE.

ingres_close() schliesst die Verbindung zu dem Ingres Datenbankserver, der mit der übergebenen Verbindunkskennung verknüpft ist. Falls der Parameter link nicht angegeben wurde, wird die zuletzt geöffnete Verbindung geschlossen.

ingres_close() ist normalerweise nicht nötig, weil es keine persistenten Verbindungen schliesst und weil alle nicht-persistenten Verbindungen automatisch zum Ende des Skripts geschlossen werden.

Siehe auch ingres_connect() und ingres_pconnect().

Zurück | Zum Anfang | Nach vorne
ingres_autocommit | Nach oben | ingres_commit


ingres_commit

(PHP 4 >= 4.0.2, PHP 5)

ingres_commit -- Schliesst eine Transaktion ab

Beschreibung

bool ingres_commit ( [resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_commit() schliesst die aktuell offene Transaktion ab, indem alle Veränderungen in die Datenbank übernommen werden.

Dadurch wird die Transaktion beendet. Eine neue Transaktion kann geöffnet werden, indem man eine neue Abfrage mit ingres_query() an den Datenbankserver schickt.

Sie können auch den Server automatisch nach jeder Abfrage einen Commit ausführen lassen, wenn sie die Funktion ingres_autocommit() aufrufen, bevor Sie die Transaktion öffnen.

Siehe auch
ingres_query(),
ingres_rollback() und
ingres_autocommit().

Zurück | Zum Anfang | Nach vorne
ingres_close | Nach oben | ingres_connect


ingres_connect

(PHP 4 >= 4.0.2, PHP 5)

ingres_connect -- Eine Verbindung zu einem Ingres II Datenbankserver öffnen

Beschreibung

resource ingres_connect ( [string database [, string username [, string password]]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Gibt bei Erfolg eine Ingres II Verbindungskennung zurück, oder FALSE, wenn ein Fehler auftritt.

ingres_connect() öffnet eine Verbindung zu dem Ingres Datenbankserver, der im database Argument angegeben ist und die Syntax [node_id::]dbname[/svr_class] hat.

Wenn einige Parameter fehlen, benutzt ingres_connect() die Werte, die in der php.ini für ingres.default_database, ingres.default_user und ingres.default_password eingetragen sind.

Die Verbindung wird geschlossen, wenn das Skript zuende ist oder wenn die Funktion ingres_close() mit der aktuellen Verbindungskennung aufgerufen wird.

Alle anderen Ingres-Funktionen benutzen standardmässig die zuletzt geöffnete Verbindung, so dass Sie den Rückgabewert nur dann speichern müssen, wenn Sie mehr als eine Verbindung zur gleichen Zeit benutzen.

Beispiel 1. ingres_connect() Beispiel

<?php
    $link = ingres_connect ("mydb", "user", "pass")
        or die ("Verbindung fehlgeschlagen");
    print ("Verbindungsaufbau erfolgreich");
    ingres_close ($link);
?>

Beispiel 2. ingres_connect() Beispiel mit der aktuellen Verbindungskennung

<?php
    ingres_connect ("mydb", "user", "pass")
        or die ("Verbindung fehlgeschlagen");
    print ("Verbindungsaufbau erfolgreich");
    ingres_close ();
?>

Siehe auch ingres_pconnect() und ingres_close().

Zurück | Zum Anfang | Nach vorne
ingres_commit | Nach oben | ingres_fetch_array


ingres_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

ingres_fetch_array -- Liest eine Zeile der Ergebnismenge in ein Array ein

Beschreibung

array ingres_fetch_array ( [int result_type [, resource link]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_fetch_array() Gibt ein Array zurück, das die die entsprechende Zeile der Ergebnismenge enthält oder FALSE falls das die Ergebnismenge keine Zeilen mehr enthält.

Diese Funktion ist eine erweiterte Version der Funktion ingres_fetch_row(). Zusätzlich zur Speicherung der Daten unter numerischen Indizes werden die Daten auch unter assoziativen Indizes im Ergebnisarray gespeichert, in dem die Feldnamen als Schlüssel benutzt werden.

Falls eine oder mehrere Spalten der Ergebnismenge dieselben Feldnamen haben, bekommt die letzte Spalte die Priorität. Um auf die anderen Spalten zuzugreifen, müssen sie entweder den numerischen Index der Spalte benutzen oder Aliase für die Spalten machen.

ingres_query(select t1.f1 as foo t2.f1 as bar from t1, t2);
$result = ingres_fetch_array();
$foo = $result["foo"];
$bar = $result["bar"];

result_type kann INGRES_NUM für ein numerisches Array sein oder INGRES_ASSOC für ein assoziatives Array, oder INGRES_BOTH (Standard).

Von der Geschwindigkeit her ist diese Funktion identisch zu ingres_fetch_object(), und fast so schnell wie ingres_fetch_row() (der Unterschied ist zu vernachlässigen).

Beispiel 1. ingres_fetch_array() Beispiel

<?php
ingres_connect ($database, $user, $password);

ingres_query ("select * from table");
while ($row = ingres_fetch_array()) {
    echo $row["user_id"];  # benutzt ein assoziatives Array
    echo $row["fullname"];
    echo $row[1];          # benutzt ein numerisches Array
    echo $row[2];
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_object() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_connect | Nach oben | ingres_fetch_object


ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

ingres_fetch_object -- Holt eine Zeile als Objekt

Beschreibung

object ingres_fetch_object ( [int result_type [, resource link]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_fetch_object() Gibt ein Objekt zurück, das mit der geholten Zeile einer Ergebnismenge korrespondiert oder FALSE, wenn es keine Zeilen mehr in der Egebnismenge gibt.

Diese Funktion ist ähnlich zu ingres_fetch_array(), mit einem Unterschied - ein Objekt wird anstelle eines Arrays zurückgegeben. Indirekt heisst das, dass Sie die Daten nur über ihre Feldnamen ansprechen können und nicht über ihre Offsets (Zahlen sind unzulässige Namen für Objekteigenschaften).

Das optionale Argument result_type ist eine Konstante, die die folgenden Werte annehmen kann: INGRES_ASSOC, INGRES_NUM und INGRES_BOTH.

Diese Funktion ist von der Geschwindigkeit her identisch zu ingres_fetch_array(), und fast so schnell wie ingres_fetch_row() (der Unterschied ist zu vernachlässigen).

Beispiel 1. ingres_fetch_object() Beispiel

<?php
ingres_connect ($database, $user, $password);
ingres_query ("select * from table");
while ($row = ingres_fetch_object()) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

Siehe auch
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_array() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_fetch_array | Nach oben | ingres_fetch_row


ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5)

ingres_fetch_row -- Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array

Beschreibung

array ingres_fetch_row ( [resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_fetch_row() gibt ein Array zurück, das die entsprechende Zeile der Ergebnismenge enthält oder FALSE, falls es keine Zeilen mehr in der Ergebnismenge gibt. Jede Spalte ist unter einem Array-Offset, beginnend mit 1, gespeichert.

Aufeinanderfolgende Aufrufe von ingres_fetch_row() würden immer die nächste Zeile der Ergebnismenge zurückgeben oder FALSE, wenn es keine Zeilen mehr gibt.

Beispiel 1. ingres_fetch_row() Beispiel

<?php
ingres_connect ($database, $user, $password);

ingres_query ("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

Siehe auch
ingres_num_fields(),
ingres_query(),
ingres_fetch_array() und
ingres_fetch_object().

Zurück | Zum Anfang | Nach vorne
ingres_fetch_object | Nach oben | ingres_field_length


ingres_field_length

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_length -- Gibt die Länge eines Feldes zurück

Beschreibung

int ingres_field_length ( int index [, resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_field_length() gibt die Länge eines Feldes zurück. Das ist die Anzahl der Bytes, die der Server zum Speichern des Feldes belegt. Für genauere Informationen schauen sie in den Ingres/OpenAPI User Guide - Appendix C.

index ist die Feldnummer und muss zwischen 1 und dem Wert liegen, den die Funktion ingres_num_fields() zurückgibt.

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_fetch_row | Nach oben | ingres_field_name


ingres_field_name

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_name -- Holt den Namen eines Feldes in einer Ergebnismenge

Beschreibung

string ingres_field_name ( int index [, resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_field_name() gibt den Namen eines Feldes in einer Ergebnismenge zurück oder FALSE, falls ein Fehler aufgetreten ist.

index gibt die Nummer des Feldes an und muss zwischen 1 und dem Wert, der von ingres_num_fields() zurückgegeben wird, liegen.

Siehe auch
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_field_length | Nach oben | ingres_field_nullable


ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_nullable -- Prüft, ob für ein Feld NULL-Werte zugelassen sind

Beschreibung

bool ingres_field_nullable ( int index [, resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_field_nullable() gibt TRUE zurück, falls in dieser Spalte NULL-Werte zugelasssen sind und FALSE, falls das nicht erlaubt ist.

index ist die Feldnummer und muss zwischen 1 und dem Wert liegen, den die Funktion ingres_num_fields() zurückgibt.

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_field_name | Nach oben | ingres_field_precision


ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_precision -- Gibt die Genauigkeit eines Feldes zurück

Beschreibung

int ingres_field_precision ( int index [, resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_field_precision() gibt die Genauigkeit eines Feldes zurück. Dieser Rückgabewert wird nur für Dezimalzahlen, Fliesskommazahlen und monetäre SQL Datentypen benutzt. Wenn Sie es genauer wissen wollen, schauen Sie sich den Ingres/OpenAPI User Guide - Appendix C an.

index ist die Feldnummer und muss zwischen 1 und dem Wert liegen, den die Funktion ingres_num_fields() zurückgibt.

Siehe auch
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_field_nullable | Nach oben | ingres_field_scale


ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_scale -- Gibt den Skalar eines Feldes zurück

Beschreibung

int ingres_field_scale ( int index [, resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_field_scale() gibt den Skalar eines Feldes zurück.Dieser Rückgabewert wird nur für Dezimalzahlen, Fliesskommazahlen und monetäre SQL Datentypen benutzt. Für nähere Informationen schauen Sie sich den Ingres/OpenAPI User Guide - Appendix C an.

index ist die Feldnummer und muss zwischen 1 und dem Wert liegen, den die Funktion ingres_num_fields() zurückgibt.

Siehe auch
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_field_precision | Nach oben | ingres_field_type


ingres_field_type

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_type -- Gibt den Typ eines Feldes in einer Ergebnismenge zurück

Beschreibung

string ingres_field_type ( int index [, resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_field_type() gibt den Typ eines Feldes in einer Ergebnismenge zurück oder FALSE, wenn ein Fehler aufgetreten ist. Beispiele von Rückgabewerten sind: "IIAPI_BYTE_TYPE", "IIAPI_CHA_TYPE", "IIAPI_DTE_TYPE", "IIAPI_FLT_TYPE", "IIAPI_INT_TYPE", "IIAPI_VCH_TYPE". Einige dieser Typen können, in Abhängigkeit von der Feldlänge, mehrere SQL Typen umfassen. (siehe ingres_field_length()). Beispielsweise kann "IIAPI_FLT_TYPE" entweder float4 oder float8 sein. Genauere Informationen darüber finden Sie in dem Ingres/OpenAPI User Guide - Appendix C.

index ist die Feldnummer und muss zwischen 1 und dem Wert liegen, den die Funktion ingres_num_fields() zurückgibt.

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_field_scale | Nach oben | ingres_num_fields


ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5)

ingres_num_fields -- Gibt die Anzahl der Felder der letzten Abfrage zurück

Beschreibung

int ingres_num_fields ( [resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_num_fields() liefert die Anzahl der Felder in der Ergebnismenge zurück, die vom Ingres Server nach einem Aufruf von ingres_query() zurückgegeben wurde.

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_field_type | Nach oben | ingres_num_rows


ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5)

ingres_num_rows -- Gibt die Anzahl der Datensätze der Ergebnismenge zurück oder die Anzahl der von der letzten Abfrage betroffenen Datensätze

Beschreibung

int ingres_num_rows ( [resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Bei delete-, insert- or update-queries, gibt ingres_num_rows() die Anzahl der durch diese Abfragen betroffenen Datensätze zurück. Bei den anderen Abfragen gibt ingres_num_rows() die Anzahl der Datensätze in der Ergebnismenge zurück.

Anmerkung: Diese Funktion dient hauptsächlich dazu, die Anzahl der veränderten Datensätze in einer Datenbank festzustellen. Wenn diese Funktion aufgerufen wird, bevor ingres_fetch_array(), ingres_fetch_object() oder ingres_fetch_row() aufgerufen wurde, löscht der Server die Ergebnisdaten so dass das Skript sie nicht auslesen kann.

Sie sollten stattdessen die Daten der Ergebnismenge mit einer dieser fetch-Funktionen in einer Schleife auslesen, solange, bis keine Datensätze mehr zum Lesen da sind und damit die Schleifenbedingung FALSE wird.

Siehe auch
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() und
ingres_fetch_row().

Zurück | Zum Anfang | Nach vorne
ingres_num_fields | Nach oben | ingres_pconnect


ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5)

ingres_pconnect -- Öffnet eine persistente Verbindung zu einem Ingres II Datenbankserver

Beschreibung

resource ingres_pconnect ( [string database [, string username [, string password]]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Gibt bei Erfolg eine Ingres II Verbindungskennung zurück oder oder FALSE, wenn ein Fehler aufgetreten ist.

Zu den Details über die Parameter siehe ingres_connect() und die Beispiele. Es gibt nur zwei Unterschiede zwischen den Funktionen ingres_pconnect() und ingres_connect(): Zum ersten: beim Verbindungsaufbau schaut die Funktion zuerst, ob schon eine geöffnete persistente Verbindung besteht, die mit denselben Parametern geöffnet wurde. Falls eine gefunden wird, wird ein Identifizierer zurückgegeben, anstatt eine neue Verbindung zu öffnen. Zum zweiten: Die Verbindung zum Ingres Server wird nicht geschlossen wenn die Ausführung des Skripts beendet ist, sondern die Verbindung bleibt zum weiteren Gebrauch offen (ingres_close() schliesst die Verbindungen, die mit ingres_pconnect() geöffnet wurden nicht). Darum wird diese Art der Verbindung 'persistent' genannt.

Siehe auch ingres_connect() und ingres_close().

Zurück | Zum Anfang | Nach vorne
ingres_num_rows | Nach oben | ingres_query


ingres_query

(PHP 4 >= 4.0.2, PHP 5)

ingres_query -- Sendet eine SQL Abfrage an den Ingres II Server

Beschreibung

bool ingres_query ( string query [, resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Gibt bei Erfolg TRUE zurück und bei einem Fehler FALSE.

ingres_query() sendet die übergebene query an den Ingres Server. Diese Abfrage muss ein gültiger SQL-String sein (Siehe die Ingres Dokumentation).

Die Abfrage wird zu einem Teil der aktuell offenen Transaktion. Falls keine Transaktion geöffnet ist, öffnet ingres_query() eine neue Transaktion. Um diese zu schliessen, können Sie entweder ingres_commit() aufrufen, um die gemachten Änderungen in die Datenbank zu schreiben, oder Sie rufen ingres_rollback() auf, um diese Änderungen zrückzusetzen. Wenn das Skript beendet wird, wird jede offene Transaktion zurückgesetzt (indem die Funktion ingres_rollback() aufgerufen wird). Sie können auch die Funktion ingres_autocommit() benutzen, bevor Sie eine neue Transaktion öffnen, damit werden alle einzelnen SQL-Abfrage sofort gesendet.

Einige SQL Abfragen können mit dieser Funktion nicht gesendet werden:

  • close (siehe ingres_close())

  • commit (siehe ingres_commit())

  • connect (siehe ingres_connect())

  • disconnect (siehe ingres_close())

  • get dbevent

  • prepare to commit

  • rollback (siehe ingres_rollback())

  • savepoint

  • set autocommit (siehe ingres_autocommit())

  • und alle Abfragen, die Cursors benutzen, werden nicht unterstützt

Beispiel 1. ingres_query() example

<?php
ingres_connect ($database, $user, $password);

ingres_query ("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

Siehe auch
ingres_fetch_array(),
ingres_fetch_object(),
ingres_fetch_row(),
ingres_commit(),
ingres_rollback() und
ingres_autocommit().

Zurück | Zum Anfang | Nach vorne
ingres_pconnect | Nach oben | ingres_rollback


ingres_rollback

(PHP 4 >= 4.0.2, PHP 5)

ingres_rollback -- Setzt eine Transaktion zurück

Beschreibung

bool ingres_rollback ( [resource link])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ingres_rollback() setzt die aktuell geöffnete Transaktion zurück und macht alle Änderungen, die in der Transaktion bereits durchgeführt wurden, wieder rückgängig.

Diese Funktion schliesst die Transaktion. Eine Neue Transaktion kann geöffnet werden, wenn man mit ingres_query() eine neue Abfrage an den Datenbankserver schickt.

Siehe auch
ingres_query(),
ingres_commit() und
ingres_autocommit().

Zurück | Zum Anfang | Nach vorne
ingres_query | Nach oben | IRC Gateway Funktionen


IRC Gateway Funktionen

PHP Handbuch
Zurück Nach vorne

XLVI. IRC Gateway Funktionen

Was ist ircg?

IRCG ermöglicht die Entwicklung schneller und skalierbarer Webchats die über einen privaten oder öffentlichen IRC-Server kommunizieren.

Plattformen

IRCG kann auf folgenden Betriebssystemen verwendet werden:

  • AIX

  • FreeBSD

  • HP-UX

  • Irix

  • Linux

  • Solaris

  • Tru64

Benötigte Software

Um die IRCG-Funktionen zu verwenden, muss folgende Software installiert sein:

  1. IRCG-Library von Sascha Schumann.

  2. SGI Static Threads Library

  3. thttpd webserver

Installation

Eine ausführliche Installationsanleitung befindet sich hier.

Inhaltsverzeichnis
ircg_channel_mode -- Setzt die Channel Attribute für einen Benutzer
ircg_disconnect -- Beendet die Verbindung zum IRC-Server
ircg_fetch_error_msg -- Liefert den Fehler des letzten ircg Funktionsaufrufes.
ircg_get_username -- Liefert den Benutzernamen zurück
ircg_html_encode -- Wandelt einen HTML string für die Ausgabe um
ircg_ignore_add -- Fügt einen Benutzer an die Liste der zu ignorierenden Personen an.
ircg_ignore_del -- Entfernt einen Benutzer von der Liste ignorierter Personen
ircg_invite -- Invites nickname to channel
ircg_is_conn_alive -- Check connection status
ircg_join -- Einen Channel auf dem verbundenen IRC-Server betreten
ircg_kick -- Entfernt einen Benutzer aus einem Channel
ircg_list -- List topic/user count of channel(s)
ircg_lookup_format_messages -- Wählt ein Format für die Ausgabe von IRC-Nachrichten und Ereignissen aus.
ircg_lusers -- IRC network statistics
ircg_msg -- Sendet eine Nachricht an einen Channel oder Benutzer
ircg_nick -- ändert den Benutzernamen auf dem IRC-Server
ircg_nickname_escape -- Formatiert einen Benutzernamen in einen gültigen IRC-Namen
ircg_nickname_unescape -- Decodiert einen IRC konformen Benutzernamen
ircg_notice -- Sendet eine Notiz zu einem anderen Benutzer
ircg_oper -- Elevates privileges to IRC OPER
ircg_part -- Einen Channel auf dem IRC-Server verlassen
ircg_pconnect -- Verbindung zum IRC-Server aufbauen
ircg_register_format_messages -- Registriert die Ausgabeformatierungen für Nachrichten und Ereignisse vom IRC-Server
ircg_set_current -- Setzt die Verbindung für die Ausgabe der IRC-Server Meldungen
ircg_set_file -- Legt eine Logdatei an
ircg_set_on_die -- Setzt eine Aktion bei Abbruch der Verbindung
ircg_topic -- Setzt das Thema für einen Channel
ircg_who -- Queries server for WHO information
ircg_whois -- Liefert die Information über einen bestimmten Benutzer

Zurück | Zum Anfang | Nach vorne
ingres_rollback | Nach oben | ircg_channel_mode


ircg_channel_mode

(PHP 4 >= 4.0.5, PHP 5)

ircg_channel_mode -- Setzt die Channel Attribute für einen Benutzer

Beschreibung

boolean ircg_channel_mode ( resource connection, string channel, string mode_spec, string nick)

Setzt die Attribute mode_spec in einem Channel channel auf dem verbundenen Server connection für den Benutzer nick.

Die Attribute werden gesetzt oder gelöscht durch Angabe eines Zeichen verbunden mit einem Plus oder Minuszeichen. Ein Operator-Attribut beispielsweise wird mittels '+o' gesetzt oder durch '-o' entfernt.

Siehe auch:

Zurück | Zum Anfang | Nach vorne
IRC Gateway Funktionen | Nach oben | ircg_disconnect


ircg_disconnect

(PHP 4 >= 4.0.4, PHP 5)

ircg_disconnect -- Beendet die Verbindung zum IRC-Server

Beschreibung

boolean ircg_disconnect ( resource connection, string reason)

ircg_disconnect() beendet die Verbindung connection zu einem IRC-Server, die mittels der Funktion ircg-pconnect() hergestellt wurde

Siehe auch: ircg_pconnect().

Zurück | Zum Anfang | Nach vorne
ircg_channel_mode | Nach oben | ircg_fetch_error_msg


ircg_fetch_error_msg

(PHP 4 >= 4.1.0, PHP 5)

ircg_fetch_error_msg -- Liefert den Fehler des letzten ircg Funktionsaufrufes.

Beschreibung

array ircg_fetch_error_msg ( resource connection)

ircg_fetch_error_msg() Liefet den Fehler der Verbindung connection der letzten aufgerufenen ircg Funktion zurück.

Anmerkung: Die Fehlernummer wird im ersten Element des Arrays zurückgeliefert, der Fehlertext im zweiten Parameter.

Beispiel 1. ircg_fetch_error_msg() Beispiel

if (!ircg_join ($id, "#php")){
       $error = ircg_fetch_error_msg($id);
       print ("Can't join channel #php. Errorcode: $error[0] Description: $error[1]");
       }

Zurück | Zum Anfang | Nach vorne
ircg_disconnect | Nach oben | ircg_get_username


ircg_get_username

(PHP 4 >= 4.1.0, PHP 5)

ircg_get_username -- Liefert den Benutzernamen zurück

Beschreibung

string ircg_get_username ( int connection)

Die Funktion ircg_get_username() liefert den aktuellen Benutzernamen für die Verbindung connection zurück. Ist die Verbindung ungültig, oder wurde die Verbindung abgebrochen, liefert ircg_get_username() FALSE zurück.

Zurück | Zum Anfang | Nach vorne
ircg_fetch_error_msg | Nach oben | ircg_html_encode


ircg_html_encode

(PHP 4 >= 4.0.5, PHP 5)

ircg_html_encode -- Wandelt einen HTML string für die Ausgabe um

Beschreibung

boolean ircg_html_encode ( string html_string)

Wandelt den HTML-String html_string für die Ausgabe um. Dies ist beispielsweise sinnvoll, wenn in einem Channel über HTML oder Beispiele diskutiert wird.

Siehe auch:

Zurück | Zum Anfang | Nach vorne
ircg_get_username | Nach oben | ircg_ignore_add


ircg_ignore_add

(PHP 4 >= 4.0.5, PHP 5)

ircg_ignore_add -- Fügt einen Benutzer an die Liste der zu ignorierenden Personen an.

Beschreibung

boolean ircg_ignore_add ( resource connection, string nick)

Die Function fügt den Benutzer nick zur persönlichen Liste der ignorierten Benutzer auf dem verbundenen IRC-Server connection hinzu. Dadurch werden von diesem Benutzer keine Nachrichten mehr angezeigt.

Siehe auch: ircg_ignore_del() .

Zurück | Zum Anfang | Nach vorne
ircg_html_encode | Nach oben | ircg_ignore_del


ircg_ignore_del

(PHP 4 >= 4.0.5, PHP 5)

ircg_ignore_del -- Entfernt einen Benutzer von der Liste ignorierter Personen

Beschreibung

boolean ircg_ignore_del ( resource connection, string nick)

Diese Funktion entfernt den Benutzer nick von der Liste der ignorierten Personen auf dem verbunden IRC-Server connection.

Siehe auch: ircg_ignore_add().

Zurück | Zum Anfang | Nach vorne
ircg_ignore_add | Nach oben | ircg_invite


ircg_invite

(PHP 4 >= 4.3.3, PHP 5)

ircg_invite -- Invites nickname to channel

Description

bool ircg_invite ( resource connection, string channel, string nickname)

ircg_invite() will send an invitation to the user nickname, prompting him to join channel. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ircg_ignore_del | Nach oben | ircg_is_conn_alive


ircg_is_conn_alive

(PHP 4 >= 4.0.5, PHP 5)

ircg_is_conn_alive -- Check connection status

Beschreibung

boolean ircg_is_conn_alive ( resource connection)

ircg_is_conn_alive() gibt den Wert TRUE zurück, wenn die Verbindung connection zum IRC-Server besteht, oder FALSE falls keine gültige Verbindung mehr besteht.

Zurück | Zum Anfang | Nach vorne
ircg_invite | Nach oben | ircg_join


ircg_join

(PHP 4 >= 4.0.4, PHP 5)

ircg_join -- Einen Channel auf dem verbundenen IRC-Server betreten

Beschreibung

boolean ircg_join ( resource connection, string channel)

Betritt den Channel channel auf dem IRC-Server connection.

Siehe auch:

Zurück | Zum Anfang | Nach vorne
ircg_is_conn_alive | Nach oben | ircg_kick


ircg_kick

(PHP 4 >= 4.0.5, PHP 5)

ircg_kick -- Entfernt einen Benutzer aus einem Channel

Beschreibung

boolean ircg_kick ( resource connection, string channel, string nick, string reason)

Entfernt den Benutzer nick vom Channel channel auf dem verbundenen IRC-Server connection. reason gibt den Grund an, warum der User aus dem Channel geworfen wird.

Zurück | Zum Anfang | Nach vorne
ircg_join | Nach oben | ircg_list


ircg_list

(PHP 4 >= 4.3.3, PHP 5)

ircg_list -- List topic/user count of channel(s)

Description

bool ircg_list ( resource connection, string channel)

ircg_list() will request a list of users in the channel. The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. ircg_list() example

<?php

// connect to server
$id = ircg_pconnect($nickname, $ip, $port);

// set to output to a file
ircg_set_file($id, 'irc_output.html');

// try to join a channel
if (!ircg_join($id, $channel)) {
    echo "Cannot /join $channel<br />";
}

// send list command
ircg_list($id, $channel);

// wait for output to arrive
sleep(5);

// disconnect
ircg_disconnect($id,'Bye World');

// output everything
readfile('irc_output.html');

?>

This example will output something similar to:

...
Channel #channel has n users and the topic is 'Topic'
End of LIST
...

See also: ircg_set_file(),
ircg_set_current(), and
ircg_who().

Zurück | Zum Anfang | Nach vorne
ircg_kick | Nach oben | ircg_lookup_format_messages


ircg_lookup_format_messages

(PHP 4 >= 4.0.5, PHP 5)

ircg_lookup_format_messages -- Wählt ein Format für die Ausgabe von IRC-Nachrichten und Ereignissen aus.

Beschreibung

boolean ircg_lookup_format_messages ( string name)

Wählt ein über die Funktion ircg_register_format() definiertes Format string zur Formatierung der Ausgabe von IRC-Server Nachrichten und Ereignissen aus. Unter dem Namen ircg steht ein Standardformat zur Verfügung.

Siehe auch: ircg_register_format_messages()

Zurück | Zum Anfang | Nach vorne
ircg_list | Nach oben | ircg_lusers


ircg_lusers

(PHP 4 >= 4.3.3, PHP 5)

ircg_lusers -- IRC network statistics

Description

bool ircg_lusers ( resource connection)

ircg_lusers() will request a statistical breakdown of users on the network connected to on connection. The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also: ircg_set_file(), and ircg_set_current().

Zurück | Zum Anfang | Nach vorne
ircg_lookup_format_messages | Nach oben | ircg_msg


ircg_msg

(PHP 4 >= 4.0.4, PHP 5)

ircg_msg -- Sendet eine Nachricht an einen Channel oder Benutzer

Beschreibung

boolean ircg_msg ( resource connection, string recipient, string message [, boolean suppress])

ircg_msg() sendet eine Nachricht an einen Channel oder Benutzer auf dem IRC-Server connection. Der Parameter recipient, beginnend mit einem # oder & sendet die Nachricht an einen Channel, andere Angaben werden als Benutzername interpretiert.

Wird der optionale Parameter suppress auf TRUE gesetzt, wird die Ausgabe der Nachricht auf der eigenen Verbindung unterbunden.

Zurück | Zum Anfang | Nach vorne
ircg_lusers | Nach oben | ircg_nick


ircg_nick

(PHP 4 >= 4.0.5, PHP 5)

ircg_nick -- ändert den Benutzernamen auf dem IRC-Server

Beschreibung

boolean ircg_nick ( resource connection, string nick)

Ändert den Benutzernamen auf dem IRC-Server connection auf den neuen Benutzernamen nick.

liefert bei erfolgreicher Änderung TRUE oder FALSE falls der name nicht geändert werden konnte.

Zurück | Zum Anfang | Nach vorne
ircg_msg | Nach oben | ircg_nickname_escape


ircg_nickname_escape

(PHP 4 >= 4.0.6, PHP 5)

ircg_nickname_escape -- Formatiert einen Benutzernamen in einen gültigen IRC-Namen

Beschreibung

string ircg_nickname_escape ( string nick)

Die Funktion ircg_nickname_escape() formatiert einen Benutzernamen nick in einen IRC konformes Format, und liefert den umgewandelten Namen zurück.

Siehe auch: ircg_nickname_unescape()

Zurück | Zum Anfang | Nach vorne
ircg_nick | Nach oben | ircg_nickname_unescape


ircg_nickname_unescape

(PHP 4 >= 4.0.6, PHP 5)

ircg_nickname_unescape -- Decodiert einen IRC konformen Benutzernamen

Beschreibung

string ircg_nickname_unescape ( string nick)

Function ircg_nickname_unescape() liefert einen decodierten Benutzernamen zurück, der über den Parameter nick übergeben wurde.

Siehe auch: ircg_nickname_escape()

Zurück | Zum Anfang | Nach vorne
ircg_nickname_escape | Nach oben | ircg_notice


ircg_notice

(PHP 4 >= 4.0.5, PHP 5)

ircg_notice -- Sendet eine Notiz zu einem anderen Benutzer

Beschreibung

boolean ircg_notice ( resource connection, string , string message)

Sendet eine Nachricht message zum angegebenen Benutzer nick auf dem verbunden IRC-Server connection. Der genaue Unterschied zwischen einer Nachricht und einer Notiz ist dem IRC-Manual zu entnehmen.

Siehe auch:

Zurück | Zum Anfang | Nach vorne
ircg_nickname_unescape | Nach oben | ircg_oper


ircg_oper

(PHP 4 >= 4.3.3, PHP 5)

ircg_oper -- Elevates privileges to IRC OPER

Description

bool ircg_oper ( resource connection, string name, string password)

ircg_oper() will authenticate the logged in user on connection as an IRC operator. name and password must match a registered IRC operator account. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ircg_notice | Nach oben | ircg_part


ircg_part

(PHP 4 >= 4.0.4, PHP 5)

ircg_part -- Einen Channel auf dem IRC-Server verlassen

Beschreibung

boolean ircg_part ( resource connection, string channel)

Verlässt den Channel channel auf dem IRC-Server connection.

Siehe auch:

Zurück | Zum Anfang | Nach vorne
ircg_oper | Nach oben | ircg_pconnect


ircg_pconnect

(PHP 4 >= 4.0.4, PHP 5)

ircg_pconnect -- Verbindung zum IRC-Server aufbauen

Beschreibung

resource ircg_pconnect ( string username [, string server_ip [, int server_port [, string msg_format [, array ctcp_messages [, array user_settings]]]]])

ircg_pconnect() Stellt eine Verbindung zum einem IRC Server her, und liefert eine Verbindunskennung.

Der Parameter username muss angeben werden, er legt den Benutzernamen auf dem Server fest. server_ip und server_port sind optional. Werden diese nicht angegben wird für server_ip der Wert 127.0.0.1 (localhost) und für server_port der Wert 6667 gesetzt.

Anmerkung: Der Parameter server_ip muss aus einer IP-Adresse in numerischer Form bestehen.

Momentan gibt die Funktion ircg_pconnect() unabhängig davon, ob eine Verbindung zu Stande kam oder nicht, einen gültigen Wert zurück.

Die Ausgabe der IRC Meldungen und Ereignisse wird mit einem formatierten String, der vor dem Aufruf mit der Funktion ircg_register_format_messages() im Parameter msg_format definiert.

ctcp_messages

user_settings

Siehe auch: ircg_disconnect(),
ircg_is_conn_alive(),
ircg_register_format_messages().

Zurück | Zum Anfang | Nach vorne
ircg_part | Nach oben | ircg_register_format_messages


ircg_register_format_messages

(PHP 4 >= 4.0.5, PHP 5)

ircg_register_format_messages -- Registriert die Ausgabeformatierungen für Nachrichten und Ereignisse vom IRC-Server

Beschreibung

boolean ircg_register_format_messages ( string name, array messages)

Mit der Funktion ircg_register_format_messages() kann die Formatierung der Ausgabe von IRC-Servermeldungen und -ereignissen festgelegt werden. Dabei ist es möglich mehrere Formate (Layer) zu definieren, die mit der Funktionircg_lookup_format_messages() ausgewählt werden können.

Die Funktionen für die Ausgabe werden in dem Array messages in folgender Reihenfolge übergeben:

  • Nachricht an den Channel

  • Erhalten einer privaten Nachricht

  • Private Nachricht gesendet

  • Ein Benutzer verlässt den Channel

  • Ein Benutzer betritt den Channel

  • Ein Benutzer wurde aus dem Channel geworfen (gekicked)

  • Thema (Topic) des Channels hat sich geändert

  • Fehler

  • schwerer Fehler

  • Ende der Benutzerliste (wird beim Betreten eines Channels gesendet)

  • Meldung beim eigenen Betreten eines Channels

  • Ein Benutzer ändert seinen Namen

  • Ein Benutzer beendet die Verbindung zum IRC-Server

  • Eine grössere Anzahl von Benutzern betritt den Channel (z.B. Bei netsplit/join)

  • Ein Benutzer aus der Liste bei massenhaftem Betreten eines Channels

  • Ende des massenhaften Betretens eines Channels

  • Benutzerinformation

  • Serverinformation

  • Information über Inaktivität

  • Information über den Channel

  • Ende Meldung bei Information über Channel (Listenende)

  • Benachrichtigung über Änderung des voice-Attributs

  • Benachrichtung über Änderung des Operator-Attributs

  • für den Channel gesperrter Benutzer

  • Ende der Liste gesperrter Benutzer

  • %f - von

  • %t - an

  • %c - channel

  • %r - vollständige Nachricht

  • %m - umgewandelte Nachricht

  • %j - für Javascript umgewandelte Nachricht

  • 1 - mod encode

  • 2 - decodierter Benutzername

Siehe auch: ircg_lookup_format_messages().

Zurück | Zum Anfang | Nach vorne
ircg_pconnect | Nach oben | ircg_set_current


ircg_set_current

(PHP 4 >= 4.0.4, PHP 5)

ircg_set_current -- Setzt die Verbindung für die Ausgabe der IRC-Server Meldungen

Beschreibung

boolean ircg_set_current ( resource connection)

Setzt die Verbindung für die Ausgabe. Alle Meldungen des verbundenen IRC-Servers, der über den Parameter connection spezifiziert wurde, werden über die in der Funktion ircg_register_format_messages() angegebenen Formatierungen ausgegeben.

Siehe auch: ircg_register_format_messages() and ircg_lookup_format_messages().

Zurück | Zum Anfang | Nach vorne
ircg_register_format_messages | Nach oben | ircg_set_file


ircg_set_file

(PHP 4 >= 4.2.0, PHP 5)

ircg_set_file -- Legt eine Logdatei an

Beschreibung

bool ircg_set_file ( int connection, string path)

Die Funktion ircg_set_file() legt eine Logdatei path für die Verbindung connection an, in der alle Ausgaben geloggt werden. ircg_set_file() liefert bei Auftreten eines Fehler FALSE zurück, ansonsten TRUE.

Zurück | Zum Anfang | Nach vorne
ircg_set_current | Nach oben | ircg_set_on_die


ircg_set_on_die

(PHP 4 >= 4.2.0, PHP 5)

ircg_set_on_die -- Setzt eine Aktion bei Abbruch der Verbindung

Beschreibung

bool ircg_set_on_die ( int connection, string host, int port, string data)

Im Falle eines Verbindungsabruchs der Verbindung connection sendet ircg_set_on_die() auf einem Irc-Server, der über host und port (Hinweis, der Parameter host muss eine gültige IPv4-Adresse enthalten) angegeben wird, die Zeichenkette data.

Zurück | Zum Anfang | Nach vorne
ircg_set_file | Nach oben | ircg_topic


ircg_topic

(PHP 4 >= 4.0.5, PHP 5)

ircg_topic -- Setzt das Thema für einen Channel

Beschreibung

boolean ircg_topic ( resource connection, string channel, string new_topic)

Ändert das Thema (Topic) für den Channel channel des verbundenen IRC-Servers connection in new_topic.

Zurück | Zum Anfang | Nach vorne
ircg_set_on_die | Nach oben | ircg_who


ircg_who

(PHP 4 >= 4.3.3, PHP 5)

ircg_who -- Queries server for WHO information

Description

bool ircg_who ( resource connection, string mask [, bool ops_only])

ircg_who() will request a list of users whose nickname is matching mask on connected network connection. The optional parameter ops_only will shrink the list to server operators only.

The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also: ircg_set_file(), and ircg_set_current().

Zurück | Zum Anfang | Nach vorne
ircg_topic | Nach oben | ircg_whois


ircg_whois

(PHP 4 >= 4.0.5, PHP 5)

ircg_whois -- Liefert die Information über einen bestimmten Benutzer

Beschreibung

boolean ircg_whois ( resource connection, string nick)

Weist den verbunden IRC-Server connection an, Informationen über den Benutzer nick anzuzeigen.

Siehe auch:

Zurück | Zum Anfang | Nach vorne
ircg_who | Nach oben | Java


Java

PHP Handbuch
Zurück Nach vorne

XLVII. Java

Es gibt zwei Wege, um die Welten von Java und PHP zu verbinden. Einerseits besteht die Möglichkeit PHP in eine Java Servlet Umgebung zu integrieren, andererseits kann man mit der Java Extension aus PHP heraus auf Java Klassen zugreifen. Die erste der beiden genannten Möglichkeit ist wesentlich stabiler und performanter als die zweitgenannte Lösung.

Die Java Erweiterung für PHP nutzt das Object Overloading von PHP 4 um auf Java Klassen zuzugreifen. Die Java Virtual Machine (JVM) wird hierbei über das Java Native Interface (JNI) erzeugt. Eine detaillierte Installationsbeschreibung entnehmen Sie bitte der Datei php4/ext/java/README.

Beispiel 1. Zugriff auf Java Klassen aus PHP heraus

<?php
  // In PHP Instanz der Java Klasse java.lang.System erzeugen
  $system = new Java('java.lang.System');

  // Zugriff auf die Objekteigenschaften
  print 'Java version='.$system->getProperty('java.version').' <br>';
  print 'Java vendor=' .$system->getProperty('java.vendor').'  <br>';
  print 'OS='.$system->getProperty('os.name').' '.
              $system->getProperty('os.version').' on '.
              $system->getProperty('os.arch').' <br>';

  // java.util.Date Beispiel
  $formatter = new Java('java.text.SimpleDateFormat',
                        "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

  print $formatter->format(new Java('java.util.Date'));
?>

Beispiel 2. Zugriff auf Java AWT aus PHP heraus

<?php
  // Dieses Beispiel kann nur als CGI ausgeführt werden.

  $frame  = new Java('java.awt.Frame', 'PHP');
  $button = new Java('java.awt.Button', 'Hallo Java Welt!');

  $frame->add('North', $button);
  $frame->validate();
  $frame->pack();
  $frame->visible = True;

  $thread = new Java('java.lang.Thread');
  $thread->sleep(10000);

  $frame->dispose();
?>
Notes:

  • new Java() erzeugt eine Instanz der angegebenen Java Klasse, falls ein geeigneter Konstruktur gefunden wird. Für den Zugriff auf Klassen mit statischen Methoden benötigt man keinen Parameter.

  • Beim Zugriff auf Mitglieder (Members) einer Instanz wird zunächst nach Bean Eigenschaften gesucht, danach erst nach öffentlichen (public) Eigenschaften. Mit anderen Worten: Es wird zuerst versucht werden, zum Beispiel print $date.time als $date.getTime() zu interpretieren, danach erst wird $date.time versucht werden.

  • Der Zugriff auf statische und Instanzeigenschaften erfolgt mit der selben Syntax.

  • Das Auslösen einer Java Exception resultiert in einer PHP Warnung und einem NULL Ergebnis. Folgende Funktionen ermöglichen den Zugriff auf die eigentlichen Exceptions:

    • java_last_exception_get()

    • java_last_exception_clear()

  • Traditionell können Arrays und Hashes in PHP weitestgehend als gleichwertig angesehen werden. Beim Austausch dieser Datentypen zwischen PHP und Java ist zu beachten, dass Hashes in PHP nur mit Integer- und Stringwerten indiziert werden können und Arrays von primitiven Datentypen in Java nicht dünn besetzt sein dürfen. Ferner ist zu beachten, dass diese Datenstrukturen by-Value übergeben werden, was ungünstig in Bezug auf Speicher- und Zeitbedarf sein kann.

Das PHP 4 Servlet SAPI Modul baut auf dem von der Java Extension zur Verfügung gestellten Mechanismus auf, allerdings wird der PHP Prozessor hierbei von einer Servlet Engine, wie zum Beispiel Apache Jakarta / Tomcat, ausgeführt. Dies führt zu einer wesentlich höheren Stabilität und besserer Performance als der umgekehrte Weg, wie in die Java Extension an sich anbietet. Dies kommt daher, dass die Servlet Engine sich um das Pooling und die Wiederverwendung von Java Virtual Machines (JVMs) kümmert. Eine detaillierte Anleitung zur Integration von PHP in eine Servlet Engine entnehmen Sie bitte der Datei php4/sapi/README. Bemerkungen:

  • Das Servlet SAPI Modul sollte zwar auf jeder Java Servlet Engine funktionieren, wurde aber bislang nur in Verbindung mit Apache Jakarta/Tomcat getestet. Meldungen von Problem - aber auch von Erfolgserlebnissen - bei der Verendung mit anderen Servlet Engines werden dankbar aufgenommen.

  • PHP hat die Angewohnheit das aktuelle Arbeitsverzeichnis (CWD) zu ändern. sapi/servlet wird versuchen, den alten Zustand wieder herzustellen. Während PHP läuft kann es sein, dass die Servlet Engine kann Klassen aus dem CLASSPATH finden kann, die über relative Pfade angesprochen werden.

Inhaltsverzeichnis
java_last_exception_clear -- Letzte Java Exception freigeben
java_last_exception_get -- Letzte Java Exception holen

Zurück | Zum Anfang | Nach vorne
ircg_whois | Nach oben | java_last_exception_clear


java_last_exception_clear

(PHP 4 >= 4.0.2)

java_last_exception_clear -- Letzte Java Exception freigeben

Beschreibung

void java_last_exception_clear ( void )

Zurück | Zum Anfang | Nach vorne
Java | Nach oben | java_last_exception_get


java_last_exception_get

(PHP 4 >= 4.0.2)

java_last_exception_get -- Letzte Java Exception holen

Beschreibung

exception java_last_exception_get ( void )

Das nachstehende Beispiel demonstriert die Verarbeitung von Java Exceptions aus PHP heraus:

Beispiel 1. Verarbeitung von Java Exceptions

Zurück | Zum Anfang | Nach vorne
java_last_exception_clear | Nach oben | LDAP Funktionen


LDAP Funktionen

PHP Handbuch
Zurück Nach vorne

XLVIII. LDAP Funktionen

Einführung

LDAP steht für Lightweight Directory Access Protocol und ist ein Protokoll um auf "Directory Servers" - Verzeichnis- Server - zuzugreifen. Das Verzeichnis ist dabei eine spezielle Art einer Datenbank, das Informationen in einer Baumstruktur bereithält.

Das Konzept ist dabei ähnlich der Verzeichnisstruktur Ihrer Festplatte, mit der Ausnahme, dass in diesem Zusammenhang das Wurzelverzeichnis "Die Welt" ist und die Unterverzeichnisse der ersten Ebene "Länder" abbilden. Die weiteren Verzeichnisse unterhalb der Länderebene enthalten Einträge für Firmen, Organisationen oder Städte. Noch tiefer geschachtelt stehen Verzeichniseinträge für Personen und vielleicht für Ausstattung oder Dokumente.

Um auf eine Datei in einem Unterverzeichnis auf Ihrer Festplatte zu verweisen, könnten Sie eine Schreibweise wie folgt verwenden

/usr/local/meine_daten/doku

Die Schrägstriche markieren jeden Teil in diesem Verweis und die Sequenz wird von links nach rechts gelesen.

Das entsprechende Gegenstück zu einer voll qualifizierten Dateireferenz ist in LDAP der Eindeutige Name ("distinguished name"), der Einfachheit halber als "dn" bezeichnet. Ein Beispiel für einen solchen dn könnte sein

cn=Hans Mustermann,ou=Buchhaltung,o=Meine Firma,c=DE

Das Komma markiert jeden Teil in diesem Verweis und die Sequenz wird von rechts nach links gelesen. Diesen dn würden Sie wie folgt lesen:

Land = DE
Organisation (organisation) = Meine Firma
Organisationseinheit (organisationalUnit) = Buchhaltung
Einfacher Name (commonName) = Hans Mustermann

In der gleichen Weise, in der es keine allgemeinverbindlichen Regeln gibt, wie Sie die Verzeichnisstruktur Ihrer Festplatte organsieren, kann der Verwalter eines Verzeichnis-Servers jede beliebige Struktur implementieren, die für den Einsatzzweck sinnvoll ist. Die Botschaft ist folgende: Sie können keinen Code schreiben um auf einen Verzeichnis-Server zuzugreifen, ohne etwas über dessen Struktur zu wissen. Genauso wenig können Sie eine Datenbank nutzen ohne Kenntnis darüber, was in derselben vorhanden ist.

Weitere nützliche Informationen zu LDAP finden Sie unter

  • Netscape

  • OpenLDAP Project

  • LDAP World

Das Netscape SDK enthält einen hilfreichen Programmer´s Guide im HTML Format.

Anforderungen

Sie müssen sich die LDAP Client Bibliotheken herunterladen und übersetzen. Sie können entweder das ldap-3.3 Packet von der University of Michigan, das Netscape Directory SDK 3.0 oder OpenLDAPverwenden um PHP mit LDAP Unterstützung zu kompilieren.

Installation

LDAP Unterstützung ist in PHP im Standard nicht aktiviert. Sie müssen die Konfigurationsoption --with-ldap[=DIR] beim Übersetzen von PHP angeben. DIR bezeichnet das Installationsverzeichnis von LDAP.

Hinweis für Win32 Benutzer: Um dieses Modul unter Windows nutzen zu können, müssen Sie einige Dateien aus dem DLL Ordner des PHP/Win32 Packets in Ihr SYSTEM32 Verzeichnis Ihres Systems kopieren (z.B.: C:\WINNT\SYSTEM32, C:\WINDOWS\SYSTEM32 oder c:\WINDOWS\SYSTEM). Für PHP <= 4.2.0 kopieren Sie libsasl.dll, für PHP >= 4.3.0 kopieren Sie libeay32.dll und ssleay32.dll in Ihr SYSTEM Verzeichnis.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. LDAP Konfigurations-Optionen

Name | Standard | Veränderbar
ldap.max_links | "-1" | PHP_INI_SYSTEM
Weitere Details und die Definition der PHP_INI_* Konstanten sind unter ini_set() zu finden.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

LDAP_DEREF_NEVER (integer)

LDAP_DEREF_SEARCHING (integer)

LDAP_DEREF_FINDING (integer)

LDAP_DEREF_ALWAYS (integer)

LDAP_OPT_DEREF (integer)

LDAP_OPT_SIZELIMIT (integer)

LDAP_OPT_TIMELIMIT (integer)

LDAP_OPT_PROTOCOL_VERSION (integer)

LDAP_OPT_ERROR_NUMBER (integer)

LDAP_OPT_REFERRALS (integer)

LDAP_OPT_RESTART (integer)

LDAP_OPT_HOST_NAME (integer)

LDAP_OPT_ERROR_STRING (integer)

LDAP_OPT_MATCHED_DN (integer)

LDAP_OPT_SERVER_CONTROLS (integer)

LDAP_OPT_CLIENT_CONTROLS (integer)

LDAP_OPT_DEBUG_LEVEL (integer)

GSLC_SSL_NO_AUTH (integer)

GSLC_SSL_ONEWAY_AUTH (integer)

GSLC_SSL_TWOWAY_AUTH (integer)

Beispiele

Informationen von einem Verzeichnis-Server beziehen für alle Einträge bei denen der Nachname mit "S" beginnt. Darstellung eines Auszugs mit Name und Email-Adresse.

Beispiel 1. LDAP Such-Beispiel

<?php
// Grundlegende Abfolge bei LDAP ist verbinden, binden, suchen,
// interpretieren des Sucheergebnisses, Verbindung schließen

echo "<h3>LDAP query Test</h3>";
echo "Verbindung ...";
$ds=ldap_connect("localhost");  // muss ein gültiger LDAP Server
                               // sein!
    echo "Ergebnis der Verbindung: ".$ds."<p>";

if ($ds) {
    echo "Bindung ...";
    $r=ldap_bind($ds);     // das ist ein "anonymer" bind,
                           // typischerweise nur Lese Zugriff
    echo "Ergebnis der Bindung ".$r."<p>";

    echo "Suche nach (sn=S*) ...";
    // Suchen des Nachnamen-Eintrags
    $sr=ldap_search($ds,"o=Meine Firma, c=DE", "sn=S*");
    echo "Ergebnis der Suche ".$sr."<p>";

    echo "Anzahl gefundenen Einträge ".ldap_count_entries($ds,$sr)."<p>";

    echo "Einträge holen ...<p>";
    $info = ldap_get_entries($ds, $sr);
    echo "Daten für ".$info["count"]." Items gefunden:<p>";

    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn ist: ". $info[$i]["dn"] ."<br>";
        echo "erster cn Eintrag: ". $info[$i]["cn"][0] ."<br>";
        echo "erster email Eintrag: ". $info[$i]["mail"][0] ."<p>";
    }

    echo "Verbindung schließen";
    ldap_close($ds);

} else {
    echo "<h4>Verbindung zum LDAP Server nicht möglich</h4>";
}
?>

Verwenden der PHP LDAP Aufrufe

Bevor Sie die LDAP Aufrufe benutzen können, müssen Sie folgendes wissen...

  • Den Namen oder die Adresse des Verzeichnis-Servers den Sie benutzen wollen

  • Den "Basis dn" des Servers (den Teil des Weltverzeichnisses, das auf diesem Server eingerichtet ist, das könnte "o=Meine Firma,c=DE" sein.

  • Brauchen Sie ein Passwort um auf den Server zuzugreifen? (Viele Server bieten Lesezugriff für einen "anonymen bind", verlangen aber ein Passwort für alles weitere)

Die typische Abfolge von LDAP Aufrufen in einer Anwendung folgen diesem Muster

ldap_connect() // Aufbau einer Verbindung zum Server

connection to server
|
ldap_bind() // anonymes oder authentifiziertes "login"
|
mache irgendwas, z.B. Verzeichnis durchsuchen oder aktualisieren
und stelle das Ergebnis dar
|
ldap_close() // "logout"

Inhaltsverzeichnis
ldap_8859_to_t61 -- Übersetzt 8859 Zeichen nach t61 Zeichen
ldap_add -- Einträge einem LDAP Verzeichnis hinzufügen
ldap_bind -- Bindung zu einem LDAP Verzeichnis
ldap_close -- Verbindung zum LDAP Server schliessen
ldap_compare -- Vergleicht gefundenen Wert eines Merkmal in einem Eintrag, der durch Angabe von dn bestimmt wird.
ldap_connect -- Verbindung zu einem LDAP Server
ldap_count_entries -- Zählt die Anzahl der Einträge bei einer Suche
ldap_delete -- Löscht einen Eintrag aus einem Verzeichnis
ldap_dn2ufn -- Konvertiert DN in ein benutzerfreundliches Namensformat
ldap_err2str -- Konvertiert eine LDAP Fehlernummer in einen Fehlertext
ldap_errno -- Liefert die LDAP Fehlernummer des letzten LDAP Kommandos
ldap_error -- Liefert die LDAP Fehlermeldung des letzten LDAP Kommandos
ldap_explode_dn -- Aufteilung eines DN in seine Bestandteile
ldap_first_attribute -- Liefert das erste Merkmal
ldap_first_entry -- Liefert die Kennung des ersten Ergebnisses
ldap_first_reference -- Liefert die erste Referenz
ldap_free_result -- Gibt den belegten Speicher wieder frei
ldap_get_attributes -- Liefert Merkmale eines Suchergebnis-Eintrags
ldap_get_dn -- Liefert den DN eines Ergebnis-Eintrags
ldap_get_entries -- Liefert alle Ergebnis-Einträge
ldap_get_option -- Liefert den aktuellen Wert für eine gegebene Option
ldap_get_values_len -- Liefert alle binären Werte eines Ergebnis-Eintrags
ldap_get_values -- Liefert alle Werte eines Ergebnis-Eintrags
ldap_list -- Einstufige Suche
ldap_mod_add -- Hinzufügen von Merkmalswerten zu aktuellen Merkmalen
ldap_mod_del -- Löschen von Merkmalswerten aktueller Merkmale
ldap_mod_replace -- Ersetzen von Merkmalswerten mit neuen Merkmalswerten
ldap_modify -- Verändern eines LDAP-Eintrags
ldap_next_attribute -- Liefert das nächste Merkmal im Ergebnis
ldap_next_entry -- Liefert den nächsten Eintrag des Ergebnisses
ldap_next_reference -- Holt die nächste Referenz
ldap_parse_reference -- Gewinnt Informationen aus einem Referenz-Eintrag
ldap_parse_result -- Gewinnt Informationen aus einem Ergebnis
ldap_read -- Lesen eines Eintrags
ldap_rename -- Verändert den Namen eines Eintrags
ldap_search -- Suche im LDAP Baum
ldap_set_option -- Setzt den Wert der gegebenen Option
ldap_set_rebind_proc -- Set a callback function to do re-binds on referral chasing.
ldap_sort -- Sortiert LDAP Ergebniseinträge
ldap_start_tls -- Startet TLS
ldap_t61_to_8859 -- Übersetzt t61 Zeichen nach 8859 Zeichen
ldap_unbind -- Unbind von einem LDAP Verzeichnis

Zurück | Zum Anfang | Nach vorne
java_last_exception_get | Nach oben | ldap_8859_to_t61


ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5)

ldap_8859_to_t61 -- Übersetzt 8859 Zeichen nach t61 Zeichen

Beschreibung

string ldap_8859_to_t61 ( string value)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
LDAP Funktionen | Nach oben | ldap_add


ldap_add

(PHP 3, PHP 4 , PHP 5)

ldap_add -- Einträge einem LDAP Verzeichnis hinzufügen

Beschreibung

bool ldap_add ( resource Verbindungs-Kennung, string dn, array eintrag)

Rückgabewert: Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Die ldap_add() Funktion wird benutzt um Einträge einem Verzeichnis hinzuzufügen. Die DN des Eintrags, der hinzugefügt werden soll wird durch dn bestimmt. Das Array eintrag bestimmt die Informationen des Eintrags. Die Werte in den Einträgen werden durch individuelle Merkmale indiziert. Im Fall von mehreren Werten für ein Merkmal werden diese durch die Verwendung von Zahlen indiziert, die bei 0 beginnen.

eintrag["merkmal1"] = wert
eintrag["merkmal2"][0] = wert1
eintrag["merkmal2"][1] = wert2

Beispiel 1. Komplettes Beispiel mit authentifiziertem bind

<?php
$ds=ldap_connect("localhost");  // Annahme: der LDAP Server befindet
                                // sich auf diesem Host

if ($ds) {
    // bind mit passendem dn für aktulisierenden Zugriff
    $r=ldap_bind($ds,"cn=root, o=Meine Firma, c=DE", "geheim");

    // Daten vorbereiten
    $info["cn"]="Hans Mustermann";
    $info["sn"]="Mustermann";
    $info["mail"]="MustermannH@firma.de";
    $info["objectclass"]="person";

    // hinzufügen der Daten zum Verzeichnis
    $r=ldap_add($ds, "cn=Hans Mustermann, o=Meine Firma, c=DE", $info);

    ldap_close($ds);
} else {
    echo "Verbindung zum LDAP Server nicht möglich!";
}
?>

Zurück | Zum Anfang | Nach vorne
ldap_8859_to_t61 | Nach oben | ldap_bind


ldap_bind

(PHP 3, PHP 4 , PHP 5)

ldap_bind -- Bindung zu einem LDAP Verzeichnis

Beschreibung

bool ldap_bind ( resource Verbindungs-Kennung [, string bind_rdn [, string bind_kennwort]])

Bindung für ein LDAP Verzeichnis mit angegebenem RDN und Kennwort. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Die ldap_bind() Funktion führt eine bind Operation auf einem Verzeichnis aus. Die Parameter bind_rdn und bind_kennwort sind optional, wenn diese fehlen wird ein anonymes bind versucht.

Beispiel 1. Verwenden von LDAP Bind

<?php

// verwenden von ldap bind
$ldaprdn  = 'uname';     // ldap rdn oder dn
$ldappass = 'password';  // entsprechendes password

// verbinden zum ldap server
$ldapconn = ldap_connect("ldap.example.com")
    or die("Keine Verbindung zum LDAP server möglich.");

if ($ldapconn) {

    // binden zum ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // Bindung überpfrüfen
    if ($ldapbind) {
        echo "LDAP bind erfolgreich...";
    } else {
        echo "LDAP bind fehlgeschlagen...";
    }

}

?>

Beispiel 2. Anonymes LDAP Bind

<?php

//verwenden von anonymen ldap bind

// verbinden zum ldap server
$ldapconn = ldap_connect("ldap.example.com")
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // anonymes binding
    $ldapbind = ldap_bind($ldapconn);

    if ($ldapbind) {
        echo "anonymes LDAP bind erfolgreich...";
    } else {
        echo "anonymes LDAP bind fehlgeschlagen...";
    }

}

?>

Zurück | Zum Anfang | Nach vorne
ldap_add | Nach oben | ldap_close


ldap_close

(PHP 3, PHP 4 , PHP 5)

ldap_close -- Verbindung zum LDAP Server schliessen

Beschreibung

bool ldap_close ( resource Verbindungs-Kennung)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Die ldap_close() Funktion schließt die Verbindung zum LDAP Server die zur Verbindungs-Kennung gehört.

Der Aufruf dieser Funktion ist intern identisch zu ldap_unbind(). Die LDAP API benutzt den Aufruf ldap_unbind(), so dass Sie vielleicht diese Funktion benutzen sollten, anstatt ldap_close() zu verwenden.

Anmerkung: Diese Funktion ist ein Alias für ldap_unbind().

Zurück | Zum Anfang | Nach vorne
ldap_bind | Nach oben | ldap_compare


ldap_compare

(PHP 4 >= 4.0.2, PHP 5)

ldap_compare -- Vergleicht gefundenen Wert eines Merkmal in einem Eintrag, der durch Angabe von dn bestimmt wird.

Beschreibung

bool ldap_compare ( resource Verbindungs-Kennung, string dn, string merkmal, string wert)

Rückgabewert: wahr, wenn der wert gefunden wird, ansonsten FALSE. Tritt ein Fehler auf, wird -1 zurückgegeben.

ldap_compare() vergleicht den wert eines merkmal mit dem Wert des gleichen Merkmals in dem LDAP Verzeichniseintrag der durch dn bestimmt wurde.

Das folgende Beispiel zeigt, wie überprüft wird, ob ein gegebenes Kennwort mit dem Kennwort übereinstimmt oder nicht, das in dem durch DN bestimmten Eíntrag gespeichert ist.

Beispiel 1. Komplettes Beispiel einer Kennwort-Überprüfung

<?php

$ds=ldap_connect("localhost");  // Annahme: der LDAP Server befindet
                                // sich auf diesem Host

if ($ds) {

    // binden
    if(ldap_bind($ds)) {

        // Daten vobereiten
        $dn = "cn=Helga Olsen, ou=Meine Einheit, o=Meine Firma, c=FI";
        $value = "Geheimes Kennwort";
        $attr = "kennwort";

        // vergleiche die Werte
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Fehler: ".ldap_error($ds);
        } elseif ($r === TRUE) {
            echo "Kennwort korrekt.";
        } elseif ($r === FALSE) {
            echo "Falsch geraten! Kennwort nicht korrekt.";
        }

    } else {
        echo "Keine Bindung zum LDAP Server möglich.";
    }

    ldap_close($ds);

} else {
    echo "Keine Verbindung zum LDAP Server möglich.";
}
?>

Warnung

ldap_compare() kann NICHT für Vergleiche von BINÄREN Werten benutzt werden!

Anmerkung: Diese Funktion wurde in 4.0.2 hinzugefügt.

Zurück | Zum Anfang | Nach vorne
ldap_close | Nach oben | ldap_connect


ldap_connect

(PHP 3, PHP 4 , PHP 5)

ldap_connect -- Verbindung zu einem LDAP Server

Beschreibung

resource ldap_connect ( [string hostname [, int port]])

Rückgabewert: Eine positive Verbindungs-Kennung im Erfolgsfall, FALSE im Fehlerfall.

Die ldap_connect() Funktion stellt eine Verbindung zu einem LDAP Server auf einem bestimmten hostname und port her. Beide Argumente sind optional. Werden keine Argumente angegeben , wird die Verbindungs-Kennung einer schon geöffneten Verbindung zurückgeliefert. Wird nur der hostname angegeben, wird für den Port der Standarport 389 benutzt.

Bei Verwendung von OpenLDAP 2.x.x können Sie eine URL statt des Hostnamens angeben. Um LDAP mit SSL-Unterstützzung zu verwenden, übersetzen Sie OpenLDAP mit SSL-Unterstützung, PHP mit SSL und verwenden ldaps://Hostname/ als Host Argument. Das Port Argument wird bei der Verwendung von URLs nicht benutzt.

Anmerkung: URL und SSL Unterstützung wurden in 4.0.4 hinzugefügt

Beispiel 1. Verbindung zu einem LDAP server.

<?php

// LDAP Variablen
$ldaphost = "ldap.example.com";  // Ihr ldap servers
$ldapport = 389;                 // Die Portnummer ihres ldap servers

// Verbindung zu LDAP
$ldapconn = ldap_connect( $ldaphost, $ldapport )
          or die( "Keine Verbindung zu {$ldaphost} möglich" );

?>

Beispiel 2. Sichere Verbindung zu einem LDAP server.

<?php

/* Stellen Sie sicher, dass Sie den korrekten Host angeben,
   an dem Sie Ihr Sicherheitszertifikat übermittelt haben */
$ldaphost = "ldaps://ldap.example.com/";

// Verbindung zu LDAP
$ldapconn = ldap_connect( $ldaphost )
          or die( "Keine Verbindung zu {$ldaphost} möglich" );

?>

Zurück | Zum Anfang | Nach vorne
ldap_compare | Nach oben | ldap_count_entries


ldap_count_entries

(PHP 3, PHP 4 , PHP 5)

ldap_count_entries -- Zählt die Anzahl der Einträge bei einer Suche

Beschreibung

int ldap_count_entries ( resource Verbindungs-Kennung, resource Ergebnis-Kennung)

Rückgabewert: Anzahl der Einträge im Ergebnis, FALSE im Fehlerfall.

Die ldap_count_entries() Funktion liefert die Anzahl der Einträge im gespeicherten Ergebnis einer vorher durchgeführten Suchoperation. Die Ergebnis-Kennung bezeichnet das interne LDAP Ergebnis.

Zurück | Zum Anfang | Nach vorne
ldap_connect | Nach oben | ldap_delete


ldap_delete

(PHP 3, PHP 4 , PHP 5)

ldap_delete -- Löscht einen Eintrag aus einem Verzeichnis

Beschreibung

bool ldap_delete ( resource Verbindungs-Kennung, string dn)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Die ldap_delete() Funktion löscht einen einzelnen Eintrag aus einem LDAP Verzeichnis, das im dn angegeben wurde.

Zurück | Zum Anfang | Nach vorne
ldap_count_entries | Nach oben | ldap_dn2ufn


ldap_dn2ufn

(PHP 3, PHP 4 , PHP 5)

ldap_dn2ufn -- Konvertiert DN in ein benutzerfreundliches Namensformat

Beschreibung

string ldap_dn2ufn ( string dn)

Die ldap_dn2ufn() Funktion wird verwendet um einen DN, angegeben mit dn, in einer benutzerfreundlicheren Form darzustellen, wobei die Typen-Namen wegfallen.

Zurück | Zum Anfang | Nach vorne
ldap_delete | Nach oben | ldap_err2str


ldap_err2str

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ldap_err2str -- Konvertiert eine LDAP Fehlernummer in einen Fehlertext

Beschreibung

string ldap_err2str ( int fehlernummer)

Rückgabewert: Fehlertext.

Diese Funktion liefert den Fehlertext der die fehlernummer erklärt. Während LDAP Fehlernummern standardisiert sind, liefern unterschiedliche Bibliotheken unterschiedliche oder sogar lokalspezifische Fehlermeldungen. Deshalb sollten Sie nie auf eine spezielle Fehlermeldung prüfen, sondern immer eine Fehlernummer verwenden.

Siehe auch ldap_errno() und ldap_error().

Beispiel 1. Aufzählung aller LDAP Fehlermeldungen

<?php
  for($i=0; $i<100; $i++) {
    printf("Fehler $i: %s<br>\n", ldap_err2str($i));
  }
?>

Zurück | Zum Anfang | Nach vorne
ldap_dn2ufn | Nach oben | ldap_errno


ldap_errno

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

ldap_errno -- Liefert die LDAP Fehlernummer des letzten LDAP Kommandos

Beschreibung

int ldap_errno ( resource Verbindungs-Kennung)

Rückgabewert: LDAP Fehlernummer des letzten LDAP Kommandos für diese Verbindung.

Diese Funktion liefert die standardisierte Fehlernummer des zuletzt ausgeführten LDAP Kommandos für die angegebene Vebindungs-Kennung. Diese Nummer kann mit der Funktion ldap_err2str() in einen Fehlertext konvertiert werden.

Solange Sie die Stufe der Fehlerwarnungen in Ihrer php.ini nicht herabsetzen oder vor Ihre LDAP Komanndos ein @ (at) setzen um die Ausgabe von Fehlermeldungen zu unterdrücken, werden die aufgetretenen Fehler auch in Ihrer HTML Ausgabe zu sehen sein.

Beispiel 1. Erzeugen und Abfangen eines Fehlers

<?php
// Dieses Beispiel enhält einen Fehler, der abgefangen wird.
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);

// Syntax Fehler im Filterausdruck (errno 87),
// müsste "objectclass=*" heißen, um zu funktionieren.

$res =  @ldap_search($ld, "o=Meine Firma, c=DE", "objectclass");
if (!$res) {
    printf("LDAP-Fehlernummer: %s<br>\n", ldap_errno($ld));
    printf("LDAP-Fehler: %s<br>\n", ldap_error($ld));
    die("Argh!<br>\n");
}
$info = ldap_get_entries($ld, $res);
printf("%d Übereinstimmende Einträge.<br>\n", $info["count"]);
?>

Siehe auch ldap_err2str() und ldap_error().

Zurück | Zum Anfang | Nach vorne
ldap_err2str | Nach oben | ldap_error


ldap_error

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

ldap_error -- Liefert die LDAP Fehlermeldung des letzten LDAP Kommandos

Beschreibung

string ldap_error ( resource Verbindungs-Kennung)

Rückgabe: Fehlertext

Diese Funktion liefert den erklärenden Fehlertext für einen Fehler, der vom zuletzt ausgeführten LDAP Kommando mit der angegebenen Verbindungs-Kennung erzeugt wurde. Während LDAP Fehlernummern standardisiert sind, liefern unterschiedliche Bibliotheken unterschiedliche oder sogar lokalspezifische Fehlermeldungen. Deshalb sollten Sie nie auf eine spezielle Fehlermeldung prüfen, sondern immer eine Fehlernummer verwenden.

Solange Sie die Stufe der Fehlerwarnungen in Ihrer php.ini nicht herabsetzen oder vor Ihre LDAP Komanndos ein @ (at) setzen, um die Ausgabe von Fehlermeldungen zu unterdrücken, werden die aufgetretenen Fehler auch in Ihrer HTML Ausgabe zu sehen sein.

Siehe auch ldap_err2str() und ldap_errno().

Zurück | Zum Anfang | Nach vorne
ldap_errno | Nach oben | ldap_explode_dn


ldap_explode_dn

(PHP 3, PHP 4 , PHP 5)

ldap_explode_dn -- Aufteilung eines DN in seine Bestandteile

Beschreibung

array ldap_explode_dn ( string dn, int mit_merkmal)

Die ldap_explode_dn() Funktion wird benutzt um einen von ldap_get_dn() gelieferten DN aufzuteilen und in dessen Bestandteile zu zerlegen. Jeder Teil wird als Relative Distinguished Name, RDN, bezeichnet. ldap_explode_dn() liefert einen Array mit allen diesen Bestandteilen. Der Parameter mit_merkmal wird benutzt, um zu bestimmen, ob die RDNs nur mit Werten oder zusätlich mit ihren Merkmalen angefragt werden. Um RDNs mit Merkmalen (z.B. Merkmal = Wert Format) zu erhalten, setzen Sie mit_merkmal auf 0, um nur Werte zu erhalten auf 1.

Zurück | Zum Anfang | Nach vorne
ldap_error | Nach oben | ldap_first_attribute


ldap_first_attribute

(PHP 3, PHP 4 , PHP 5)

ldap_first_attribute -- Liefert das erste Merkmal

Beschreibung

string ldap_first_attribute ( resource Verbindungs-Kennung, resource Ergebnis-Eintrag-Kennung, int ber-Kennung)

Rückgabewert: im Erfolgsfall das erste Merkmal des Eintrags, im Fehlerfall FALSE.

Ähnlich wie Einträge lesen, werden Merkmale eines bestimmten Eintrags eines nach dem anderen gelesen. Die ldap_first_attribute() Funktion liefert das erste Merkmal eines Eintrags der durch die Ergebnis-Eintrag-Kennung angegeben wurde. Durch erfolgreichen Aufruf von ldap_next_attribute() erhalten Sie die restlichen Merkmale. Der Parameter ber-Kennung ist die Kennung eines internen Speicherort-Zeiger. Die Übergabe erfolgt per Referenz. Die gleiche ber-Kennung wird an die Funktion ldap_next_attribute() weitergegeben, die diesen Zeiger dann verändert.

Siehe auch ldap_get_attributes()

Zurück | Zum Anfang | Nach vorne
ldap_explode_dn | Nach oben | ldap_first_entry


ldap_first_entry

(PHP 3, PHP 4 , PHP 5)

ldap_first_entry -- Liefert die Kennung des ersten Ergebnisses

Beschreibung

resource ldap_first_entry ( resource Verbindungs-Kennung, resource Ergebnis-Kennung)

Rückgabewert: im Erfolgsfall die Ergebnis-Eintrag-Kennung für den ersten Eintrag, FALSE im Fehlerfall.

Einträge eines LDAP Ergebnisses werden unter Verwendung der Funktionen ldap_first_entry() und ldap_next_entry() sequentiell gelesen. Die ldap_first_entry() Funktion gibt die Eintrag-Kennung für den ersten Eintrag im Ergebnis zurück. Diese Eintrag-Kennung wird dann an die Funktion ldap_next_entry() weitergegeben, um sukzessiv die Einträge des Ergebnisses zu erhalten.

Siehe auch ldap_get_entries().

Zurück | Zum Anfang | Nach vorne
ldap_first_attribute | Nach oben | ldap_first_reference


ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_first_reference -- Liefert die erste Referenz

Beschreibung

resource ldap_first_reference ( resource link, resource result)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ldap_first_entry | Nach oben | ldap_free_result


ldap_free_result

(PHP 3, PHP 4 , PHP 5)

ldap_free_result -- Gibt den belegten Speicher wieder frei

Beschreibung

bool ldap_free_result ( resource Ergebnis-Kennung)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Um die Ergebnisse zu speichern, wird intern Speicher belegt. Diesen Speicher können Sie mit der Funktion ldap_free_result() mir Angabe der entsprechenden Ergebnis-Kennung wieder freigeben. Typischerweise wird nach Beendigung des Skripts wird der gesamte Ergebnis-Speicher automatisch freigegeben.

Falls Ihr Skript sukzessive Suchoperationen durchführt, die große Ergebnismengen liefern, können Sie ldap_free_result() aufrufen, um den Speicherverbrauch zur Laufzeit niedrig zu halten.

Zurück | Zum Anfang | Nach vorne
ldap_first_reference | Nach oben | ldap_get_attributes


ldap_get_attributes

(PHP 3, PHP 4 , PHP 5)

ldap_get_attributes -- Liefert Merkmale eines Suchergebnis-Eintrags

Beschreibung

array ldap_get_attributes ( resource Verbindungs-Kennung, resource Ergebnis-Eintrag-Kennung)

Rückgabewert: im Erfolgsfall wird die gesamte Information eines Eintrags in einem multidimensionalen Array zurückgegeben; im Fehlerfall FALSE.

Die ldap_get_attributes() Funktion wird verwendet um das Lesen der Merkmale und Werte eines Eintrags im Suchergebnis zu vereinfachen. Der Rückgabewert ist ein multidimensionales Array aus Merkmalen und Werten.

Nachdem Sie einen bestimmten Eintrag in dem Verzeichnis lokalisiert haben, können Sie mit dieser Funktion herausfinden, welche Informationen für diesen Eintrag verfügbar sind. Diese Funktion würden Sie in einer Anwendung verwenden, die Verzeichniseinträge "durchstöbert" und/oder wo Sie die Struktur der Verzeichniseinträge nicht kennen. In vielen Anwendungen suchen Sie nach einem bestimmten Merkmal wie einer email-Adresse oder einem Nachnamen und interessieren sich nicht dafür, welche anderen Daten verfügbar sind.

return_value["count"] = Anzahl der Merkmale des Eintrags
return_value[0] = das erste Merkmal
return_value[n] = das n-te Merkmal

return_value["merkmal"]["count"] = Anzahl der Werte des Merkmals
return_value["merkmal"][0] = der erste Wert des Merkmals
return_value["merkmal"][i] = der i+1-te Wert des Merkmals

Beispiel 1. Anzeigen der Liste der Merkmale für einen ausgewählten Verzeichnis-Eintrag

// $ds die Verbindungs-Kennung für das Verzeichnis

/* $sr ein gültiges Suchergebnis eines früheren Aufrufs einer der ldap
  Verzeichnis Suchfunktionen */

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"]." Merkmale für diesen Eintrag:<p>";

for ($i=0; $i<$attrs["count"]; $i++)
    echo $attrs[$i]."<br>";

Siehe auch ldap_first_attribute() und ldap_next_attribute()

Zurück | Zum Anfang | Nach vorne
ldap_free_result | Nach oben | ldap_get_dn


ldap_get_dn

(PHP 3, PHP 4 , PHP 5)

ldap_get_dn -- Liefert den DN eines Ergebnis-Eintrags

Beschreibung

string ldap_get_dn ( resource Verbindungs-Kennung, resource Ergebnis-Eintrag-Kennung)

Rückgabewert: im Erfolgsfall der DN des Ergebnis-Eintrags, im Fehlerfall FALSE.

Die ldap_get_dn() Funktion wird verwendet, um den DN eines Eintrags im Ergebnis herauszufinden.

Zurück | Zum Anfang | Nach vorne
ldap_get_attributes | Nach oben | ldap_get_entries


ldap_get_entries

(PHP 3, PHP 4 , PHP 5)

ldap_get_entries -- Liefert alle Ergebnis-Einträge

Beschreibung

array ldap_get_entries ( resource Verbindungs-Kennung, resource Ergebnis-Kennung)

Rückgabewert: im Erfolgsfall wird die gesamte Information des Ergebnisses in einem multidimensionalen Array zurückgegeben; im Fehlerfall FALSE.

Die ldap_get_entries() Funktion wird verwendet um das Lesen mehrfacher Einträge des Ergebnisses, angegeben mit Ergebnis-Kennung zu vereinfachen und danach werden die Merkmale und mehfachen Werte gelesen. Durch einen Funktionsaufruf wird die gesamte Information in einem multidimensionalen Array zurückgegeben. Die Struktur dieses Array sieht wie folgt aus.

Der Merkmal-Index wird in Kleinbuchstaben umgewandelt. (Verzeichnis-Server unterscheiden nicht zwischen Groß-/Kleinschreibung hinsichtlich der Merkmake, aber der Unterschied ist wichtig, wenn diese Merkmale als Array-Indizes benutzt werden.)

return_value["count"] = Anzahl der Einträge im Ergebnis
return_value[0] : bezieht sich auf Einzelheiten des ersten Eintrags

return_value[i]["dn"] = DN des i-ten Eintrags im Ergebnis

return_value[i]["count"] = Anzahl der Merkmale im i-ten Eintrag
return_value[i][j] = das j-te Merkmal des i-ten Eintrags im Ergebnis

return_value[i]["merkmal"]["count"] = Anzahl der Werte für das
Merkmal im i-ten Eintrag
return_value[i]["merkmal"][j] = der j-te Wert des Merkmals im i-ten
Eintrag

Siehe auch ldap_first_entry() und ldap_next_entry()

Zurück | Zum Anfang | Nach vorne
ldap_get_dn | Nach oben | ldap_get_option


ldap_get_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_get_option -- Liefert den aktuellen Wert für eine gegebene Option

Beschreibung

bool ldap_get_option ( resource Verbindungs-Kennung, int option, mixed retval)

Setzt retval auf den Wert der gewählten Option. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Der Parameter option kann einer der folgenden sein: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN. Beschrieben sind diese unter draft-ietf-ldapext-ldap-c- api-xx.txt

Anmerkung: Diese Funktion steht nur zur Verfügung, wenn Sie OpenLDAP 2.x.x ODER Netscape Directory SDK x.x benutzen. Wurde in PHP 4.0.4 hinzugefügt.

Beispiel 1. Prüfen der Protokollversion

// $ds eine gültige Verbindungs-Kennung für einen Verzeichnis-Server

if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version))
    echo "Sie benutzen die Protokollversion $version";
else
    echo "Protokollversion konnte nicht bestimmt werden";

Siehe auch ldap_set_option().

Zurück | Zum Anfang | Nach vorne
ldap_get_entries | Nach oben | ldap_get_values_len


ldap_get_values_len

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ldap_get_values_len -- Liefert alle binären Werte eines Ergebnis-Eintrags

Beschreibung

array ldap_get_values_len ( resource Verbindungs-Kennung, resource Ergebnis-Eintrag-Kennung, string merkmal)

Rückgabewert: im Erfolgsfall ein Array der Werte des Merkmals, FALSE im Fehlerfall.

Die ldap_get_values_len() Funktion wird benutzt um alle Werte des Merkmals eines Eintrags im Ergebnis zu lesen. Der Eintrag wird durch Ergebnis-Eintrag-Kennung bestimmt. Die Anzahl der Werte kann über die Indexierung von "count" des resultierenden Arrays bestimmt werden. Der Zugriff auf einzelne Werte erfolgt durch einen ganzzahligen Index im Array. Der erste Indexwert ist 0.

Diese Funktion wird exakt gleich benutzt wie die Funktion ldap_get_values() mit der Aussnahme, dass hier binäre Daten statt Textdaten behandelt werden.

Anmerkung: Diese Funktion wurde in 4.0 hinzugefügt.

Zurück | Zum Anfang | Nach vorne
ldap_get_option | Nach oben | ldap_get_values


ldap_get_values

(PHP 3, PHP 4 , PHP 5)

ldap_get_values -- Liefert alle Werte eines Ergebnis-Eintrags

Beschreibung

array ldap_get_values ( resource Verbindungs-Kennung, resource Ergebnis-Eintrag-Kennung, string merkmal)

Rückgabewert: im Erfolgsfall ein Array der Werte des Merkmals, FALSE im Fehlerfall.

Die ldap_get_values() Funktion wird benutzt um alle Werte des Merkmals eines Eintrags im Ergebnis zu lesen. Der Eintrag wird durch Ergebnis-Eintrag-Kennung bestimmt. Die Anzahl der Werte kann über die Indexierung von "count" des resultierenden Arrays bestimmt werden. Der Zugriff auf einzelne Werte erfolgt durch einen ganzzahligen Index im Array. Der erste Indexwert ist 0.

Da diese Funktion eine Ergebnis-Eintrag-Kennung benötigt, muss ein Aufruf einer der LDAP Suchfunktionen und einer der Funktionen, die einen einzelnen Eintrag liefern, vorausgehen.

Ihre Anwendung wird entweder hart codiert sein, um bestimmte Merkmale (wie z.B.: "Nachname" oder "Mail") zu suchen, oder Sie müssen die Funktion ldap_get_attributes() benutzen, um herauszufinden, welche Merkmale für einen gegebenen Eintrag vorhanden sind.

LDAP erlaubt mehr als einen Eintrag für ein Merkmal, so dass es z.B. sein kann, dass der Verzeichnis-Eintrag einer Person mehrere Email-Adressen enthält, die alle mit dem Merkmal "mail" bezeichnet sind.

return_value["count"] = Anzahl der Werte eines Merkmals
return_value[0] = der erste Wert des Merkmals
return_value[i] = der i-te Wert des Merkmals

Beispiel 1. Liste aller Werte des Merkmals "mail" für einen Verzeichnis- Eintrag

// $ds gültige Verbindungs-Kennung für einen Verzeichnis-Server

// $sr gültiges Suchergebnis eines früheren Aufrufs einer der ldap
//     Verzeichnis Suchfunktionen

// $entry gültige Eintrag-Kennung eines früheren Aufrufs einer
//        der Funktionen, die einen Verzeichnis-Eintrag zurückgeben

$values = ldap_get_values($ds, $entry,"mail");

echo $values["count"]." Email-Adressen für diesen Eintrag.<p>";

for ($i=0; $i < $values["count"]; $i++)
    echo $values[$i]."<br>";

Zurück | Zum Anfang | Nach vorne
ldap_get_values_len | Nach oben | ldap_list


ldap_list

(PHP 3, PHP 4 , PHP 5)

ldap_list -- Einstufige Suche

Beschreibung

resource ldap_list ( resource Verbindungs-Kennung, string basis_dn, string filter [, array merkmale [, int nur_merkmmale [, int größenbegrenzung [, int zeitbegrenzung [, int deref]]]]])

Rückgabewert: im Erfolgsfall eine Such-Ergebnis-Kennung,im Fehlerfall FALSE.

Die ldap_list() Funktion führt die Suche für einen gegebenen filter im Verzeichnis mit der Reichweite von LDAP_SCOPE_ONELEVEL durch.

LDAP_SCOPE_ONELEVEL bedeutet, dass die Suche nur Informationen liefert, die direkt unterhalb der Stufe liegen, die durch die Angabe des basis_dn im Auruf bestimmt wird. (Das entspricht der Eingabe von "ls", die eine Liste von Dateien und Verzeichnissen des aktuellen Arbeitsverzeichnisses anzeigt.)

Der Aufruf dieser Funktion nimmt 5 optionale Parameter entgegen. Siehe die Anmerkungen zu ldap_search().

Anmerkung: Diese wahlfreien Parameter wurden in 4.0.2 hinzugefügt: attrsonly, größenbegrenzung, zeitbegrenzung, deref.

Beispiel 1. Erzeugung einer Liste aller Organisationseinheiten einer Organisation

// $ds gültige Verbindungs-Kennung für einen Verzeichnis-Server

$basis_dn = "o=Meine Firma, c=DE";
$nur_dieses = array("ou");

$sr=ldap_list($ds, $basis_dn, "ou=*", $nur_dieses);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i<$info["count"]; $i++)
    echo $info[$i]["ou"][0] ;

Anmerkung: Seit der Version 4.0.5 ist es außerdem möglich parallele Suchen durchzuführen. Für Details siehe ldap_search().

Zurück | Zum Anfang | Nach vorne
ldap_get_values | Nach oben | ldap_mod_add


ldap_mod_add

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ldap_mod_add -- Hinzufügen von Merkmalswerten zu aktuellen Merkmalen

Beschreibung

bool ldap_mod_add ( resource Verbindungs-Kennung, string dn, array eintrag)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Diese Funktion fügt Merkmal(e) zum angegebenen dn hinzu. Die Änderung wird auf der Merkmalsebene durchgeführt im Gegensatz zur Objektebene. Das Hinzufügen auf der Objektebene wird durch die Funktion ldap_add() geleistet.

Zurück | Zum Anfang | Nach vorne
ldap_list | Nach oben | ldap_mod_del


ldap_mod_del

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ldap_mod_del -- Löschen von Merkmalswerten aktueller Merkmale

Beschreibung

bool ldap_mod_del ( resource Verbindungs-Kennung, string dn, array eintrag)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Diese Funktion löscht ein oder mehrere Merkmale vom angegebenen dn. Die Änderung wird auf der Merkmalsebene durchgeführt im Gegensatz zur Objektebene. Das Löschen auf Objektebene wird durch die Funktion ldap_delete() geleistet.

Zurück | Zum Anfang | Nach vorne
ldap_mod_add | Nach oben | ldap_mod_replace


ldap_mod_replace

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ldap_mod_replace -- Ersetzen von Merkmalswerten mit neuen Merkmalswerten

Beschreibung

bool ldap_mod_replace ( resource Verbindungs-Kennung, string dn, array eintrag)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Diese Funktion ersetzt ein oder mehrere Merkmale vom angegebenen dn. Die Änderung wird auf der Merkmalsebene durchgeführt im Gegensatz zur Objektebene. Änderungen auf der Objektebene werden mit der Funktion ldap_modify() ausgeführt.

Zurück | Zum Anfang | Nach vorne
ldap_mod_del | Nach oben | ldap_modify


ldap_modify

(PHP 3, PHP 4 , PHP 5)

ldap_modify -- Verändern eines LDAP-Eintrags

Beschreibung

bool ldap_modify ( resource Verbindungs-Kennung, string dn, array eintrag)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Die ldap_modify() Funktion wird verwendet, um bestehende Einträge in einem LDAP-Verzeichnis zu ändern. Die Struktur des Eintrags ist die gleiche wie bei ldap_add().

Zurück | Zum Anfang | Nach vorne
ldap_mod_replace | Nach oben | ldap_next_attribute


ldap_next_attribute

(PHP 3, PHP 4 , PHP 5)

ldap_next_attribute -- Liefert das nächste Merkmal im Ergebnis

Beschreibung

string ldap_next_attribute ( resource Verbindungs-Kennung, resource Ergebnis-Eintrag-Kennung, resource ber_Kennung)

Rückgabewert: im Erfolgsfall das nächste Merkmal eines Eintrags, im Fehlerfall FALSE.

Die ldap_next_attribute() Funktion wird aufgerufen, um die Merkmale eines Eintrags zu erhalten. Der interne Status des Zeigers wird durch die ber_Kennung bestimmt. Diese wird mittels Referenz an die Funktion weitergegeben. Der erste Aufruf von ldap_next_attribute() erfolgt mit der Ergebnis-Eintrag-Kennung, die von ldap_first_attribute() zurückgegeben wurde.

Siehe auch ldap_get_attributes()

Zurück | Zum Anfang | Nach vorne
ldap_modify | Nach oben | ldap_next_entry


ldap_next_entry

(PHP 3, PHP 4 , PHP 5)

ldap_next_entry -- Liefert den nächsten Eintrag des Ergebnisses

Beschreibung

resource ldap_next_entry ( resource Verbindungs-Kennung, resource Ergebnis-Eintrag-Kennung)

Rückgabewert: Im Erfolgsfall wird die Eintrags-Kennung für den nächsten Eintrag des Ergebnisses zurückgegeben. Das Lesen der Einträge wird mit ldap_first_entry() gestartet. Wenn keine weiteren Einträge im Ergebnis vorhanden sind wird FALSE zurückgegeben.

Die ldap_next_entry() Funktion wird verwendet, um die Einträge zu erhalten, die im Ergebnis gespeichert sind. Wiederholtes aufrufen von ldap_next_entry() liefert einen Eintrag nach dem anderen, solange bis kein Eintrag mehr vorliegt. Der erste Aufruf von ldap_next_entry() erfolgt nach dem Aufruf von ldap_first_entry() mit der Ergebnis-Eintrag-Kennung, die von ldap_first_entry() zurückgegeben wurde.

Siehe auch ldap_get_entries()

Zurück | Zum Anfang | Nach vorne
ldap_next_attribute | Nach oben | ldap_next_reference


ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_next_reference -- Holt die nächste Referenz

Beschreibung

resource ldap_next_reference ( resource link, resource entry)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ldap_next_entry | Nach oben | ldap_parse_reference


ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_reference -- Gewinnt Informationen aus einem Referenz-Eintrag

Beschreibung

bool ldap_parse_reference ( resource link, resource entry, array referrals)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ldap_next_reference | Nach oben | ldap_parse_result


ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_result -- Gewinnt Informationen aus einem Ergebnis

Beschreibung

boolean ldap_parse_result ( resource link, resource result, int errcode, string matcheddn, string errmsg, array referrals)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ldap_parse_reference | Nach oben | ldap_read


ldap_read

(PHP 3, PHP 4 , PHP 5)

ldap_read -- Lesen eines Eintrags

Beschreibung

resource ldap_read ( resource Verbindungs-Kennung, string basis_dn, string filter [, array merkmale [, int nur_werte [, int größenbegrenzung [, int zeitbegrenzung [, int deref]]]]])

Rückgabewert: Im Erfolgsfall eine Such-Ergebnis-Kennung, FALSE im Fehlerfall.

Die ldap_read() Funktion führt die Suche für einen gegebenen filter im Verzeichnis mit der Reichweite von LDAP_SCOPE_BASE durch. Das entpricht dem Lesen eines Eintrags in einem Verzeichnis.

Ein leerer Filter ist nicht erlaubt. Wenn Sie wirklich alle Informationen für einen Eintrag erhalten möchten, müssen Sie einen Filter der Art "objectClass=*" verwenden. Kennen Sie die Typen der Einträge die auf dem Verzeichnis-Server benutzt werden, können Sie einen passenden Filter wie z.B."objectClass=inetOrgPerson" verwenden.

Der Aufruf dieser Funktion nimmt 5 optionale Argumente entgegen. Siehe Anmerkungen zu ldap_search().

Anmerkung: Diese wahlfreien Argumente wurden in 4.0.2 hinzugefügt: nur_werte, größenbegrenzung, zeitbegrenzung, deref.

Seit der Version 4.0.5 ist es außerdem möglich parallele Suchen durchzuführen. Für Details siehe ldap_search().

Zurück | Zum Anfang | Nach vorne
ldap_parse_result | Nach oben | ldap_rename


ldap_rename

(PHP 4 >= 4.0.5, PHP 5)

ldap_rename -- Verändert den Namen eines Eintrags

Beschreibung

bool ldap_rename ( resource Verbindungs-Kennung, string dn, string neuerrdn, string neueeltern, bool löschealtenrdn)

Der Eintrag, der durch dn gegeben ist, wird umbenannt/gelöscht. Der neue RDN wird durch neuerrdn bestimmt, der neue Eltern-/übergeordnete Eintrag wird durch neueeltern bestimmt. Wenn das Argument löschealtenrdn TRUE ist, wird der alte Wert/die alten Werte von RDN enfernt, andernfalls wird der alte Wert/die alten Werte als nicht-eindeutige(r) (non- distinguished) Werte des Eintrags beibehalten. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Diese Funktion arbeitet zum gegenwärtigen Zeitpunkt nur mit LDAPv3. Sie müssen ldap_set_option() vorher benutzen um für eine Bindung LDAPv3 nutzen zu können. Diese Funktion steht nur zur Verfügung, wenn Sie OpenLDAP 2.x.x ODER Netscape Directory SDK x.x benutzen. Wurde in PHP 4.0.5 hinzugefügt.

Zurück | Zum Anfang | Nach vorne
ldap_read | Nach oben | ldap_search


ldap_search

(PHP 3, PHP 4 , PHP 5)

ldap_search -- Suche im LDAP Baum

Beschreibung

resource ldap_search ( resource Verbindungs-Kennung, string base_dn, string filter [, array merkmale [, int nur_werte [, int größenbegrenzung [, int zeitbegrenzung [, int deref]]]]])

Rückgabewert: eine Such-Ergebnis-Kennung im Erfolgsfall, FALSE im Fehlerfall.

Die ldap_search() Funktion führt die Suche für einen gegebenen Filter im Verzeichnis mit der Reichweite von LDAP_SCOPE_SUBTREE durch. Das ist äquivalent zu einer Suche im ganzen Verzeichnis.base_dn legt den Basis DN für das Verzeichnis fest.

Der optionale vierte Parameter kann benutzt werden, um die Rückgabewerte des Servers so einzuschränken, dass nur die tatsächlich benötigten Merkmale und ihre zugehörigen Werte in der Ergebnismenge enthalten sind. Dieses Vorgehen ist um einiges effizienter als die standardmäßige Vorgehensweise (diese liefert alle Merkmale und alle zugehörigen Werte). Aus diesem Grund ist die Angabe des vierten Parameters als gute Praxis zu empfehlen.

Der vierte Parameter ist ein Standard PHP Array aus Strings der benötigten Merkmale, z.B. array("mail","sn","cn"). Beachten Sie, dass der "dn" immer zurückgeliefert wird, ohne Rücksicht darauf, welche Merkmalstypen angefragt wurden.

Beachten Sie weiterhin, dass manche Verzeichnis-Server so konfiguriert sind, dass sie nicht mehr als eine vorbestimmte Anzahl an Einträgen zurückliefern. Sollte dies der Fall sein, zeigt Ihnen der Server an, dass nur eine Teilmenge des Ergebnisses zurückgeliefert wurde. Diesen Hinweis erhalten Sie auch, wenn Sie den sechsten Parameter größenbegrenzung mit angegeben hatten, um die Anzahl der angefragten Einträge einzuschränken.

Der fünfte Parameter nur_werte sollte auf 1 gesetzt werden, wenn Sie nur Merkmalstypen erhalten möchten. Wenn der Wert auf 0 steht, erhalten Sie sowohl Merkmalstypen als auch Merkmalswerte. Das ist das Standard Verhalten.

Mit dem sechsten Parameter größenbegrenzung ist es möglich, die Anzahl der Einträge, die Sie erhalten, zu begrenzen. Wenn Sie diesen Wert auf 0 setzen, bedeutet dies keine Beschränkung der Ergegnismenge. ANMERKUNG: Dieser Parameter kann eine serverseitig gesetzte Beschränkung NICHT überschreiben. Sie haben nur die Möglichkeit die Beschränkung noch weiter herabzusetzen.

Der siebte Parameter zeitbegrenzung legt die Zahl in Sekunden fest, die auf die Suche verwendet wird. Wenn Sie diesen Wert auf 0 setzen, bedeutet dies keine Beschränkung der Zeit. ANMERKUNG: Dieser Parameter kann eine serverseitig gesetzte Zeitbegrenzung NICHT überschreiben. Sie haben nur die Möglichkeit die Beschränkung noch weiter herabzusetzen.

Der achte Parameter deref gibt an, wie Aliase während einer Suche behandelt werden. Wert kann einer der folgenden sein:

  • LDAP_DEREF_NEVER - (Standard) Aliase werden nie aufgelöst.

  • LDAP_DEREF_SEARCHING - Aliase sollen während der Suche aufgelöst werden, aber nicht dann, wenn das Basisobjekt der Suche ermittelt wird.

  • LDAP_DEREF_FINDING - Aliase sollen aufgelöst werden, wenn das Basisobjekt ermiitelt wird, aber nicht während der Suche.

  • LDAP_DEREF_ALWAYS - Aliase sollen immer aufgelöst werden.

Anmerkung: Diese optionalen Parameter wurden in 4.0.2 hinzugefügt: nur_werte, größenbegrenzung, zeitbegrenzung, deref.

Der Suchfilter kann einfach oder kompliziert sein, wenn sie boolsche Operatoren in dem Format verwenden, wie in der LDAP Dokumentation beschrieben (siehe Netscape Directory SDK für die vollständige Information über Filter).

Das untenstehende Beispiel liefert die Organisationseinheit, den Familiennamen, den Vornamen und die Email-Addresse aller Personen in "Meine Firma" deren Familien- oder Vorname die Zeichenkette $person enhält. In diesem Beispiel wird ein boolscher Filter verwendet, um den Server zu veranlassen, nach Informationen in mehr als einem Merkmal zu suchen.

Beispiel 1. LDAP Suche

// $ds gültige Verbindungs-Kennung für einen Verzeichnis-Server

// $person ein Teil oder der vollständige Name einer Person, z.B. "Jo"

$dn = "o=Meine Firma, c=DE";
$filter="(|(sn=$person*)(vorname=$person*))";
$justthese = array( "ou", "sn", "vorname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

print $info["count"]." gefundene Einträge<p>";

Seit der Version 4.0.5 ist es außerdem möglich parallele Suchen durchzuführen. Um dies zu verwirklichen benutzen Sie als erstes Argument einen Array von Verbindungs-Kennungen, statt einer einzelnen Verbindungs-Kennung. Falls Sie nicht den gleichen Basis DN und den gleichen Filter für alle Suchen verwenden möchten, können Sie ebenso einen Array von Basis DNs und/oder einen Array von Filtern benutzen. Diese Arrays müssen die gleiche Größe wie das Array der Verbindungs-Kennungen haben, da die ersten Einträge der Arrays für eine Suche verwendet werden, die zweiten Einträge für eine andere Suche und so weiter. Wenn Sie parallel suchen erhalten Sie ein Array von Such-Ergebnis-Kennungen, außer im Fall eines Fehlers, dann liefert der Eintrag zur entsprechenden Suche FALSE zurück. Das entspricht ganz genau dem Wert der normalerweise zurückgeliefert wird, außer dass Sie immer eine Ergebnis-Kennung erhalten, wenn Sie eine Suche durchgeführt haben. Es treten einige seltene Fälle auf, wo eine normale Suche FALSE zurückgibt, während die parallele Suche eine Kennung zurückliefert.

Zurück | Zum Anfang | Nach vorne
ldap_rename | Nach oben | ldap_set_option


ldap_set_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_set_option -- Setzt den Wert der gegebenen Option

Beschreibung

bool ldap_set_option ( resource Verbindungs-Kennung, int option, mixed neuerwert)

Setzt den Wert der bestimmten Option auf neuerwert.Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Der Parameter option kann einer der folgenden sein: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN, LDAP_OPT_SERVER_CONTROLS, LDAP_OPT_CLIENT_CONTROLS. Hier eine kurze Beschreibung, schauen Sie unter draft-ietf-ldapext-ldap-c- api-xx.txt nach Details.

Die Optionen LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION und LDAP_OPT_ERROR_NUMBER haben einen ganzzahligen Wert, LDAP_OPT_REFERRALS und LDAP_OPT_RESTART haben einen boolschen Wert und die Optionen LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING und LDAP_OPT_MATCHED_DN bestehen aus einer Zeichenkette. Das erste Beispiel veranschaulicht deren Gebrauch. Die Optionen LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS benötigen eine Kontrolliste, d.h. der Wert muss ein Array aus Kontrollen sein. Eine Kontrolle besteht aus einer oid die die Kontrolle identifiziert, einem wahlweisen wert, und einem wahlweisen Kennzeichen für criticality. Bei PHP wird eine Kontrolle durch ein Array angegeben. Dieses Array enthält ein Element mit dem Schlüssel oid und einer Zeichenkette als Wert und zwei optionalen Elementen. Die optionalen Elemente sind Schlüssel wert mit einer Zeichenkette als Wert und dem Schlüssel iscritical mit einem boolschen Wert. Der vorgegebene Wert von iscritical ist FALSE falls Sie nichts angeben. Schauen Sie sich das zweite Beispiel weiter unten an.

Anmerkung: Diese Funktion steht nur zur Verfügung, wenn Sie OpenLDAP 2.x.x ODER Netscape Directory SDK x.x verwenden und wurde in PHP 4.0.4 hinzugefügt.

Beispiel 1. Setzen der Protokollversion

// $ds ist eine gültige Verbindungs-Kennung für einen Verzeichnis-
// Server
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3))
    echo "Verwenden von LDAPv3";
else
    echo "Kann das Protokoll nicht auf Version 3 setzen";

Beispiel 2. Setzen der Server Kontrollen

// $ds ist eine gültige Verbingund-Kennung für einen Verzeichnis-
// Server
// Kontrolle ohne Wert
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => TRUE);
// iscritical hat den vorgegebenen Wert FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// Versuch, beide Kontrollen zu setzen
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1,
$ctrl2)))
    echo "Kann die Server Kontrollen nicht setzen";

Siehe auch ldap_get_option().

Zurück | Zum Anfang | Nach vorne
ldap_search | Nach oben | ldap_set_rebind_proc


ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5)

ldap_set_rebind_proc -- Set a callback function to do re-binds on referral chasing.

Beschreibung

bool ldap_set_rebind_proc ( resource link, string callback)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ldap_set_option | Nach oben | ldap_sort


ldap_sort

(PHP 4 >= 4.2.0, PHP 5)

ldap_sort -- Sortiert LDAP Ergebniseinträge

Beschreibung

bool ldap_sort ( resource link, resource result, string sortfilter)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ldap_set_rebind_proc | Nach oben | ldap_start_tls


ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5)

ldap_start_tls -- Startet TLS

Beschreibung

bool ldap_start_tls ( resource link)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ldap_sort | Nach oben | ldap_t61_to_8859


ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5)

ldap_t61_to_8859 -- Übersetzt t61 Zeichen nach 8859 Zeichen

Beschreibung

string ldap_t61_to_8859 ( string value)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ldap_start_tls | Nach oben | ldap_unbind


ldap_unbind

(PHP 3, PHP 4 , PHP 5)

ldap_unbind -- Unbind von einem LDAP Verzeichnis

Beschreibung

bool ldap_unbind ( resource Verbindungs-Kennung)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Die ldap_unbind() Funktion führt ein unbind auf ein LDAP Verzeichnis aus.

Zurück | Zum Anfang | Nach vorne
ldap_t61_to_8859 | Nach oben | LZF Functions


LZF Functions

PHP Handbuch
Zurück Nach vorne

XLIX. LZF Functions

Einführung

LZF is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation.

Installation

LZF is currently available through PECL http://pecl.php.net/package/lzf.

If PEAR is available on your *nix-like system you can use the pear installer to install the LZF extension, by the following command: pear -v install lzf.

You can always download the tar.gz package and install LZF by hand:

Beispiel 1. LZF install by hand

gunzip lzf-xxx.tgz
tar -xvf lzf-xxx.tar
cd lzf-xxx
phpize
./configure && make && make install

You can pass --enable-lzf-better-compression to optimize LZF for space rather then speed.

Windows users can download the extension dll php_lzf.dll from http://snaps.php.net/win32/PECL_STABLE/.

Inhaltsverzeichnis
lzf_compress -- LZF compression.
lzf_decompress -- LZF decompression.
lzf_optimized_for -- Determines what LZF extension was optimized for.

Zurück | Zum Anfang | Nach vorne
ldap_unbind | Nach oben | lzf_compress


lzf_compress

(no version information, might be only in CVS)

lzf_compress -- LZF compression.

Description

string lzf_compress ( string arg)

lzf_compress() compresses data in arg parameter.

Returns compressed data or FALSE if an error occured.

See also lzf_decompress().

Zurück | Zum Anfang | Nach vorne
LZF Functions | Nach oben | lzf_decompress


lzf_decompress

(no version information, might be only in CVS)

lzf_decompress -- LZF decompression.

Description

string lzf_decompress ( string arg)

lzf_decompress() decompresses data from parameter arg.

Returns decompressed data or FALSE if an error occured.

See also lzf_compress().

Zurück | Zum Anfang | Nach vorne
lzf_compress | Nach oben | lzf_optimized_for


lzf_optimized_for

(no version information, might be only in CVS)

lzf_optimized_for -- Determines what LZF extension was optimized for.

Description

int lzf_optimized_for ( void )

Returns 1 if LZF was optimized for speed, 0 for compression.

Zurück | Zum Anfang | Nach vorne
lzf_decompress | Nach oben | Mail-Funktionen


Mail-Funktionen

PHP Handbuch
Zurück Nach vorne

L. Mail-Funktionen

Einführung

Die mail()-Funktion erlaubt das Versenden von Mail.

Anforderungen

PHP muss während des Kompilierens Zugriff auf die Binärversion von sendmail auf Ihrem Rechner haben. Falls Sie ein anderes Mail-Programm, wie z.B. qmail oder postfix, benutzen, müssen Sie dafür sorgen, dass Sie den passenden, mitgelieferten sendmail-Wrapper verwenden. PHP sucht nach sendmail zunächst im System-PATH und anschließend hier: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. Wir empfehlen, dass sendmail auf Ihrem Rechner im PATH verfügbar ist. Der Benutzer, der PHP kompiliert hat, muss die Berechtigung haben, auf die Binärversion von sendmail zuzugreifen.

Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Mail-Konfigurationsoptionen

Name | Standard | änderbar
SMTP | "localhost" | PHP_INI_ALL
smtp_port | "25" | PHP_INI_ALL
sendmail_from | NULL | PHP_INI_ALL
sendmail_path | DEFAULT_SENDMAIL_PATH | PHP_INI_SYSTEM
Für weitere Details und die Definition der PHP_INI_*-Konstanten siehe ini_set().

Hier eine kurze Erklärung der Konfigurationsoptionen:

SMTP string

Wird nur unter Windows benutzt: DNS-Name oder IP-Adresse des SMTP-Servers, den PHP für Mails, die mit der mail()-Funktion verschickt werden, nutzen soll.

smtp_port int

Wird nur unter Windows benutzt: Nummer des Ports des Servers (angegeben in der SMTP-Option), um eine Verbindung herzustellen, wenn eine Mail mit der mail()-Funktion verschickt wird. Standardwert ist 25. Diese Option ist verfügbar ab PHP 4.3.0.

sendmail_from string

"From:"-Mail-Adresse, die beim Mail-Versand unter Windows benutzt werden soll.

sendmail_path string

Pfad, in dem sich das sendmail-Programm befindet, z.B. /usr/sbin/sendmail oder /usr/lib/sendmail. configure versucht, die richtige Position automatisch zu finden. Falls die automatische Erkennung aber fehlschlägt und der Standardwert auf Ihrem Rechner falsch ist, dann können Sie hier den richtigen Pfad setzen.

Falls Sie auf Ihrem Rechner sendmail nicht benutzen, müssen Sie den Pfad angeben, in sich der sendmail-Wrapper/-Ersatz befindet, sofern vorhanden. Zum Beispiel können Qmail-Benutzer diese Option auf /var/qmail/bin/sendmail oder /var/qmail/bin/qmail-inject setzen.

qmail-inject benötigt keine Optionen, um Mails korrekt zu verarbeiten.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
ezmlm_hash -- Berechnet den Hash-Wert, der von EZMLM benötigt wird
mail -- Sende Mail

Zurück | Zum Anfang | Nach vorne
lzf_optimized_for | Nach oben | ezmlm_hash


ezmlm_hash

(PHP 3>= 3.0.17, PHP 4 >= 4.0.2, PHP 5)

ezmlm_hash -- Berechnet den Hash-Wert, der von EZMLM benötigt wird

Beschreibung

int ezmlm_hash ( string addr)

ezmlm_hash() berechnet den Hash-Wert, der benötigt wird, wenn EZMLM-Mailinglisten in einer MySQL-Datenbank gespeichert werden.

Beispiel 1. Hash-Wert berechnen und einen Benutzer hinzufügen

<?php
$user = "joecool@example.com";
$hash = ezmlm_hash($user);
$query = sprintf("INSERT INTO beispiel VALUES (%s, '%s')", $hash, $user);
$db->query($query);  // die PHPLIB-DB-Klasse wird benutzt
?>

Zurück | Zum Anfang | Nach vorne
Mail-Funktionen | Nach oben | mail


mail

(PHP 3, PHP 4 , PHP 5)

mail -- Sende Mail

Beschreibung

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])

mail() veschickt die Nachricht in message an den Empfänger in to. Mehrere Empfänger können angegeben werden, indem ein Komma zwischen die Adressen in to gesetzt wird. E-Mails mit angehängten Dateien und speziellen Inhaltstypen können mit dieser Funktion gesendet werden. Dies wird durch MIME-Kodierung ermöglicht. Für weitere Informationen siehe diesen Zend-Artikel oder die PEAR Mime-Klassen.

Die folgenden RFCS könnten auch hilfreich sein: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048 und RFC 2049.

mail() gibt TRUE zurück, wenn die Mail erfolgreich für den Versand akzeptiert wurde, sonst FALSE.

Warnung

Die Windows-Implementierung der mail()-Funktion unterscheidet sich stark von der Unix-Implemtierung. Zum einen benutzt sie keine lokales Programm, um die Mails zu erstellen, sondern sie arbeitet auf Sockets. D.h., dass ein MTA benötigt wird, der auf einem Netzwerk-Socket lauscht (entweder auf dem eigenen oder einem entfernten Rechner). Zum anderen werden die benutzerdefinierten Header wie From:, Cc:, Bcc: und Date: nicht direkt durch den MTA interpretiert, sondern zunächst von PHP geparst. PHP < 4.3 unterstützte nur den Cc:-Header (und berücksichtigte die Groß-/Kleinschreibung). PHP >= 4.3 unterstützt alle genannten Header und ist berücksichtigt nicht mehr die Groß-/Kleinschreibung.

Beispiel 1. Verschicke von Mail.

<?php
mail("nobody@example.com", "Betreff", "Zeile 1\nZeile 2\nZeile 3");
?>

Wenn ein vierter String-Parameter übergeben wird, dann wird dieser an das Ende des Mail-Headers gehängt. Mehrfache Header werden durch einen Zeilenumbruch getrennt.

Anmerkung: Sie müssen die Header mit \r\n trennen, auch wenn einige Unix-MTAs auch mit einem einfachen Zeilenumbruch (\n) korrekt arbeiten.

Beispiel 2. Verschicke Mail mit zusätzlichen Headern.

<?php
mail("nobody@example.com", "Betreff", $message,
     "From: webmaster@{$_SERVER['SERVER_NAME']}\r\n"
    ."Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n"
    ."X-Mailer: PHP/" . phpversion());
?>

Der Parameter additional_parameters kann benutzt werden, um zusätzliche Parameter an das Programm zu übergeben, das für den Mail-Versand über die Option sendmail_path konfiguriert wurde. Zum Beispiel kann dies genutzt werden, um die Envelope-Absenderadresse anzugeben, wenn sendmail benutzt wird (Option -f). Eventuell müssen Sie den Benutzer, unter dem Ihr Webserver läuft, als sendmail-Option übergeben, um zu verhindern, dass Ihrer Mail ein 'X-Warning'-Header angehängt wird, wenn Sie die Envelope-Absenderadresse auf diese Art setzen.

Beispiel 3. Verschicke Mail mit zusätzlichen Headern und einem zusätzlichen Kommandozeilen-Parameter.

<?php
mail("nobody@example.com", "Betreff", $message,
     "From: webmaster@{$_SERVER['SERVER_NAME']}", "-fwebmaster@{$_SERVER['SERVER_NAME']}");
?>

Anmerkung: Der fünfte Parameter wurde in PHP 4.0.5 hinzugefügt. Seit PHP 4.2.3 ist dieser Parameter im safe_mode deaktiviert; mail() gibt eine Warnung aus und gibt FALSE zurück, wenn Sie den Parameter trotzdem verwenden.

Sie können einfache String-Zusammensetzungen verwenden, um komplexe Mails zu erstellen.

Beispiel 4. Verschicke komplexe Mail.

<?php
/* Empfänger */
$to  = "Mary <mary@example.com>" . ", " ; // beachten Sie das Komma
$to .= "Kelly <kelly@example.com>";

/* Betreff */
$subject = "Geburtstags-Erinnerung für August";

/* Nachricht */
$message = '
<html>
<head>
 <title>Geburtstags-Erinnerung für August</title>
</head>
<body>
<p>Hier sind die Geburtstage im August!</p>
<table>
 <tr>
  <th>Person</th><th>Tag</th><th>Monat</th><th>Jahr</th>
 </tr>
 <tr>
  <td>Joe</td><td>3.</td><td>August</td><td>1970</td>
 </tr>
 <tr>
  <td>Sally</td><td>17.</td><td>August</td><td>1973</td>
 </tr>
</table>
</body>
</html>
';

/* Um eine HTML-Mail zu senden, können Sie den den "Content-type"-Header.
   setzen */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* zusätzliche Header */
$headers .= "From: Geburtstags-Erinnerung <geburtstag@example.com>\r\n";

$headers .= "Cc: geburtstagsarchiv@example.com\r\n";
$headers .= "Bcc: geburtstagscheck@example.com\r\n";

/* Verschicken der Mail */
mail($to, $subject, $message, $headers);
?>

Anmerkung: Achten Sie darauf, dass Sie keine Zeilenumbruch-Zeichen in den Parametern to oder subject verwenden, da sonst Ihre Mail eventuell nicht korrekt gesendet werden kann.

Anmerkung: Der to-Parameter darf nicht in der Form "irgendwas <irgendwer@example.com>" sein, da dies von PHP nicht korrekt an den MTA übergeben werden kann.

Siehe auch imap_mail().

Zurück | Zum Anfang | Nach vorne
ezmlm_hash | Nach oben | mailparse Functions


mailparse Functions

PHP Handbuch
Zurück Nach vorne

LI. mailparse Functions

Einführung

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

This extension has been moved from PHP as of PHP 4.2.0 and now mailparse lives in PECL.

Installation

These functions are only available if PHP was configured with --enable-mailparse.

Inhaltsverzeichnis
mailparse_determine_best_xfer_encoding -- Figures out the best way of encoding the content read from the file pointer fp, which must be seek-able
mailparse_msg_create -- Returns a handle that can be used to parse a message
mailparse_msg_extract_part_file -- Extracts/decodes a message section, decoding the transfer encoding
mailparse_msg_extract_part -- Extracts/decodes a message section. If callbackfunc is not specified, the contents will be sent to "stdout"
mailparse_msg_free -- Frees a handle allocated by mailparse_msg_create()
mailparse_msg_get_part_data -- Returns an associative array of info about the message
mailparse_msg_get_part -- Returns a handle on a given section in a mimemessage
mailparse_msg_get_structure -- Returns an array of mime section names in the supplied message
mailparse_msg_parse_file -- Parse file and return a resource representing the structure
mailparse_msg_parse -- Incrementally parse data into buffer
mailparse_rfc822_parse_addresses -- Parse addresses and returns a hash containing that data
mailparse_stream_encode -- Streams data from source file pointer, apply encoding and write to destfp
mailparse_uudecode_all -- Scans the data from fp and extract each embedded uuencoded file. Returns an array listing filename information

Zurück | Zum Anfang | Nach vorne
mail | Nach oben | mailparse_determine_best_xfer_encoding


mailparse_determine_best_xfer_encoding

(4.1.0 - 4.1.2 only)

mailparse_determine_best_xfer_encoding -- Figures out the best way of encoding the content read from the file pointer fp, which must be seek-able

Description

int mailparse_determine_best_xfer_encoding ( resource fp)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse Functions | Nach oben | mailparse_msg_create


mailparse_msg_create

(4.1.0 - 4.1.2 only)

mailparse_msg_create -- Returns a handle that can be used to parse a message

Description

int mailparse_msg_create ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_determine_best_xfer_encoding | Nach oben | mailparse_msg_extract_part_file


mailparse_msg_extract_part_file

(4.1.0 - 4.1.2 only)

mailparse_msg_extract_part_file -- Extracts/decodes a message section, decoding the transfer encoding

Description

string mailparse_msg_extract_part_file ( resource rfc2045, string filename [, string callbackfunc])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_msg_create | Nach oben | mailparse_msg_extract_part


mailparse_msg_extract_part

(4.1.0 - 4.1.2 only)

mailparse_msg_extract_part -- Extracts/decodes a message section. If callbackfunc is not specified, the contents will be sent to "stdout"

Description

void mailparse_msg_extract_part ( resource rfc2045, string msgbody [, string callbackfunc])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_msg_extract_part_file | Nach oben | mailparse_msg_free


mailparse_msg_free

(4.1.0 - 4.1.2 only)

mailparse_msg_free -- Frees a handle allocated by mailparse_msg_create()

Description

void mailparse_msg_free ( resource rfc2045buf)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_msg_extract_part | Nach oben | mailparse_msg_get_part_data


mailparse_msg_get_part_data

(4.1.0 - 4.1.2 only)

mailparse_msg_get_part_data -- Returns an associative array of info about the message

Description

array mailparse_msg_get_part_data ( resource rfc2045)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_msg_free | Nach oben | mailparse_msg_get_part


mailparse_msg_get_part

(4.1.0 - 4.1.2 only)

mailparse_msg_get_part -- Returns a handle on a given section in a mimemessage

Description

int mailparse_msg_get_part ( resource rfc2045, string mimesection)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_msg_get_part_data | Nach oben | mailparse_msg_get_structure


mailparse_msg_get_structure

(4.1.0 - 4.1.2 only)

mailparse_msg_get_structure -- Returns an array of mime section names in the supplied message

Description

array mailparse_msg_get_structure ( resource rfc2045)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_msg_get_part | Nach oben | mailparse_msg_parse_file


mailparse_msg_parse_file

(4.1.0 - 4.1.2 only)

mailparse_msg_parse_file -- Parse file and return a resource representing the structure

Description

resource mailparse_msg_parse_file ( string filename)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_msg_get_structure | Nach oben | mailparse_msg_parse


mailparse_msg_parse

(4.1.0 - 4.1.2 only)

mailparse_msg_parse -- Incrementally parse data into buffer

Description

void mailparse_msg_parse ( resource rfc2045buf, string data)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_msg_parse_file | Nach oben | mailparse_rfc822_parse_addresses


mailparse_rfc822_parse_addresses

(4.1.0 - 4.1.2 only)

mailparse_rfc822_parse_addresses -- Parse addresses and returns a hash containing that data

Description

array mailparse_rfc822_parse_addresses ( string addresses)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_msg_parse | Nach oben | mailparse_stream_encode


mailparse_stream_encode

(4.1.0 - 4.1.2 only)

mailparse_stream_encode -- Streams data from source file pointer, apply encoding and write to destfp

Description

bool mailparse_stream_encode ( resource sourcefp, resource destfp, string encoding)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_rfc822_parse_addresses | Nach oben | mailparse_uudecode_all


mailparse_uudecode_all

(no version information, might be only in CVS)

mailparse_uudecode_all -- Scans the data from fp and extract each embedded uuencoded file. Returns an array listing filename information

Description

array mailparse_uudecode_all ( resource fp)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mailparse_stream_encode | Nach oben | Mathematische Funktionen


Mathematische Funktionen

PHP Handbuch
Zurück Nach vorne

LII. Mathematische Funktionen

Einleitung

Die mathematischen Funktionen behandeln nur Werte im Bereich der Datentypen long und double der jeweiligen Architektur. Wenn Sie größere Zahlen oder Werte mit höherer Genauigkeit benötigen, sollten Sie sich die mathematische Funktionen mit beliebiger Genauigkeit ansehen.

Mathematische Konstanten

Die folgenden Werte werden von diesem Packet definiert:

Tabelle 1. Mathematische Konstanten

Konstante | Wert | Beschreibung
M_PI | 3.14159265358979323846 | Der Wert ¶ (Pi)
M_E | 2.7182818284590452354 | e
M_LOG2E | 1.4426950408889634074 | log_2 e
M_LOG10E | 0.43429448190325182765 | log_10 e
M_LN2 | 0.69314718055994530942 | log_e 2
M_LN10 | 2.30258509299404568402 | log_e 10
M_PI_2 | 1.57079632679489661923 | pi/2
M_PI_4 | 0.78539816339744830962 | pi/4
M_1_PI | 0.31830988618379067154 | 1/pi
M_2_PI | 0.63661977236758134308 | 2/pi
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(pi)
M_SQRT2 | 1.41421356237309504880 | sqrt(2)
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2)
Bis auf M_PI sind diese Konstanten erst ab PHP4.0 verfügbar.

Inhaltsverzeichnis
abs -- Absolutwert (Betrag)
acos -- Arcuscosinus
acosh -- Inverse hyperbolic cosine
asin -- Arcussinus
asinh -- Inverse hyperbolic sine
atan2 -- Arcustangens aus zwei Werten
atan -- Arcustangens
atanh -- Inverse hyperbolic tangent
base_convert -- Konvertiert Werte zwischen Zahlensystemen unterschiedlicher Basis
bindec -- Binär zu dezimal Konvertierung
ceil -- Aufrunden
cos -- Cosinus
cosh -- Hyperbolic cosine
decbin -- Dezimal zu binär Konvertierung
dechex -- Dezimal zu hexadezimal Konvertierung
decoct -- Dezimal zu oktal Konvertierung
deg2rad -- Grad in Bogenmaß wandeln
exp -- e hoch ...
expm1 -- Returns exp(number) - 1, computed in a way that is accurate even when the value of number is close to zero
floor -- Abrunden
fmod -- Returns the floating point remainder (modulo) of the division of the arguments
getrandmax -- Größtmöglicher Zufallswert
hexdec -- Hexadezimal zu dezimal Konvertierung
hypot -- Returns sqrt(num1*num1 + num2*num2)
is_finite -- Finds whether a value is a legal finite number
is_infinite -- Finds whether a value is infinite
is_nan -- Finds whether a value is not a number
lcg_value -- Combined linear congruential generator
log10 -- Zehner-Logarithmus
log1p -- Returns log(1 + number), computed in a way that is accurate even when the value of number is close to zero
log -- Natürlicher Logarithmus
max -- Maximalwert bestimmen
min -- Minimalwert bestimmen
mt_getrandmax -- show largest possible random value
mt_rand -- Erzeugt 'bessere' Zufallszahlen
mt_srand -- seed the better random number generator
octdec -- Oktal zu dezimal Konvertierung
pi -- Wert von PI
pow -- Exponentialfunktion
rad2deg -- Bogenmaß in Grad wandeln
rand -- (Pseudo-) Zufallszahl generieren
round -- Runden eines Wertes
sin -- Sinus
sinh -- Hyperbolic sine
sqrt -- Quadratwurzel
srand -- Startwert für den Zufallsgenerator festlegen
tan -- Tangens
tanh -- Hyperbolic tangent

Zurück | Zum Anfang | Nach vorne
mailparse_uudecode_all | Nach oben | abs


abs

(PHP 3, PHP 4 , PHP 5)

abs -- Absolutwert (Betrag)

Beschreibung

mixed abs ( mixed number)

Liefert den Betrag einer Zahl. Ist number vom Typ float, so ist auch das Ergebnis vom Typ float, ansonsten ist es vom Typ int.

Zurück | Zum Anfang | Nach vorne
Mathematische Funktionen | Nach oben | acos


acos

(PHP 3, PHP 4 , PHP 5)

acos -- Arcuscosinus

Beschreibung

float acos ( float arg)

Liefert den Arcuscosinus zum Wert arg im Bogenmaß.

Siehe auch asin(), atan() und cos().

Zurück | Zum Anfang | Nach vorne
abs | Nach oben | acosh


acosh

(PHP 4 >= 4.1.0, PHP 5)

acosh -- Inverse hyperbolic cosine

Description

float acosh ( float arg)

Returns the inverse hyperbolic cosine of arg, i.e. the value whose hyperbolic cosine is arg.

Anmerkung: Diese Funktion ist auf Windows-Plattformen nicht implementiert.

See also:
acos(),
asinh(), and
atanh().

Zurück | Zum Anfang | Nach vorne
acos | Nach oben | asin


asin

(PHP 3, PHP 4 , PHP 5)

asin -- Arcussinus

Beschreibung

float asin ( float arg)

Liefert den Arcussinus zum Wert arg im Bogenmaß.

Siehe auch acos(), atan() und sin().

Zurück | Zum Anfang | Nach vorne
acosh | Nach oben | asinh


asinh

(PHP 4 >= 4.1.0, PHP 5)

asinh -- Inverse hyperbolic sine

Description

float asinh ( float arg)

Returns the inverse hyperbolic sine of arg, i.e. the value whose hyperbolic sine is arg.

Anmerkung: Diese Funktion ist auf Windows-Plattformen nicht implementiert.

See also:
asin(),
acosh(), and
atanh().

Zurück | Zum Anfang | Nach vorne
asin | Nach oben | atan2


atan2

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

atan2 -- Arcustangens aus zwei Werten

Beschreibung

float atan2 ( float y, float x)

Diese Funktion berechnet den Arcustangens aus den Parametern x und y im Bereich (-¶; ¶]. Dieser entspricht weitgehend dem Arcustangens aus x / y, allerdings kann hier das Vorzeichen beider Parameter ausgewertet und so der Quadrant des Ergebnisses bestimmt werden.

Siehe auch atan(), acos(), asin(), und tan().

Zurück | Zum Anfang | Nach vorne
asinh | Nach oben | atan


atan

(PHP 3, PHP 4 , PHP 5)

atan -- Arcustangens

Beschreibung

float atan ( float arg)

Liefert den Arcustangens zum Wert arg im Bogenmaß im Bereich (-¶/2 ; ¶/2].

See also asin(), acos(), atan2() und tan().

Zurück | Zum Anfang | Nach vorne
atan2 | Nach oben | atanh


atanh

(PHP 4 >= 4.1.0, PHP 5)

atanh -- Inverse hyperbolic tangent

Description

float atanh ( float arg)

Returns the inverse hyperbolic tangent of arg, i.e. the value whose hyperbolic tangent is arg.

Anmerkung: Diese Funktion ist auf Windows-Plattformen nicht implementiert.

See also:
atan(),
asinh(), and
acosh().

Zurück | Zum Anfang | Nach vorne
atan | Nach oben | base_convert


base_convert

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

base_convert -- Konvertiert Werte zwischen Zahlensystemen unterschiedlicher Basis

Beschreibung

strin base_convert ( string number, int frombase, int tobase)

Diese Funktion liefert einen String, der number zur Basis tobase enthält. Der Parameter frombase gibt die Basis des Eingabewertes number an. tobase und tobase können Werte von 2 bis einschließlich 36 enthalten. Für die Darstellung von Werten mit einer Basis größer als 10 werden neben den Ziffern '0' bis '9' auch die Buchstaben von 'a' bis 'z' eingesetzt, wobei 'a' einem Wert von 10 entspricht, 'b' steht dementsprechend für den Wert 11, bis hin zum 'z', das den Wert 36 darstellt.

Beispiel 1. base_convert()

$binary = base_convert($hexadecimal, 16, 2);

Zurück | Zum Anfang | Nach vorne
atanh | Nach oben | bindec


bindec

(PHP 3, PHP 4 , PHP 5)

bindec -- Binär zu dezimal Konvertierung

Beschreibung

int bindec ( string binary_string)

Liefert die dezimale Entsprechung der in binary_string übergebenen binären Zahl. Der größte konvertierbare Wert ist ein String aus 31 Einsen, das entspricht 2147483647 dezimal (2 hoch 32 minus 1).

Siehe auch decbin(), octdec(), und hexdec().

Zurück | Zum Anfang | Nach vorne
base_convert | Nach oben | ceil


ceil

(PHP 3, PHP 4 , PHP 5)

ceil -- Aufrunden

Beschreibung

float ceil ( float number)

Diese Funktion liefert diejenige ganze Zahl, die größer oder gleich dem Parameter number ist.

Siehe auch floor() und round().

Zurück | Zum Anfang | Nach vorne
bindec | Nach oben | cos


cos

(PHP 3, PHP 4 , PHP 5)

cos -- Cosinus

Beschreibung

float cos ( float arg)

Liefert den Cosinus des Winkels arg (arg in Bogenmaß).

Siehe auch sin(), tan() und acos().

Zurück | Zum Anfang | Nach vorne
ceil | Nach oben | cosh


cosh

(PHP 4 >= 4.1.0, PHP 5)

cosh -- Hyperbolic cosine

Description

float cosh ( float arg)

Returns the hyperbolic cosine of arg, defined as (exp(arg) + exp(-arg))/2.

See also:
cos(),
acosh(),
sin(), and
tan().

Zurück | Zum Anfang | Nach vorne
cos | Nach oben | decbin


decbin

(PHP 3, PHP 4 , PHP 5)

decbin -- Dezimal zu binär Konvertierung

Beschreibung

string decbin ( int number)

Diese Funktion liefert eine binäre Repräsentation von number als String zurück. Der größte konvertierbare Wert für number ist dezimal 4294967295, dies entspricht (2 hoch 32)-1 und liefert einen String aus 32 Einsen.

Siehe auch bindec() sowie dechex() und decoct().

Zurück | Zum Anfang | Nach vorne
cosh | Nach oben | dechex


dechex

(PHP 3, PHP 4 , PHP 5)

dechex -- Dezimal zu hexadezimal Konvertierung

Beschreibung

string dechex ( int number)

Diese Funktion liefert eine hexadezimale Repräsentation von number als String zurück. Der größte konvertierbare Wert für number ist dezimal 2147483647, dies entspricht (2 hoch 31)-1 und liefert als Ergebnis den String "7fffffff" zurück.

Siehe auch hexdec() sowie decbin() und decoct().

Zurück | Zum Anfang | Nach vorne
decbin | Nach oben | decoct


decoct

(PHP 3, PHP 4 , PHP 5)

decoct -- Dezimal zu oktal Konvertierung

Beschreibung

string decoct ( int number)

Diese Funktion liefert eine oktale (zur Basis 8) Repräsentation von number als String zurück. Der größte konvertierbare Wert für number ist dezimal 2147483647, dies entspricht (2 hoch 32)-1 und liefet als Ergebnis den String "17777777777" zurück.

Siehe auch octdec() sowie decbin() und dechex().

Zurück | Zum Anfang | Nach vorne
dechex | Nach oben | deg2rad


deg2rad

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

deg2rad -- Grad in Bogenmaß wandeln

Beschreibung

double deg2rad ( double number)

Diese Funktion wandelt den übergebenen Winkel von Grad in Bogenmaß.

Siehe auch rad2deg().

Zurück | Zum Anfang | Nach vorne
decoct | Nach oben | exp


exp

(PHP 3, PHP 4 , PHP 5)

exp -- e hoch ...

Beschreibung

float exp ( float arg)

Liefert e potenziert mit arg.

Siehe auch pow().

Zurück | Zum Anfang | Nach vorne
deg2rad | Nach oben | expm1


expm1

(PHP 4 >= 4.1.0, PHP 5)

expm1 -- Returns exp(number) - 1, computed in a way that is accurate even when the value of number is close to zero

Description

float expm1 ( float number)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: Diese Funktion ist auf Windows-Plattformen nicht implementiert.

Zurück | Zum Anfang | Nach vorne
exp | Nach oben | floor


floor

(PHP 3, PHP 4 , PHP 5)

floor -- Abrunden

Beschreibung

float floor ( float number)

Diese Funktion liefert die ganze Zahl, die kleiner oder gleich dem Parameter number ist.

Siehe auch ceil() und round().

Zurück | Zum Anfang | Nach vorne
expm1 | Nach oben | fmod


fmod

(PHP 4 >= 4.2.0, PHP 5)

fmod -- Returns the floating point remainder (modulo) of the division of the arguments

Description

float fmod ( float x, float y)

Returns the floating point remainder of dividing the dividend (x) by the divisor (y). The reminder (r) is defined as: x = i * y + r, for some integer i. If y is non-zero, r has the same sign as x and a magnitude less than the magnitude of y.

Beispiel 1. Using fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7
?>

Zurück | Zum Anfang | Nach vorne
floor | Nach oben | getrandmax


getrandmax

(PHP 3, PHP 4 , PHP 5)

getrandmax -- Größtmöglicher Zufallswert

Beschreibung

int getrandmax ( void )

Diese Funktion liefert den höchsten Wert, den ein Aufruf der Funktion rand() auf dieser Plattform zurückgeben kann.

Siehe auch rand(), srand()
mt_rand(), mt_srand() und
mt_getrandmax().

Zurück | Zum Anfang | Nach vorne
fmod | Nach oben | hexdec


hexdec

(PHP 3, PHP 4 , PHP 5)

hexdec -- Hexadezimal zu dezimal Konvertierung

Beschreibung

int hexdec ( string hex_string)

Liefert die dezimale Entsprechung der in hex_string übergebenen hexadezimalen Zahl. Der größte konvertierbare Wert ist "7fffffff", das entspricht 2147483647 dezimal (2 hoch 32 minus 1).

Siehe auch dechex() sowie bindec() und octdec().

Zurück | Zum Anfang | Nach vorne
getrandmax | Nach oben | hypot


hypot

(PHP 4 >= 4.1.0, PHP 5)

hypot -- Returns sqrt(num1*num1 + num2*num2)

Description

float hypot ( float num1, float num2)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
hexdec | Nach oben | is_finite


is_finite

(PHP 4 >= 4.2.0, PHP 5)

is_finite -- Finds whether a value is a legal finite number

Description

bool is_finite ( float val)

Returns TRUE if val is a legal finite number within the allowed range for a PHP float on this platform.

See also is_infinite() and is_nan().

Zurück | Zum Anfang | Nach vorne
hypot | Nach oben | is_infinite


is_infinite

(PHP 4 >= 4.2.0, PHP 5)

is_infinite -- Finds whether a value is infinite

Description

bool is_infinite ( float val)

Returns TRUE if val is infinite (positive or negative), like the result of log(0) or any value too big to fit into a float on this platform.

See also is_finite() and is_nan().

Zurück | Zum Anfang | Nach vorne
is_finite | Nach oben | is_nan


is_nan

(PHP 4 >= 4.2.0, PHP 5)

is_nan -- Finds whether a value is not a number

Description

bool is_nan ( float val)

Returns TRUE if val is 'not a number', like the result of acos(1.01).

See also is_finite() and is_infinite().

Zurück | Zum Anfang | Nach vorne
is_infinite | Nach oben | lcg_value


lcg_value

(PHP 4 , PHP 5)

lcg_value -- Combined linear congruential generator

Description

float lcg_value ( void )

lcg_value() returns a pseudo random number in the range of (0, 1). The function combines two CGs with periods of 2^31 - 85 and 2^31 - 249. The period of this function is equal to the product of both primes.

Zurück | Zum Anfang | Nach vorne
is_nan | Nach oben | log10


log10

(PHP 3, PHP 4 , PHP 5)

log10 -- Zehner-Logarithmus

Beschreibung

float log10 ( float arg)

Diese Funktion liefert den Logarithmus des Parameters arg zur Basis zehn.

Siehe auch log().

Zurück | Zum Anfang | Nach vorne
lcg_value | Nach oben | log1p


log1p

(PHP 4 >= 4.1.0, PHP 5)

log1p -- Returns log(1 + number), computed in a way that is accurate even when the value of number is close to zero

Description

float log1p ( float number)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: Diese Funktion ist auf Windows-Plattformen nicht implementiert.

Zurück | Zum Anfang | Nach vorne
log10 | Nach oben | log


log

(PHP 3, PHP 4 , PHP 5)

log -- Natürlicher Logarithmus

Beschreibung

float log ( float arg)

Diese Funktion liefert den natürlichen Logarithmus (zur Basis e) des Parameters arg.

Siehe auch exp() und log10().

Zurück | Zum Anfang | Nach vorne
log1p | Nach oben | max


max

(PHP 3, PHP 4 , PHP 5)

max -- Maximalwert bestimmen

Beschreibung

mixed max ( mixed arg1, mixed arg2, mixed argn)

max() liefert den numerisch größten Eingabewert zurück.

Ist der erste Parameter ein Array, so wird der größte Wert innerhalb dieses Array zurückgegeben. Anderenfalls müssen mindestens zwei Parameter übergeben werden, und max() liefert den Wert des größten Parameters zurück. Die Anzahl der Eingabe-Parameter ist nur durch den verfügbaren Hauptspeicher begrenzt.

Ist mindestens einer der Eingabewerte vom Typ double, so werden alle Werte als double behandelt und der Rückgabewert ist ebenfalls vom Typ double. Anderenfalls werden alle Eingabewerte als int behandelt und auch ein int zurückgegeben.

Siehe auch min().

Zurück | Zum Anfang | Nach vorne
log | Nach oben | min


min

(PHP 3, PHP 4 , PHP 5)

min -- Minimalwert bestimmen

Beschreibung

mixed min ( mixed arg1, mixed arg2, mixed argn)

min() liefert den numerisch kleinsten Eingabewert zurück.

Ist der erste Parameter ein Array, so wird der kleinste Wert innerhalb dieses Array zurückgegeben. Anderenfalls müssen mindestens zwei Parameter übergeben werden, und min() liefert den Wert des kleinsten Parameters zurück. Die Anzahl der Eingabe-Parameter ist nur durch den verfügbaren Hauptspeicher begrenzt.

Ist mindestens einer der Eingabewerte vom Typ double, so werden alle Werte als double behandelt und der Rückgabewert ist ebenfalls vom Typ double. Anderenfalls werden alle Eingabewerte als int behandelt und auch ein int zurückgegeben.

Siehe auch max().

Zurück | Zum Anfang | Nach vorne
max | Nach oben | mt_getrandmax


mt_getrandmax

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mt_getrandmax -- show largest possible random value

Beschreibung

int mt_getrandmax ( void )

Diese Funktion liefert den höchsten Wert, den ein Aufruf der Funktion mt_rand() auf dieser Plattform zurückgeben kann.

Siehe auch mt_rand(),
mt_srand() rand(),
srand() and getrandmax().

Zurück | Zum Anfang | Nach vorne
min | Nach oben | mt_rand


mt_rand

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mt_rand -- Erzeugt 'bessere' Zufallszahlen

Beschreibung

int mt_rand ( [ int min [, int max]])

Die PHP rand() Funktion benutzt den in der jeweiligen libc enthaltenen Zufallsgenerator. Gerade in älteren libc-Versionen ist dieser aber oft langsam und die Qualität der erzeugten Pseudozufalls-Sequenzen ist unbefriedigend bis unbekannt.

Die Funktion mt_rand() bietet einen Drop-In Ersatz für die von der libc bereitgestellten Funktionen. Sie benutzt einen Zufallsgenerator mit bekannter Characteristik, den sogenannten "Mersenne Twister", der Pseudozufalls-Sequenzen generiert, die auch kryptografischen Ansprüchen genügen sollten und viermal so schnell arbeitet wie der typische libc-Algorithmus.

Weitere Informationen zum Mersenne Twister und zur optimierten Implementation finden sich unter http://www.math.keio.ac.jp/~matumoto/emt.html und ???.

Ohne die optionalen Parameter min und max liefert mt_rand() eine Pseudo-Zufallszahl zwischen 0 und einem plattformabhängigen Maximalwert, der mit mt_getrandmax() ermittelt werden kann.

Benutzen Sie unbedingt mt_srand(), um vor dem ersten Aufruf von mt_rand() einen neuen Startwert festzulegen, ansonsten erhalten Sie bei jedem Programmlauf dieselbe Sequenz von Werten.

Anmerkung: Seit PHP 4.2.0 ist es nicht mehr nötig, den Zufallszahlengenerator zu initialisieren, bevor man ihn benutzt.

Anmerkung: In PHP-Versionen vor 3.0.7 hatte der zweite Parameter max nicht den Maximalwert sondern die Größe des Werteintervalls an, d.h. in diesen älteren Version muss statt mt_rand(min,max) mt_rand(min,max-min) benutzt werden, um dasselbe Ergebnis zu erhalten.

Siehe auch mt_srand(),
mt_getrandmax(), srand(),
rand() und getrandmax().

Zurück | Zum Anfang | Nach vorne
mt_getrandmax | Nach oben | mt_srand


mt_srand

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mt_srand -- seed the better random number generator

Beschreibung

void mt_srand ( int seed)

Legt einen internen Startwert für den Zufallsgenerator in mt_rand() fest. Gleiche Startwerte führen auch jeweils zu derselben Pseudo-Zufallssequenzen daher ist es üblich, diese über die aktuelle Uhrzeit festzulegen:

// seed with microseconds since last "whole" second
mt_srand((double)microtime()*1000000);
$randval = mt_rand();

Anmerkung: Seit PHP 4.2.0 ist es nicht mehr nötig, den Zufallszahlengenerator zu initialisieren, bevor man ihn benutzt.

Siehe auch mt_rand(),
mt_getrandmax(), srand(),
rand() und getrandmax().

Zurück | Zum Anfang | Nach vorne
mt_rand | Nach oben | octdec


octdec

(PHP 3, PHP 4 , PHP 5)

octdec -- Oktal zu dezimal Konvertierung

Beschreibung

int octdec ( string octal_string)

Liefert die dezimale Entsprechung der in octal_string übergebenen oktalen Zahl. Der größte konvertierbare Wert ist "17777777777", das entspricht 2147483647 dezimal (2 hoch 32 minus 1).

Siehe auch decoct() sowie bindec() und hexdec().

Zurück | Zum Anfang | Nach vorne
mt_srand | Nach oben | pi


pi

(PHP 3, PHP 4 , PHP 5)

pi -- Wert von PI

Beschreibung

double pi ( void )

Diese Funktionen liefert (im Rahmen der möglichen Genauigkeit) den Wert der Kreiszahl Pi. Die Konstante M_PI erfüllt denselben Zweck allerdings wesentlich effektiver.

Zurück | Zum Anfang | Nach vorne
octdec | Nach oben | pow


pow

(PHP 3, PHP 4 , PHP 5)

pow -- Exponentialfunktion

Beschreibung

float pow ( float base, float exp)

Diese Funktion liefert base potenziert mit exp, also base hoch exp.

Siehe auch exp().

Zurück | Zum Anfang | Nach vorne
pi | Nach oben | rad2deg


rad2deg

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

rad2deg -- Bogenmaß in Grad wandeln

Beschreibung

double rad2deg ( double number)

Diese Funktion wandelt den übergebenen Winkel von Bogenmaß in Grad.

Siehe auch deg2rad().

Zurück | Zum Anfang | Nach vorne
pow | Nach oben | rand


rand

(PHP 3, PHP 4 , PHP 5)

rand -- (Pseudo-) Zufallszahl generieren

Beschreibung

int rand ( [ int min [, int max]])

Diese Funktion liefert eine Pseudo-Zufallszahl zwischen min und max (inclusive). Ohne die optionalen Parameter min und max liefert rand() eine Pseudo-Zufallszahl zwischen 0 und einem plattformabhängigen Maximalwert, der mit getrandmax() ermittelt werden kann.

Benutzen Sie unbedingt srand(), um vor dem ersten Aufruf von rand() einen neuen Startwert festzulegen, ansonsten erhalten Sie bei jedem Programmlauf dieselbe Sequenz von Werten.

Anmerkung: Seit PHP 4.2.0 ist es nicht mehr nötig, den Zufallszahlengenerator zu initialisieren, bevor man ihn benutzt.

Anmerkung: In PHP-Versionen vor 3.0.7 hatte der zweite Parameter max nicht den Maximalwert sondern die Größe des Werteintervalls an, d.h. in diesen älteren Version muss statt rand (min, max) rand (min, max-min) benutzt werden, um dasselbe Ergebnis zu erhalten.

Siehe auch srand(),
getrandmax(), mt_rand(),
mt_srand() und
mt_getrandmax().

Zurück | Zum Anfang | Nach vorne
rad2deg | Nach oben | round


round

(PHP 3, PHP 4 , PHP 5)

round -- Runden eines Wertes

Beschreibung

double round ( double val [, int precision])

Diese Funktion rundet den Eingabewert val auf precision Stellen nach dem Komma auf oder ab.

$foo = round (3.4);   // $foo == 3.0
$foo = round (3.5);   // $foo == 4.0
$foo = round (3.6);   // $foo == 4.0

$foo = round (1.95583,2);   // $foo == 1.96

Anmerkung: Der Parameter precision ist nur in PHP 4 verfügbar.

Siehe auch ceil() und floor().

Zurück | Zum Anfang | Nach vorne
rand | Nach oben | sin


sin

(PHP 3, PHP 4 , PHP 5)

sin -- Sinus

Beschreibung

float sin ( float arg)

Liefert den Sinus des Eingabewertes arg. arg wird im Bogenmaß angegeben.

Siehe auch cos(), tan() und asin().

Zurück | Zum Anfang | Nach vorne
round | Nach oben | sinh


sinh

(PHP 4 >= 4.1.0, PHP 5)

sinh -- Hyperbolic sine

Description

float sinh ( float arg)

Returns the hyperbolic sine of arg, defined as (exp(arg) - exp(-arg))/2.

See also:
sin(),
asinh(),
cos(), and
tan().

Zurück | Zum Anfang | Nach vorne
sin | Nach oben | sqrt


sqrt

(PHP 3, PHP 4 , PHP 5)

sqrt -- Quadratwurzel

Beschreibung

float sqrt ( float arg)

Diese Funktion liefert die Quadratwurzel des Wertes arg.

Zurück | Zum Anfang | Nach vorne
sinh | Nach oben | srand


srand

(PHP 3, PHP 4 , PHP 5)

srand -- Startwert für den Zufallsgenerator festlegen

Beschreibung

void srand ( int seed)

Legt einen internen Startwert für den Zufallsgenerator in rand() fest. Gleiche Startwerte führen auch jeweils zu derselben Pseudo-Zufallssequenzen daher ist es üblich, diese über die aktuelle Uhrzeit festzulegen:

// seed with microseconds since last "whole" second
srand ((double)microtime()*1000000);
$randval = rand();

Anmerkung: Seit PHP 4.2.0 ist es nicht mehr nötig, den Zufallszahlengenerator zu initialisieren, bevor man ihn benutzt.

Siehe auch rand(),
getrandmax(), mt_rand(),
mt_srand() und
mt_getrandmax().

Zurück | Zum Anfang | Nach vorne
sqrt | Nach oben | tan


tan

(PHP 3, PHP 4 , PHP 5)

tan -- Tangens

Beschreibung

float tan ( float arg)

Liefert den Tangens des Wertes arg. arg wird dabei im Bogenmaß angegeben.

Siehe auch sin(), cos(), atan() und atan2().

Zurück | Zum Anfang | Nach vorne
srand | Nach oben | tanh


tanh

(PHP 4 >= 4.1.0, PHP 5)

tanh -- Hyperbolic tangent

Description

float tanh ( float arg)

Returns the hyperbolic tangent of arg, defined as sinh(arg)/cosh(arg).

See also:
tan(),
atanh(),
sin(), and
cos().

Zurück | Zum Anfang | Nach vorne
tan | Nach oben | Multibyte String Functions


Multibyte String Functions

PHP Handbuch
Zurück Nach vorne

LIII. Multibyte String Functions

Einführung

While there are many languages in which every necessary character can be represented by a one-to-one mapping to a 8-bit value, there are also several languages which require so many characters for written communication that cannot be contained within the range a mere byte can code. Multibyte character encoding schemes were developed to express that many (more than 256) characters in the regular bytewise coding system.

When you manipulate (trim, split, splice, etc.) strings encoded in a multibyte encoding, you need to use special functions since two or more consecutive bytes may represent a single character in such encoding schemes. Otherwise, if you apply a non-multibyte-aware string function to the string, it probably fails to detect the beginning or ending of the multibyte character and ends up with a corrupted garbage string that most likely loses its original meaning.

mbstring provides these multibyte specific string functions that help you deal with multibyte encodings in PHP, which is basically supposed to be used with single byte encodings. In addition to that, mbstring handles character encoding conversion between the possible encoding pairs.

mbstring is also designed to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte encodings for convenience (listed below), whereas mbstring was originally developed for use in Japanese web pages.

PHP Character Encoding Requirements

Encodings of the following types are safely used with PHP.

  • A singlebyte encoding,

    • which has ASCII-compatible (ISO646 compatible) mappings for the characters in range of 00h to 7fh.

  • A multibyte encoding,

    • which has ASCII-compatible mappings for the characters in range of 00h to 7fh.

    • which don't use ISO2022 escape sequences.

    • which don't use a value from 00h to 7fh in any of the compounded bytes that represents a single character.

These are examples of character encodings that are unlikely to work with PHP.

JIS, SJIS, ISO-2022-JP, BIG-5

Although PHP scripts written in any of those encodings might not work, especially in the case where encoded strings appear as identifiers or literals in the script, you can almost avoid using these encodings by setting up the mbstring's transparent encoding filter function for incoming HTTP queries.

Anmerkung: It's highly discouraged to use SJIS, BIG5, CP936, CP949 and GB18030 for the internal encoding unless you are familiar with the parser, the scanner and the character encoding.

Anmerkung: If you have some database connected with PHP, it is recommended that you use the same character encoding for both database and the internal encoding for ease of use and better performance.

If you are using PostgreSQL, the character encoding used in the database and the one used in the PHP may differ as it supports automatic character set conversion between the backend and the frontend.

Installation

mbstring is a non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option. See the Install section for details.

The following configure options are related to the mbstring module.

  • --enable-mbstring=LANG: Enable mbstring functions. This option is required to use mbstring functions.

    As of PHP 4.3.0, mbstring extension provides
enhanced support for Simplified Chinese, Traditional Chinese,
Korean, and Russian in addition to Japanese.
To enable that feature, you will have to supply either one of the
following options to the LANG parameter;
--enable-mbstring=cn for Simplified Chinese support,
--enable-mbstring=tw for Traditional Chinese support,
--enable-mbstring=kr for Korean support,
--enable-mbstring=ru for Russian support, and
--enable-mbstring=ja for Japanese support.

    Also --enable-mbstring=all is convenient for you to enable all the supported languages listed above.

    Anmerkung: Japanese language support is also enabled by --enable-mbstring without any options for the sake of backwards compatibility.

  • --enable-mbstr-enc-trans : Enable HTTP input character encoding conversion using mbstring conversion engine. If this feature is enabled, HTTP input character encoding may be converted to mbstring.internal_encoding automatically.

    Anmerkung: As of PHP 4.3.0, the option --enable-mbstr-enc-trans was eliminated and replaced with the runtime setting mbstring.encoding_translation. HTTP input character encoding conversion is enabled when this is set to On (the default is Off).

  • --enable-mbregex: Enable regular expression functions with multibyte character support.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. mbstring configuration options

Name | Default | Changeable
mbstring.language | "neutral" | PHP_INI_SYSTEM | PHP_INI_PERDIR
mbstring.detect_order | NULL | PHP_INI_ALL
mbstring.http_input | "pass" | PHP_INI_ALL
mbstring.http_output | "pass" | PHP_INI_ALL
mbstring.internal_encoding | NULL | PHP_INI_ALL
mbstring.script_encoding | NULL | PHP_INI_ALL
mbstring.substitute_character | NULL | PHP_INI_ALL
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR
mbstring.encoding_translation | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR
For the definition of the PHP_INI_* constants, please refer to ini_set().

Hier eine kurze Erklärung der Konfigurationsoptionen:

  • mbstring.language is the default national language setting (NLS) used in mbstring. Note that this option automagically defines mbstring.internal_encoding and mbstring.internal_encoding should be placed after mbstring.language in php.ini

  • mbstring.encoding_translation enables the transparent character encoding filter for the incoming HTTP queries, which performs detection and conversion of the input encoding to the internal character encoding.

  • mbstring.internal_encoding defines the default internal character encoding.

  • mbstring.http_input defines the default HTTP input character encoding.

  • mbstring.http_output defines the default HTTP output character encoding.

  • mbstring.detect_order defines default character code detection order. See also mb_detect_order().

  • mbstring.substitute_character defines character to substitute for invalid character encoding.

  • mbstring.func_overload overloads a set of single byte functions by the mbstring counterparts. See Funtion overloading for more information.

According to the HTML 4.01 specification, Web browsers are allowed to encode a form being submitted with a character encoding different from the one used for the page. See mb_http_input() to detect character encoding used by browsers.

Although popular browsers are capable of giving a reasonably accurate guess to the character encoding of a given HTML document, it would be better to set the charset parameter in the Content-Type HTTP header to the appropriate value by header() or default_charset ini setting.

Beispiel 1. php.ini setting examples

; Set default language
mbstring.language        = Neutral; Set default language to Neutral(UTF-8) (default)
mbstring.language        = English; Set default language to English
mbstring.language        = Japanese; Set default language to Japanese

;; Set default internal encoding
;; Note: Make sure to use character encoding works with PHP
mbstring.internal_encoding    = UTF-8  ; Set internal encoding to UTF-8

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set default HTTP input character encoding
;; Note: Script cannot change http_input setting.
mbstring.http_input           = pass    ; No conversion.
mbstring.http_input           = auto    ; Set HTTP input to auto
                                ; "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS"
mbstring.http_input           = SJIS    ; Set HTTP2 input to  SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Specify order

;; Set default HTTP output character encoding
mbstring.http_output          = pass    ; No conversion
mbstring.http_output          = UTF-8   ; Set HTTP output encoding to UTF-8

;; Set default character encoding detection order
mbstring.detect_order         = auto    ; Set detect order to auto
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Specify order

;; Set default substitute character
mbstring.substitute_character = 12307   ; Specify Unicode value
mbstring.substitute_character = none    ; Do not print character
mbstring.substitute_character = long    ; Long Example: U+3000,JIS+7E7E

Beispiel 2. php.ini setting for EUC-JP users

;; Disable Output Buffering
output_buffering      = Off

;; Set HTTP header charset
default_charset       = EUC-JP

;; Set default language to Japanese
mbstring.language = Japanese

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set HTTP input encoding conversion to auto
mbstring.http_input   = auto

;; Convert HTTP output to EUC-JP
mbstring.http_output  = EUC-JP

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Beispiel 3. php.ini setting for SJIS users

;; Enable Output Buffering
output_buffering     = On

;; Set mb_output_handler to enable output conversion
output_handler       = mb_output_handler

;; Set HTTP header charset
default_charset      = Shift_JIS

;; Set default language to Japanese
mbstring.language = Japanese

;; Set http input encoding conversion to auto
mbstring.http_input  = auto

;; Convert to SJIS
mbstring.http_output = SJIS

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MB_OVERLOAD_MAIL (integer)

MB_OVERLOAD_STRING (integer)

MB_OVERLOAD_REGEX (integer)

HTTP Input and Output

HTTP input/output character encoding conversion may convert binary data also. Users are supposed to control character encoding conversion if binary data is used for HTTP input/output.

Anmerkung: In PHP 4.3.2 or earlier versions, there was a limitation in this functionality that mbstring does not perform character encoding conversion in POST data if the enctype attribute in the form element is set to multipart/form-data. So you have to convert the incoming data by yourself in this case if necessary.

Beginning with PHP 4.3.3, if enctype for HTML form is set to multipart/form-data and mbstring.encoding_translation is set to On in php.ini the POST'ed variables and the names of uploaded files will be converted to the internal character encoding as well. However, the conversion isn't applied to the query keys.

  • HTTP Input

    There is no way to control HTTP input character conversion from PHP script. To disable HTTP input character conversion, it has to be done in php.ini.

    Beispiel 4. Disable HTTP input conversion in php.ini

    ;; Disable HTTP Input conversion
    mbstring.http_input = pass
    ;; Disable HTTP Input conversion (PHP 4.3.0 or higher)
    mbstring.encoding_translation = Off

    When using PHP as an Apache module, it is possible to override those settings in each Virtual Host directive in httpd.conf or per directory with .htaccess. Refer to the Configuration section and Apache Manual for details.

  • HTTP Output

    There are several ways to enable output character encoding conversion. One is using php.ini, another is using ob_start() with mb_output_handler() as ob_start callback function.

    Anmerkung: PHP3-i18n users should note that mbstring's output conversion differs from PHP3-i18n. Character encoding is converted using output buffer.

Beispiel 5. php.ini setting example

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler

Beispiel 6. Script example

<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>

Supported Character Encodings

Currently the following character encodings are supported by the mbstring module. Any of those Character encodings can be specified in the encoding parameter of mbstring functions.

The following character encoding is supported in this PHP extension:

  • UCS-4

  • UCS-4BE

  • UCS-4LE

  • UCS-2

  • UCS-2BE

  • UCS-2LE

  • UTF-32

  • UTF-32BE

  • UTF-32LE

  • UTF-16

  • UTF-16BE

  • UTF-16LE

  • UTF-7

  • UTF7-IMAP

  • UTF-8

  • ASCII

  • EUC-JP

  • SJIS

  • eucJP-win

  • SJIS-win

  • ISO-2022-JP

  • JIS

  • ISO-8859-1

  • ISO-8859-2

  • ISO-8859-3

  • ISO-8859-4

  • ISO-8859-5

  • ISO-8859-6

  • ISO-8859-7

  • ISO-8859-8

  • ISO-8859-9

  • ISO-8859-10

  • ISO-8859-13

  • ISO-8859-14

  • ISO-8859-15

  • byte2be

  • byte2le

  • byte4be

  • byte4le

  • BASE64

  • HTML-ENTITIES

  • 7bit

  • 8bit

  • EUC-CN

  • CP936

  • HZ

  • EUC-TW

  • CP950

  • BIG-5

  • EUC-KR

  • UHC (CP949)

  • ISO-2022-KR

  • Windows-1251 (CP1251)

  • Windows-1252 (CP1252)

  • CP866 (IBM866)

  • KOI8-R

php.ini entry, which accepts encoding name, accepts "auto" and "pass" also. mbstring functions, which accepts encoding name, and accepts "auto".

If "pass" is set, no character encoding conversion is performed.

If "auto" is set, it is expanded to the list of encodings defined per the NLS. For instance, if the NLS is set to Japanese, the value is assumed to be "ASCII,JIS,UTF-8,EUC-JP,SJIS".

See also mb_detect_order()

Function Overloading Feature

You might often find it difficult to get an existing PHP application work in a given multibyte environment. That's mostly because lots of PHP applications out there are written with the standard string functions such as substr(), which are known to not properly handle multibyte-encoded strings.

mbstring supports 'function overloading' feature which enables you to add multibyte awareness to such an application without code modification by overloading multibyte counterparts on the standard string functions. For example, mb_substr() is called instead of substr() if function overloading is enabled. This feature makes it easy to port applications that only support single-byte encodings to a multibyte environment in many cases.

To use the function overloading, set mbstring.func_overload in php.ini to a positive value that represents a combination of bitmasks specifying the categories of functions to be overloaded. It should be set to 1 to overload the mail() function. 2 for string functions, 4 for regular expression functions. For example, if is set for 7, mail, strings and regular expression functions should be overloaded. The list of overloaded functions are shown below.

Tabelle 2. Functions to be overloaded

value of mbstring.func_overload | original function | overloaded function
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Anmerkung: It is not recommended to use the function overloading option in the per-directory context, because it's not confirmed yet to be stable enough in a production environment and may lead to undefined behaviour.

Basics of Japanese multi-byte encodings

It is often said quite hard to figure out how Japanese texts are handled in the computer. This is not only because Japanese characters can only be represented by multibyte encodings, but because different encoding standards are adopted for different purposes / platforms. Moreover, not a few character set standards are used there, which are slightly different from one another. Those facts have often led developers to inevitable mess-up.

To create a working web application that would be put in the Japanese environment, it is important to use the proper character encoding and character set for the task in hand.

  • Storage for a character can be up to six bytes

  • Most of multibyte characters often appear twice as wide as a single-byte character on display. Those characters are called "zen-kaku" in Japanese which means "full width", and the other (narrower) characters are called "han-kaku" - means half width. However the graphical properties of the characters depend on the glyphs of the type faces used to display them or print them out.

  • Some character encodings use shift(escape) sequences defined in ISO2022 to switch the code map of the specific code area (00h to 7fh).

  • ISO-2022-JP should be used in SMTP/NNTP, and headers and entities should be reencoded as per RFC requirements. Although those are not requisites, it's still a good idea because several popular user agents cannot recognize any other encoding methods.

  • Webpages created for mobile phone services such as i-mode, Vodafone live!, or EZweb are supposed to use Shift_JIS.

References

Multibyte character encoding schemes and the related issues are very complicated. There should be too few space to cover in sufficient details. Please refer to the following URLs and other resources for further readings.

  • Unicode materials

    http://www.unicode.org/

  • Japanese/Korean/Chinese character information

    http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

Summaries of supported encodings

Summaries of supported encodings

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: ISO 10646

Description: The Universal Character Set with 31-bit code space, standardized as UCS-4 by ISO/IEC 10646. It is kept synchronized with the latest version of the Unicode code map.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: UCS-4

Description: See above.

Additional note: In contrast to UCS-4, strings are always assumed to be in big endian form.

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: UCS-4

Description: See above.

Additional note: In contrast to UCS-4, strings are always assumed to be in little endian form.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: The Universal Character Set with 16-bit code space, standardized as UCS-2 by ISO/IEC 10646. It is kept synchronized with the latest version of the unicode code map.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: See above.

Additional note: In contrast to UCS-2, strings are always assumed to be in big endian form.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: See above.

Additional note: In contrast to UCS-2, strings are always assumed to be in little endian form.

Name in the IANA character set registry: UTF-32

Underlying character set: Unicode

Description: Unicode Transformation Format of 32-bit unit width, whose encoding space refers to the Unicode's codeset standard. This encoding scheme wasn't identical to UCS-4 because the code space of Unicode were limited to a 21-bit value.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: UTF-32BE

Underlying character set: Unicode

Description: See above

Additional note: In contrast to UTF-32, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-32LE

Underlying character set: Unicode

Description: See above

Additional note: In contrast to UTF-32, strings are always assumed to be in little endian form.

Name in the IANA character set registry: UTF-16

Underlying character set: Unicode

Description: Unicode Transformation Format of 16-bit unit width. It's worth a note that UTF-16 is no longer the same specification as UCS-2 because the surrogate mechanism has been introduced since Unicode 2.0 and UTF-16 now refers to a 21-bit code space.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: UTF-16BE

Underlying character set: Unicode

Description: See above.

Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-16BE

Underlying character set: Unicode

Description: See above.

Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-8

Underlying character set: Unicode / UCS

Description: Unicode Transformation Format of 8-bit unit width.

Additional note: none

Name in the IANA character set registry: UTF-7

Underlying character set: Unicode

Description: A mail-safe transformation format of Unicode, specified in RFC2152.

Additional note: none

Name in the IANA character set registry: (none)

Underlying character set: Unicode

Description: A variant of UTF-7 which is specialized for use in the IMAP protocol.

Additional note: none

Name in the IANA character set registry: US-ASCII (preferred MIME name) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII

Underlying character set: ASCII / ISO 646

Description: American Standard Code for Information Interchange is a commonly-used 7-bit encoding. Also standardized as an international standard, ISO 646.

Additional note: (none)

Name in the IANA character set registry: EUC-JP (preferred MIME name) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese

Underlying character set: Compound of US-ASCII / JIS X0201:1997 (hankaku kana part) / JIS X0208:1990 / JIS X0212:1990

Description: As you see the name is derived from an abbreviation of Extended UNIX Code Packed Format for Japanese, this encoding is mostly used on UNIX or alike platforms. The original encoding scheme, Extended UNIX Code, is designed on the basis of ISO 2022.

Additional note: The character set referred to by EUC-JP is different to IBM932 / CP932, which are used by OS/2® and Microsoft® Windows®. For information interchange with those platforms, use EUCJP-WIN instead.

Name in the IANA character set registry: Shift_JIS (preferred MIME name) / MS_Kanji / csShift_JIS

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997

Description: Shift_JIS was developed in early 80's, at the time personal Japanese word processors were brought into the market, in order to maintain compatiblities with the legacy encoding scheme JIS X 0201:1976. According to the IANA definition the codeset of Shift_JIS is slightly different to IBM932 / CP932. However, the names "SJIS" / "Shift_JIS" are often wrongly used to refer to these codesets.

Additional note: For the CP932 codemap, use SJIS-WIN instead.

Name in the IANA character set registry: (none)

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: While this "encoding" uses the same encoding scheme as EUC-JP, the underlying character set is different. That is, some code points map to different characters than EUC-JP.

Additional note: none

Name in the IANA character set registry: Windows-31J / csWindows31J

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: While this "encoding" uses the same encoding scheme as Shift_JIS, the underlying character set is different. That means some code points map to different characters than Shift_JIS.

Additional note: (none)

Name in the IANA character set registry: ISO-2022-JP (preferred MIME name) / csISO2022JP

Underlying character set: US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983

Description: RFC1468

Additional note: (none)

Name in the IANA character set registry: JIS

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-1

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-2

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-3

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-4

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-5

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-6

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-7

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-8

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-9

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-10

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-13

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-14

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-15

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte2be

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte2le

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte4be

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte4le

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: BASE64

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: HTML-ENTITIES

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: 7bit

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: 8bit

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-CN

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP936

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: HZ

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-TW

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP950

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: BIG-5

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-KR

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: UHC (CP949)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-2022-KR

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: Windows-1251 (CP1251)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: Windows-1252 (CP1252)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP866 (IBM866)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: KOI8-R

Underlying character set:

Description:

Additional note:

Inhaltsverzeichnis
mb_convert_case -- Perform case folding on a string
mb_convert_encoding -- Convert character encoding
mb_convert_kana -- Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
mb_convert_variables -- Convert character code in variable(s)
mb_decode_mimeheader -- Decode string in MIME header field
mb_decode_numericentity -- Decode HTML numeric string reference to character
mb_detect_encoding -- Detect character encoding
mb_detect_order -- Set/Get character encoding detection order
mb_encode_mimeheader -- Encode string for MIME header
mb_encode_numericentity -- Encode character to HTML numeric string reference
mb_ereg_match -- Regular expression match for multibyte string
mb_ereg_replace -- Replace regular expression with multibyte support
mb_ereg_search_getpos -- Returns start point for next regular expression match
mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match
mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match
mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string
mb_ereg_search_regs -- Returns the matched part of multibyte regular expression
mb_ereg_search_setpos -- Set start point of next regular expression match
mb_ereg_search -- Multibyte regular expression match for predefined multibyte string
mb_ereg -- Regular expression match with multibyte support
mb_eregi_replace -- Replace regular expression with multibyte support ignoring case
mb_eregi -- Regular expression match ignoring case with multibyte support
mb_get_info -- Get internal settings of mbstring
mb_http_input -- Detect HTTP input character encoding
mb_http_output -- Set/Get HTTP output character encoding
mb_internal_encoding -- Set/Get internal character encoding
mb_language -- Set/Get current language
mb_output_handler -- Callback function converts character encoding in output buffer
mb_parse_str -- Parse GET/POST/COOKIE data and set global variable
mb_preferred_mime_name -- Get MIME charset string
mb_regex_encoding -- Returns current encoding for multibyte regex as string
mb_regex_set_options -- Set/Get the default options for mbregex functions
mb_send_mail -- Send encoded mail.
mb_split -- Split multibyte string using regular expression
mb_strcut -- Get part of string
mb_strimwidth -- Get truncated string with specified width
mb_strlen -- Get string length
mb_strpos -- Find position of first occurrence of string in a string
mb_strrpos -- Find position of last occurrence of a string in a string
mb_strtolower -- Make a string lowercase
mb_strtoupper -- Make a string uppercase
mb_strwidth -- Return width of string
mb_substitute_character -- Set/Get substitution character
mb_substr_count -- Count the number of substring occurrences
mb_substr -- Get part of string

Zurück | Zum Anfang | Nach vorne
tanh | Nach oben | mb_convert_case


mb_convert_case

(PHP 4 >= 4.3.0, PHP 5)

mb_convert_case -- Perform case folding on a string

Description

string mb_convert_case ( string str, int mode [, string encoding])

mb_convert_case() returns case folded version of string converted in the way specified by mode.

mode can be one of MB_CASE_UPPER, MB_CASE_LOWER or MB_CASE_TITLE.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

The return value is str with the appropriate case folding applied.

By contrast to the standard case folding functions such as strtolower() and strtoupper(), case folding is performed on the basis of the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Beispiel 1. mb_convert_case() example

<?php
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Prints Mary Had A Little Lamb And She Loved It So
?>

See also mb_strtolower(),
mb_strtoupper(),
strtolower() and
strtoupper().

Zurück | Zum Anfang | Nach vorne
Multibyte String Functions | Nach oben | mb_convert_encoding


mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_encoding -- Convert character encoding

Description

string mb_convert_encoding ( string str, string to-encoding [, mixed from-encoding])

mb_convert_encoding() converts character encoding of string str from from-encoding to to-encoding.

str : String to be converted.

from-encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.

Beispiel 1. mb_convert_encoding() example

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

See also mb_detect_order().

Zurück | Zum Anfang | Nach vorne
mb_convert_case | Nach oben | mb_convert_kana


mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_kana -- Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

Description

string mb_convert_kana ( string str, string option [, mixed encoding])

mb_convert_kana() performs "han-kaku" - "zen-kaku" conversion for string str. It returns converted string. This function is only useful for Japanese.

option is conversion option. Default value is "KV".

encoding is character encoding. If it is omitted, internal character encoding is used.

Specify with combination of following options. Default value is KV.

Tabelle 1. Applicable Conversion Options

Option | Meaning
r | Convert "zen-kaku" alphabets to "han-kaku"
R | Convert "han-kaku" alphabets to "zen-kaku"
n | Convert "zen-kaku" numbers to "han-kaku"
N | Convert "han-kaku" numbers to "zen-kaku"
a | Convert "zen-kaku" alphabets and numbers to "han-kaku"
A | Convert "han-kaku" alphabets and numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E)
s | Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020)
S | Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000)
k | Convert "zen-kaku kata-kana" to "han-kaku kata-kana"
K | Convert "han-kaku kata-kana" to "zen-kaku kata-kana"
h | Convert "zen-kaku hira-gana" to "han-kaku kata-kana"
H | Convert "han-kaku kata-kana" to "zen-kaku hira-gana"
c | Convert "zen-kaku kata-kana" to "zen-kaku hira-gana"
C | Convert "zen-kaku hira-gana" to "zen-kaku kata-kana"
V | Collapse voiced sound notation and convert them into a character. Use with "K","H"

Beispiel 1. mb_convert_kana() example

<?php
/* Convert all "kana" to "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Convert "han-kaku" "kata-kana" to "zen-kaku" "kata-kana"
   and "zen-kaku" alpha-numeric to "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>

Zurück | Zum Anfang | Nach vorne
mb_convert_encoding | Nach oben | mb_convert_variables


mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_variables -- Convert character code in variable(s)

Description

string mb_convert_variables ( string to-encoding, mixed from-encoding, mixed vars)

mb_convert_variables() convert character encoding of variables vars in encoding from-encoding to encoding to-encoding. It returns character encoding before conversion for success, FALSE for failure.

mb_convert_variables() join strings in Array or Object to detect encoding, since encoding detection tends to fail for short strings. Therefore, it is impossible to mix encoding in single array or object.

It from-encoding is specified by array or comma separated string, it tries to detect encoding from from-coding. When encoding is omitted, detect_order is used.

vars (3rd and larger) is reference to variable to be converted. String, Array and Object are accepted. mb_convert_variables() assumes all parameters have the same encoding.

Beispiel 1. mb_convert_variables() example

<?php
/* Convert variables $post1, $post2 to internal encoding */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>

Zurück | Zum Anfang | Nach vorne
mb_convert_kana | Nach oben | mb_decode_mimeheader


mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_mimeheader -- Decode string in MIME header field

Description

string mb_decode_mimeheader ( string str)

mb_decode_mimeheader() decodes encoded-word string str in MIME header.

It returns decoded string in internal character encoding.

See also mb_encode_mimeheader().

Zurück | Zum Anfang | Nach vorne
mb_convert_variables | Nach oben | mb_decode_numericentity


mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_numericentity -- Decode HTML numeric string reference to character

Description

string mb_decode_numericentity ( string str, array convmap [, string encoding])

Convert numeric string reference of string str in specified block to character. It returns converted string.

convmap is array to specifies code area to convert.

encoding is character encoding. If it is omitted, internal character encoding is used.

Beispiel 1. convmap example

$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN,
// then convert value to numeric string reference.

See also mb_encode_numericentity().

Zurück | Zum Anfang | Nach vorne
mb_decode_mimeheader | Nach oben | mb_detect_encoding


mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_encoding -- Detect character encoding

Description

string mb_detect_encoding ( string str [, mixed encoding-list])

mb_detect_encoding() detects character encoding in string str. It returns detected character encoding.

encoding-list is list of character encoding. Encoding order may be specified by array or comma separated list string.

If encoding_list is omitted, detect_order is used.

Beispiel 1. mb_detect_encoding() example

<?php
/* Detect character encoding with current detect_order */
echo mb_detect_encoding($str);

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
echo mb_detect_encoding($str, "auto");

/* Specify encoding_list character encoding by comma separated list */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Use array to specify encoding_list  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

See also mb_detect_order().

Zurück | Zum Anfang | Nach vorne
mb_decode_numericentity | Nach oben | mb_detect_order


mb_detect_order

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_order -- Set/Get character encoding detection order

Description

array mb_detect_order ( [mixed encoding-list])

mb_detect_order() sets automatic character encoding detection order to encoding-list. It returns TRUE for success, FALSE for failure.

encoding-list is array or comma separated list of character encoding. ("auto" is expanded to "ASCII, JIS, UTF-8, EUC-JP, SJIS")

If encoding-list is omitted, it returns current character encoding detection order as array.

This setting affects mb_detect_encoding() and mb_send_mail().

Anmerkung: mbstring currently implements following encoding detection filters. If there is an invalid byte sequence for following encoding, encoding detection will fail.

Anmerkung: UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

For ISO-8859-*, mbstring always detects as ISO-8859-*.

For UTF-16, UTF-32, UCS2 and UCS4, encoding detection will fail always.

Beispiel 1. Useless detect order example

; Always detect as ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Always detect as UTF-8, since ASCII/UTF-7 values are
; valid for UTF-8
detect_order = UTF-8, ASCII, UTF-7

Beispiel 2. mb_detect_order() examples

<?php
/* Set detection order by enumerated list */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Set detection order by array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Display current detection order */
echo implode(", ", mb_detect_order());
?>

See also mb_internal_encoding(),
mb_http_input(),
mb_http_output() and
mb_send_mail().

Zurück | Zum Anfang | Nach vorne
mb_detect_encoding | Nach oben | mb_encode_mimeheader


mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_mimeheader -- Encode string for MIME header

Description

string mb_encode_mimeheader ( string str [, string charset [, string transfer-encoding [, string linefeed]]])

mb_encode_mimeheader() encodes a given string str by the MIME header encoding scheme. Returns a converted version of the string represented in ASCII.

charset specifies the name of the character set in which str is represented in. The default value is determined by the current NLS setting (mbstring.language).

transfer-encoding specifies the scheme of MIME encoding. It should be either "B" (Base64) or "Q" (Quoted-Printable). Falls back to "B" if not given.

linefeed specifies the EOL (end-of-line) marker with which mb_encode_mime_header() performs line-folding (a RFC term, the act of breaking a line longer than a certain length into multiple lines. The length is currently hard-coded to 74 characters). Falls back to "\r\n" (CRLF) if not given.

Beispiel 1. mb_encode_mimeheader() example

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

Anmerkung: This function isn't designed to break lines at higher-level contextual break points (word boundaries, etc.). This behaviour may clutter up the original string with unexpected spaces.

See also mb_decode_mimeheader().

Zurück | Zum Anfang | Nach vorne
mb_detect_order | Nach oben | mb_encode_numericentity


mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_numericentity -- Encode character to HTML numeric string reference

Description

string mb_encode_numericentity ( string str, array convmap [, string encoding])

mb_encode_numericentity() converts specified character codes in string str from HTML numeric character reference to character code. It returns converted string.

convmap is array specifies code area to convert.

encoding is character encoding.

Beispiel 1. convmap example

$convmap = array (
int start_code1, int end_code1, int offset1, int mask1,
int start_code2, int end_code2, int offset2, int mask2,
........
int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN, then
// it converts value to numeric string reference.

Beispiel 2. mb_encode_numericentity() example

<?php
/* Convert Left side of ISO-8859-1 to HTML numeric character reference */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Convert user defined SJIS-win code in block 95-104 to numeric
   string reference */
$convmap = array(
       0xe000, 0xe03e, 0x1040, 0xffff,
       0xe03f, 0xe0bb, 0x1041, 0xffff,
       0xe0bc, 0xe0fa, 0x1084, 0xffff,
       0xe0fb, 0xe177, 0x1085, 0xffff,
       0xe178, 0xe1b6, 0x10c8, 0xffff,
       0xe1b7, 0xe233, 0x10c9, 0xffff,
       0xe234, 0xe272, 0x110c, 0xffff,
       0xe273, 0xe2ef, 0x110d, 0xffff,
       0xe2f0, 0xe32e, 0x1150, 0xffff,
       0xe32f, 0xe3ab, 0x1151, 0xffff );
$str = mb_encode_numericentity($str, $convmap, "sjis-win");
?>

See also mb_decode_numericentity().

Zurück | Zum Anfang | Nach vorne
mb_encode_mimeheader | Nach oben | mb_ereg_match


mb_ereg_match

(PHP 4 >= 4.2.0)

mb_ereg_match -- Regular expression match for multibyte string

Description

bool mb_ereg_match ( string pattern, string string [, string option])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_match() returns TRUE if string matches regular expression pattern, FALSE if not.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Zurück | Zum Anfang | Nach vorne
mb_encode_numericentity | Nach oben | mb_ereg_replace


mb_ereg_replace

(PHP 4 >= 4.2.0)

mb_ereg_replace -- Replace regular expression with multibyte support

Description

string mb_ereg_replace ( string pattern, string replacement, string string [, array option])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern.

Matching condition can be set by option parameter. If i is specified for this parameter, the case will be ignored. If x is specified, white space will be ignored. If m is specified, match will be executed in multiline mode and line break will be included in '.'. If p is specified, match will be executed in POSIX mode, line break will be considered as normal character. If e is specified, replacement string will be evaluated as PHP expression.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_eregi_replace().

Zurück | Zum Anfang | Nach vorne
mb_ereg_match | Nach oben | mb_ereg_search_getpos


mb_ereg_search_getpos

(PHP 4 >= 4.2.0)

mb_ereg_search_getpos -- Returns start point for next regular expression match

Description

array mb_ereg_search_getpos ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_search_getpos() returns
the point to start regular expression match for
mb_ereg_search(),
mb_ereg_search_pos(),
mb_ereg_search_regs(). The position is
represented by bytes from the head of string.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_setpos().

Zurück | Zum Anfang | Nach vorne
mb_ereg_replace | Nach oben | mb_ereg_search_getregs


mb_ereg_search_getregs

(PHP 4 >= 4.2.0)

mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match

Description

array mb_ereg_search_getregs ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_search_getregs() returns an array including the sub-string of matched part by last mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). If there are some maches, the first element will have the matched sub-string, the second element will have the first part grouped with brackets, the third element will have the second part grouped with brackets, and so on. It returns FALSE on error;

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Zurück | Zum Anfang | Nach vorne
mb_ereg_search_getpos | Nach oben | mb_ereg_search_init


mb_ereg_search_init

(PHP 4 >= 4.2.0)

mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match

Description

array mb_ereg_search_init ( string string [, string pattern [, string option]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_search_init() sets string and pattern for multibyte regular expression. These values are used for mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). It returns TRUE for success, FALSE for error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_regs().

Zurück | Zum Anfang | Nach vorne
mb_ereg_search_getregs | Nach oben | mb_ereg_search_pos


mb_ereg_search_pos

(PHP 4 >= 4.2.0)

mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string

Description

array mb_ereg_search_pos ( [string pattern [, string option]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_search_pos() returns an array including position of matched part for multibyte regular expression. The first element of the array will be the beginning of matched part, the second element will be length (bytes) of matched part. It returns FALSE on error.

The string for match is specified by mb_ereg_search_init(). It it is not specified, the previous one will be used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Zurück | Zum Anfang | Nach vorne
mb_ereg_search_init | Nach oben | mb_ereg_search_regs


mb_ereg_search_regs

(PHP 4 >= 4.2.0)

mb_ereg_search_regs -- Returns the matched part of multibyte regular expression

Description

array mb_ereg_search_regs ( [string pattern [, string option]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_search_regs() executes the multibyte regular expression match, and if there are some matched part, it returns an array including substring of matched part as first element, the first grouped part with brackets as second element, the second grouped part as third element, and so on. It returns FALSE on error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Zurück | Zum Anfang | Nach vorne
mb_ereg_search_pos | Nach oben | mb_ereg_search_setpos


mb_ereg_search_setpos

(PHP 4 >= 4.2.0)

mb_ereg_search_setpos -- Set start point of next regular expression match

Description

array mb_ereg_search_setpos ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_search_setpos() sets the starting point of match for mb_ereg_search().

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Zurück | Zum Anfang | Nach vorne
mb_ereg_search_regs | Nach oben | mb_ereg_search


mb_ereg_search

(PHP 4 >= 4.2.0)

mb_ereg_search -- Multibyte regular expression match for predefined multibyte string

Description

bool mb_ereg_search ( [string pattern [, string option]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_search() returns TRUE if the multibyte string matches with the regular expression, FALSE for otherwise. The string for matching is set by mb_ereg_search_init(). If pattern is not specified, the previous one is used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Zurück | Zum Anfang | Nach vorne
mb_ereg_search_setpos | Nach oben | mb_ereg


mb_ereg

(PHP 4 >= 4.2.0)

mb_ereg -- Regular expression match with multibyte support

Description

int mb_ereg ( string pattern, string string [, array regs])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg() executes the regular expression match with multibyte support, and returns 1 if matches are found. If the optional third parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. If no matches found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_eregi()

Zurück | Zum Anfang | Nach vorne
mb_ereg_search | Nach oben | mb_eregi_replace


mb_eregi_replace

(PHP 4 >= 4.2.0)

mb_eregi_replace -- Replace regular expression with multibyte support ignoring case

Description

string mb_eregi_replace ( string pattern, string replace, string string)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern. The case will be ignored.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_replace().

Zurück | Zum Anfang | Nach vorne
mb_ereg | Nach oben | mb_eregi


mb_eregi

(PHP 4 >= 4.2.0)

mb_eregi -- Regular expression match ignoring case with multibyte support

Description

int mb_eregi ( string pattern, string string [, array regs])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_eregi() executes the regular expression match with multibyte support, and returns 1 if matches are found. This function ignore case. If the optional third parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. If no matches found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Zurück | Zum Anfang | Nach vorne
mb_eregi_replace | Nach oben | mb_get_info


mb_get_info

(PHP 4 >= 4.2.0, PHP 5)

mb_get_info -- Get internal settings of mbstring

Description

string mb_get_info ( [string type])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_get_info() returns internal setting parameter of mbstring.

If type isn't specified or is specified to "all", an array having the elements "internal_encoding", "http_output", "http_input", "func_overload" will be returned.

If type is specified for "http_output", "http_input", "internal_encoding", "func_overload", the specified setting parameter will be returned.

See also mb_internal_encoding(), mb_http_output().

Zurück | Zum Anfang | Nach vorne
mb_eregi | Nach oben | mb_http_input


mb_http_input

(PHP 4 >= 4.0.6, PHP 5)

mb_http_input -- Detect HTTP input character encoding

Description

string mb_http_input ( [string type])

mb_http_input() returns result of HTTP input character encoding detection.

type: Input string specifies input type. "G" for GET, "P" for POST, "C" for COOKIE. If type is omitted, it returns last input type processed.

Return Value: Character encoding name. If mb_http_input() does not process specified HTTP input, it returns FALSE.

See also mb_internal_encoding(),
mb_http_output(),
mb_detect_order().

Zurück | Zum Anfang | Nach vorne
mb_get_info | Nach oben | mb_http_output


mb_http_output

(PHP 4 >= 4.0.6, PHP 5)

mb_http_output -- Set/Get HTTP output character encoding

Description

string mb_http_output ( [string encoding])

If encoding is set, mb_http_output() sets HTTP output character encoding to encoding. Output after this function is converted to encoding. mb_http_output() returns TRUE for success and FALSE for failure.

If encoding is omitted, mb_http_output() returns current HTTP output character encoding.

See also mb_internal_encoding(),
mb_http_input(),
mb_detect_order().

Zurück | Zum Anfang | Nach vorne
mb_http_input | Nach oben | mb_internal_encoding


mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encoding -- Set/Get internal character encoding

Description

mixed mb_internal_encoding ( [string encoding])

mb_internal_encoding() sets internal character encoding to encoding If parameter is omitted, it returns current internal encoding.

encoding is used for HTTP input character encoding conversion, HTTP output character encoding conversion and default character encoding for string functions defined by mbstring module.

encoding: Character encoding name

Return Value: If encoding is set,mb_internal_encoding() returns TRUE for success, otherwise returns FALSE. If encoding is omitted, it returns current character encoding name.

Beispiel 1. mb_internal_encoding() example

<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();
?>

See also mb_http_input(),
mb_http_output() and
mb_detect_order().

Zurück | Zum Anfang | Nach vorne
mb_http_output | Nach oben | mb_language


mb_language

(PHP 4 >= 4.0.6, PHP 5)

mb_language -- Set/Get current language

Description

string mb_language ( [string language])

mb_language() sets language. If language is omitted, it returns current language as string.

language setting is used for encoding e-mail messages. Valid languages are "Japanese", "ja","English","en" and "uni" (UTF-8). mb_send_mail() uses this setting to encode e-mail.

Language and its setting is ISO-2022-JP/Base64 for Japanese, UTF-8/Base64 for uni, ISO-8859-1/quoted printable for English.

Return Value: If language is set and language is valid, it returns TRUE. Otherwise, it returns FALSE. When language is omitted, it returns language name as string. If no language is set previously, it returns FALSE.

See also mb_send_mail().

Zurück | Zum Anfang | Nach vorne
mb_internal_encoding | Nach oben | mb_output_handler


mb_output_handler

(PHP 4 >= 4.0.6, PHP 5)

mb_output_handler -- Callback function converts character encoding in output buffer

Description

string mb_output_handler ( string contents, int status)

mb_output_handler() is
ob_start() callback
function. mb_output_handler() converts
characters in output buffer from internal character encoding to
HTTP output character encoding.

4.1.0 or later version, this handler adds charset HTTP header when following conditions are met:

  • Does not set Content-Type by header()

  • Default MIME type begins with text/

  • http_output setting is other than pass

contents : Output buffer contents

status : Output buffer status

Return Value: String converted

Beispiel 1. mb_output_handler() example

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Anmerkung: If you want to output some binary data such as image from PHP script with PHP 4.3.0 or later, Content-Type: header must be send using header() before any binary data was send to client (e.g. header("Content-Type: image/png")). If Content-Type: header was send, output character encoding conversion will not be performed.

Note that if 'Content-Type: text/*' was send using header(), the sending data is regarded as text, encoding conversion will be performed using character encoding settings.

If you want to output some binary data such as image from PHP script with PHP 4.2.x or earlier, you must set output encoding to "pass" using mb_http_output().

See also ob_start().

Zurück | Zum Anfang | Nach vorne
mb_language | Nach oben | mb_parse_str


mb_parse_str

(PHP 4 >= 4.0.6, PHP 5)

mb_parse_str -- Parse GET/POST/COOKIE data and set global variable

Description

bool mb_parse_str ( string encoded_string [, array result])

mb_parse_str() parses GET/POST/COOKIE data and sets global variables. Since PHP does not provide raw POST/COOKIE data, it can only used for GET data for now. It preses URL encoded data, detects encoding, converts coding to internal encoding and set values to result array or global variables.

encoded_string: URL encoded data.

result: Array contains decoded and character encoding converted values.

Return Value: It returns TRUE for success or FALSE for failure.

See also mb_detect_order(), mb_internal_encoding().

Zurück | Zum Anfang | Nach vorne
mb_output_handler | Nach oben | mb_preferred_mime_name


mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5)

mb_preferred_mime_name -- Get MIME charset string

Description

string mb_preferred_mime_name ( string encoding)

mb_preferred_mime_name() returns MIME charset string for character encoding encoding. It returns charset string.

Beispiel 1. mb_preferred_mime_string() example

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>

Zurück | Zum Anfang | Nach vorne
mb_parse_str | Nach oben | mb_regex_encoding


mb_regex_encoding

(PHP 4 >= 4.2.0)

mb_regex_encoding -- Returns current encoding for multibyte regex as string

Description

string mb_regex_encoding ( [string encoding])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_regex_encoding() returns the character encoding used by multibyte regex functions.

If the optional parameter encoding is specified, it is set to the character encoding for multibyte regex. The default value is the internal character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_internal_encoding(), mb_ereg()

Zurück | Zum Anfang | Nach vorne
mb_preferred_mime_name | Nach oben | mb_regex_set_options


mb_regex_set_options

(PHP 4 >= 4.3.0)

mb_regex_set_options -- Set/Get the default options for mbregex functions

Description

string mb_regex_set_options ( [string options])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_regex_set_options() sets the default options described by options for multibyte regex functions.

Returns the previous options. If options is omitted, it returns the string that describes the current options.

Anmerkung: This function is supported in PHP 4.3.0 or higher.

See also
mb_split(),
mb_ereg() and
mb_eregi()

Zurück | Zum Anfang | Nach vorne
mb_regex_encoding | Nach oben | mb_send_mail


mb_send_mail

(PHP 4 >= 4.0.6, PHP 5)

mb_send_mail -- Send encoded mail.

Description

bool mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]])

mb_send_mail() sends email. Headers and
message are converted and encoded according to
mb_language() setting.
mb_send_mail() is wrapper
function of mail(). See
mail() for details.

to is mail addresses send to. Multiple recipients can be specified by putting a comma between each address in to. This parameter is not automatically encoded.

subject is subject of mail.

message is mail message.

additional_headers is inserted at the end of the header. This is typically used to add extra headers. Multiple extra headers are separated with a newline ("\n").

additional_parameter is a MTA command line parameter. It is useful when setting the correct Return-Path header when using sendmail.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also mail(),
mb_encode_mimeheader(), and
mb_language().

Zurück | Zum Anfang | Nach vorne
mb_regex_set_options | Nach oben | mb_split


mb_split

(PHP 4 >= 4.2.0)

mb_split -- Split multibyte string using regular expression

Description

array mb_split ( string pattern, string string [, int limit])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

mb_split() split multibyte string using regular expression pattern and returns the result as an array.

If optional parameter limit is specified, it will be split in limit elements as maximum.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Anmerkung: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Zurück | Zum Anfang | Nach vorne
mb_send_mail | Nach oben | mb_strcut


mb_strcut

(PHP 4 >= 4.0.6, PHP 5)

mb_strcut -- Get part of string

Description

string mb_strcut ( string str, int start [, int length [, string encoding]])

mb_strcut() returns the portion of str specified by the start and length parameters.

mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.

It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.

encoding is character encoding. If it is not set, internal character encoding is used.

See also mb_substr(), mb_internal_encoding().

Zurück | Zum Anfang | Nach vorne
mb_split | Nach oben | mb_strimwidth


mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidth -- Get truncated string with specified width

Description

string mb_strimwidth ( string str, int start, int width, string trimmarker [, string encoding])

mb_strimwidth() truncates string str to specified width. It returns truncated string.

If trimmarker is set, trimmarker is appended to return value.

start is start position offset. Number of characters from the beginning of string. (First character is 0)

trimmarker is string that is added to the end of string when string is truncated.

encoding is character encoding. If it is omitted, internal encoding is used.

Beispiel 1. mb_strimwidth() example

<?php
$str = mb_strimwidth($str, 0, 40, "..>");
?>

See also mb_strwidth() and mb_internal_encoding().

Zurück | Zum Anfang | Nach vorne
mb_strcut | Nach oben | mb_strlen


mb_strlen

(PHP 4 >= 4.0.6, PHP 5)

mb_strlen -- Get string length

Description

string mb_strlen ( string str [, string encoding])

mb_strlen() returns number of characters in string str having character encoding encoding. A multi-byte character is counted as 1.

encoding is character encoding for str. If encoding is omitted, internal character encoding is used.

See also mb_internal_encoding(), strlen().

Zurück | Zum Anfang | Nach vorne
mb_strimwidth | Nach oben | mb_strpos


mb_strpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strpos -- Find position of first occurrence of string in a string

Description

int mb_strpos ( string haystack, string needle [, int offset [, string encoding]])

mb_strpos() returns the numeric position of the first occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strpos() performs multi-byte safe strpos() operation based on number of characters. needle position is counted from the beginning of the haystack. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal character encoding is used. mb_strrpos() accepts string for needle where strrpos() accepts only character.

offset is search offset. If it is not specified, 0 is used.

encoding is character encoding name. If it is omitted, internal character encoding is used.

See also mb_strpos(),
mb_internal_encoding(),
strpos()

Zurück | Zum Anfang | Nach vorne
mb_strlen | Nach oben | mb_strrpos


mb_strrpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strrpos -- Find position of last occurrence of a string in a string

Description

int mb_strrpos ( string haystack, string needle [, string encoding])

mb_strrpos() returns the numeric position of the last occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strrpos() performs multi-byte safe strrpos() operation based on number of characters. needle position is counted from the beginning of haystack. First character's position is 0. Second character position is 1.

If encoding is omitted, internal encoding is assumed. mb_strrpos() accepts string for needle where strrpos() accepts only character.

encoding is character encoding. If it is not specified, internal character encoding is used.

See also mb_strpos(),
mb_internal_encoding(),
strrpos().

Zurück | Zum Anfang | Nach vorne
mb_strpos | Nach oben | mb_strtolower


mb_strtolower

(PHP 4 >= 4.3.0, PHP 5)

mb_strtolower -- Make a string lowercase

Description

string mb_strtolower ( string str [, string encoding])

mb_strtolower() returns str with all alphabetic characters converted to lowercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

By contrast to strtolower(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

Beispiel 1. mb_strtolower() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtolower($str);
echo $str; // Prints mary had a little lamb and she loved it so
?>

See also strtolower(),
mb_strtoupper() and
mb_convert_case().

Zurück | Zum Anfang | Nach vorne
mb_strrpos | Nach oben | mb_strtoupper


mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5)

mb_strtoupper -- Make a string uppercase

Description

string mb_strtoupper ( string str [, string encoding])

mb_strtoupper() returns str with all alphabetic characters converted to uppercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

By contrast to strtoupper(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as a-umlaut (ä).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Beispiel 1. mb_strtoupper() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtoupper($str);
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

See also strtoupper(),
mb_strtolower() and
mb_convert_case().

Zurück | Zum Anfang | Nach vorne
mb_strtolower | Nach oben | mb_strwidth


mb_strwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strwidth -- Return width of string

Description

int mb_strwidth ( string str [, string encoding])

mb_strwidth() returns width of string str.

Multi-byte character usually twice of width compare to single byte character.

Tabelle 1. Characters width

Chars | Width
U+0000 - U+0019 | 0
U+0020 - U+1FFF | 1
U+2000 - U+FF60 | 2
U+FF61 - U+FF9F | 1
U+FFA0 - | 2

encoding is character encoding. If it is omitted, internal encoding is used.

See also: mb_strimwidth(), mb_internal_encoding().

Zurück | Zum Anfang | Nach vorne
mb_strtoupper | Nach oben | mb_substitute_character


mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5)

mb_substitute_character -- Set/Get substitution character

Description

mixed mb_substitute_character ( [mixed substrchar])

mb_substitute_character() specifies substitution character when input character encoding is invalid or character code is not exist in output character encoding. Invalid characters may be substituted NULL(no output), string or integer value (Unicode character code value).

This setting affects mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
and mb_send_mail().

substchar : Specify Unicode value as integer or specify as string as follows

  • "none" : no output

  • "long" : Output character code value (Example: U+3000,JIS+7E7E)

Return Value: If substchar is set, it returns TRUE for success, otherwise returns FALSE. If substchar is not set, it returns Unicode value or "none"/"long".

Beispiel 1. mb_substitute_character() example

<?php
/* Set with Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Set hex format */
mb_substitute_character("long");

/* Display current setting */
echo mb_substitute_character();
?>

Zurück | Zum Anfang | Nach vorne
mb_strwidth | Nach oben | mb_substr_count


mb_substr_count

(PHP 4 >= 4.3.0, PHP 5)

mb_substr_count -- Count the number of substring occurrences

Description

int mb_substr_count ( string haystack, string needle [, string encoding])

mb_substr_count() returns the number of times the needle substring occurs in the haystack string.

encoding specifies the encoding for needle and haystack. If omitted, internal character encoding is used.

Beispiel 1. mb_substr_count() example

<?php
echo mb_substr_count("This is a test", "is"); // prints out 2
?>

See also substr_count(), mb_strpos(), mb_substr().

Zurück | Zum Anfang | Nach vorne
mb_substitute_character | Nach oben | mb_substr


mb_substr

(PHP 4 >= 4.0.6, PHP 5)

mb_substr -- Get part of string

Description

string mb_substr ( string str, int start [, int length [, string encoding]])

mb_substr() returns the portion of str specified by the start and length parameters.

mb_substr() performs multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal encoding is assumed.

encoding is character encoding. If it is omitted, internal character encoding is used.

See also mb_strcut(), mb_internal_encoding().

Zurück | Zum Anfang | Nach vorne
mb_substr_count | Nach oben | MCAL Funktionen


MCAL Funktionen

PHP Handbuch
Zurück Nach vorne

LIV. MCAL Funktionen

Einführung

MCAL bedeutet Modular Calendar Access Library.

Libmcal ist eine C Bibliothek für den Zugriff auf Kalender. Sie ist sehr modular programmiert, mit austauschbaren Treibern. MCAL ist das Kalendergegenstück zum IMAP Modul für Mailboxen.

Mit Hilfe der mcal-Unterstützung kann ein Kalender-Stream, ähnlich wie ein Mailbox-Stream mit der IMAP-Unterstützung, geöffnet werden. Kalender können lokale Dateispeicher, entfernte ICAP-Server oder andere Formate,von der mcal-Bibliothek unterstützt werden, sein.

Kalendereinträge können aufgerufen, abgefragt und gespeichert werden. Desweiteren werden Kalendertermine (Alarm) und wiederkehrende Termine unterstützt.

Mit libmcal kann auf zentrale Kalenderserver zugegriffen und diese benutzt werden, was die Programmierung einer bestimmten Datenbank oder einer Datei unnötig macht.

Um diese Funktionen benutzen zu können, muss PHP mit der Option --with-mcal kompiliert werden. Dies setzt eine installierte mcal-Bibliothek voraus. Holen Sie sich die aktuelle Version unter http://mcal.chek.com/ und kompilieren und installieren Sie sie.

Anmerkung: PHP hatte eine ICAP Extension, aber sowohl die Originalbibliothek, als auch die PHP Extension werden nicht mehr unterstützt. Es wird statt dessen emphohlen, MCAL zu verwenden.

Anforderungen

Diese Extension benötigt die MCAL Bibliothek. Downloaden Sie die aktuelle Version unter http://mcal.chek.com/, kompilieren und installieren Sie sie.

Installation

Nachdem Sie die MCAL Bibliothek installiert haben, müssen Sie PHP mit der Option --with-mcal kompilieren, um die MCAL Funktionen nutzen zu können.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MCAL_SUNDAY (integer)

MCAL_MONDAY (integer)

MCAL_TUESDAY (integer)

MCAL_WEDNESDAY (integer)

MCAL_THURSDAY (integer)

MCAL_FRIDAY (integer)

MCAL_SATURDAY (integer)

MCAL_JANUARY (integer)

MCAL_FEBRUARY (integer)

MCAL_MARCH (integer)

MCAL_APRIL (integer)

MCAL_MAY (integer)

MCAL_JUNE (integer)

MCAL_JULY (integer)

MCAL_AUGUST (integer)

MCAL_SEPTEMBER (integer)

MCAL_OCTOBER (integer)

MCAL_NOVEMBER (integer)

MCAL_DECEMBER (integer)

MCAL_RECUR_NONE (integer)

MCAL_RECUR_DAILY (integer)

MCAL_RECUR_WEEKLY (integer)

MCAL_RECUR_MONTHLY_MDAY (integer)

MCAL_RECUR_MONTHLY_WDAY (integer)

MCAL_RECUR_YEARLY (integer)

MCAL_M_SUNDAY (integer)

MCAL_M_MONDAY (integer)

MCAL_M_TUESDAY (integer)

MCAL_M_WEDNESDAY (integer)

MCAL_M_THURSDAY (integer)

MCAL_M_FRIDAY (integer)

MCAL_M_SATURDAY (integer)

MCAL_M_WEEKDAYS (integer)

MCAL_M_WEEKEND (integer)

MCAL_M_ALLDAYS (integer)

Inhaltsverzeichnis
mcal_append_event -- Store a new event into an MCAL calendar
mcal_close -- Schließen eines MCAL-Streams
mcal_create_calendar -- Create a new MCAL calendar
mcal_date_compare -- Compares two dates
mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date
mcal_day_of_week -- Returns the day of the week of the given date
mcal_day_of_year -- Returns the day of the year of the given date
mcal_days_in_month -- Returns the number of days in the given month
mcal_delete_calendar -- Delete an MCAL calendar
mcal_delete_event -- Delete an event from an MCAL calendar
mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure
mcal_event_init -- Initializes a streams global event structure
mcal_event_set_alarm -- Sets the alarm of the streams global event structure
mcal_event_set_category -- Sets the category of the streams global event structure
mcal_event_set_class -- Sets the class of the streams global event structure
mcal_event_set_description -- Sets the description of the streams global event structure
mcal_event_set_end -- Sets the end date and time of the streams global event structure
mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure
mcal_event_set_start -- Sets the start date and time of the streams global event structure
mcal_event_set_title -- Sets the title of the streams global event structure
mcal_expunge -- Deletes all events marked for being expunged.
mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure
mcal_fetch_event -- Holt ein Ereignis aus einem Kalender-Stream.
mcal_is_leap_year -- Returns if the given year is a leap year or not
mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime
mcal_list_events -- Zeigt eine Liste der Einträge zwischen zwei Zeitpunkten an
mcal_next_recurrence -- Returns the next recurrence of the event
mcal_open -- Stellt eine MCAL-Verbindung her
mcal_popen -- Opens up a persistent MCAL connection
mcal_rename_calendar -- Rename an MCAL calendar
mcal_reopen -- Reopens an MCAL connection
mcal_snooze -- Turn off an alarm for an event
mcal_store_event -- Modify an existing event in an MCAL calendar
mcal_time_valid -- Returns TRUE if the given year, month, day is a valid time
mcal_week_of_year -- Returns the week number of the given date

Zurück | Zum Anfang | Nach vorne
mb_substr | Nach oben | mcal_append_event


mcal_append_event

(PHP 4 )

mcal_append_event -- Store a new event into an MCAL calendar

Description

int mcal_append_event ( int mcal_stream)

mcal_append_event() Stores the global event into an MCAL calendar for the given stream.

Returns the uid of the newly inserted event.

Zurück | Zum Anfang | Nach vorne
MCAL Funktionen | Nach oben | mcal_close


mcal_close

(PHP 3>= 3.0.13, PHP 4 )

mcal_close -- Schließen eines MCAL-Streams

Beschreibung

int mcal_close ( int mcal_stream, int flags)

Schließt einen offenen mcal-Stream.

Zurück | Zum Anfang | Nach vorne
mcal_append_event | Nach oben | mcal_create_calendar


mcal_create_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_create_calendar -- Create a new MCAL calendar

Description

bool mcal_create_calendar ( int stream, string calendar)

Creates a new calendar named calendar.

Zurück | Zum Anfang | Nach vorne
mcal_close | Nach oben | mcal_date_compare


mcal_date_compare

(PHP 3>= 3.0.13, PHP 4 )

mcal_date_compare -- Compares two dates

Description

int mcal_date_compare ( int a_year, int a_month, int a_day, int b_year, int b_month, int b_day)

mcal_date_compare() Compares the two given dates, returns <0, 0, >0 if a<b, a==b, a>b respectively

Zurück | Zum Anfang | Nach vorne
mcal_create_calendar | Nach oben | mcal_date_valid


mcal_date_valid

(PHP 3>= 3.0.13, PHP 4 )

mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date

Description

int mcal_date_valid ( int year, int month, int day)

mcal_date_valid() Returns TRUE if the given year, month and day is a valid date, FALSE if not.

Zurück | Zum Anfang | Nach vorne
mcal_date_compare | Nach oben | mcal_day_of_week


mcal_day_of_week

(PHP 3>= 3.0.13, PHP 4 )

mcal_day_of_week -- Returns the day of the week of the given date

Description

int mcal_ ( int year, int month, int day)

mcal_day_of_week() returns the day of the week of the given date

Zurück | Zum Anfang | Nach vorne
mcal_date_valid | Nach oben | mcal_day_of_year


mcal_day_of_year

(PHP 3>= 3.0.13, PHP 4 )

mcal_day_of_year -- Returns the day of the year of the given date

Description

int mcal_ ( int year, int month, int day)

mcal_day_of_year() returns the day of the year of the given date

Zurück | Zum Anfang | Nach vorne
mcal_day_of_week | Nach oben | mcal_days_in_month


mcal_days_in_month

(PHP 3>= 3.0.13, PHP 4 )

mcal_days_in_month -- Returns the number of days in the given month

Description

int mcal_days_in_month ( int month, int leap year)

mcal_days_in_month() Returns the number of days in the given month, taking into account if the given year is a leap year or not.

Zurück | Zum Anfang | Nach vorne
mcal_day_of_year | Nach oben | mcal_delete_calendar


mcal_delete_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_delete_calendar -- Delete an MCAL calendar

Description

string mcal_delete_calendar ( int stream, string calendar)

Deletes the calendar named calendar.

Zurück | Zum Anfang | Nach vorne
mcal_days_in_month | Nach oben | mcal_delete_event


mcal_delete_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_delete_event -- Delete an event from an MCAL calendar

Description

int mcal_delete_event ( int uid)

mcal_delete_event() deletes the calendar event specified by the uid.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_delete_calendar | Nach oben | mcal_event_add_attribute


mcal_event_add_attribute

(PHP 3>= 3.0.15, PHP 4 )

mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure

Description

void mcal_event_add_attribute ( int stream, string attribute, string value)

mcal_event_add_attribute() adds an attribute to the stream's global event structure with the value given by "value".

Zurück | Zum Anfang | Nach vorne
mcal_delete_event | Nach oben | mcal_event_init


mcal_event_init

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_init -- Initializes a streams global event structure

Description

int mcal_event_init ( int stream)

mcal_event_init() initializes a streams global event structure. this effectively sets all elements of the structure to 0, or the default settings.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_event_add_attribute | Nach oben | mcal_event_set_alarm


mcal_event_set_alarm

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_alarm -- Sets the alarm of the streams global event structure

Description

int mcal_event_set_alarm ( int stream, int alarm)

mcal_event_set_alarm() sets the streams global event structure's alarm to the given minutes before the event.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_event_init | Nach oben | mcal_event_set_category


mcal_event_set_category

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_category -- Sets the category of the streams global event structure

Description

int mcal_event_set_category ( int stream, string category)

mcal_event_set_category() sets the streams global event structure's category to the given string.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_alarm | Nach oben | mcal_event_set_class


mcal_event_set_class

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_class -- Sets the class of the streams global event structure

Description

int mcal_event_set_class ( int stream, int class)

mcal_event_set_class() sets the streams global event structure's class to the given value. The class is either 1 for public, or 0 for private.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_category | Nach oben | mcal_event_set_description


mcal_event_set_description

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_description -- Sets the description of the streams global event structure

Description

int mcal_event_set_description ( int stream, string description)

mcal_event_set_description() sets the streams global event structure's description to the given string.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_class | Nach oben | mcal_event_set_end


mcal_event_set_end

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_end -- Sets the end date and time of the streams global event structure

Description

int mcal_event_set_end ( int stream, int year, int month [, int day [, int hour [, int min [, int sec]]]])

mcal_event_set_end() sets the streams global event structure's end date and time to the given values.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_description | Nach oben | mcal_event_set_recur_daily


mcal_event_set_recur_daily

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_daily ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_daily() sets the streams global event structure's recurrence to the given value to be reoccuring on a daily basis, ending at the given date.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_end | Nach oben | mcal_event_set_recur_monthly_mday


mcal_event_set_recur_monthly_mday

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_monthly_mday ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_monthly_mday() sets the streams global event structure's recurrence to the given value to be reoccuring on a monthly by month day basis, ending at the given date.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_recur_daily | Nach oben | mcal_event_set_recur_monthly_wday


mcal_event_set_recur_monthly_wday

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_monthly_wday ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_monthly_wday() sets the streams global event structure's recurrence to the given value to be reoccuring on a monthly by week basis, ending at the given date.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_recur_monthly_mday | Nach oben | mcal_event_set_recur_none


mcal_event_set_recur_none

(PHP 3>= 3.0.15, PHP 4 )

mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_none ( int stream)

mcal_event_set_recur_none() sets the streams global event structure to not recur (event->recur_type is set to MCAL_RECUR_NONE).

Zurück | Zum Anfang | Nach vorne
mcal_event_set_recur_monthly_wday | Nach oben | mcal_event_set_recur_weekly


mcal_event_set_recur_weekly

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_weekly ( int stream, int year, int month, int day, int interval, int weekdays)

mcal_event_set_recur_weekly() sets the streams global event structure's recurrence to the given value to be reoccuring on a weekly basis, ending at the given date.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_recur_none | Nach oben | mcal_event_set_recur_yearly


mcal_event_set_recur_yearly

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_yearly ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_yearly() sets the streams global event structure's recurrence to the given value to be reoccuring on a yearly basis,ending at the given date .

Zurück | Zum Anfang | Nach vorne
mcal_event_set_recur_weekly | Nach oben | mcal_event_set_start


mcal_event_set_start

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_start -- Sets the start date and time of the streams global event structure

Description

int mcal_event_set_start ( int stream, int year, int month [, int day [, int hour [, int min [, int sec]]]])

mcal_event_set_start() sets the streams global event structure's start date and time to the given values.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_recur_yearly | Nach oben | mcal_event_set_title


mcal_event_set_title

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_title -- Sets the title of the streams global event structure

Description

int mcal_event_set_title ( int stream, string title)

mcal_event_set_title() sets the streams global event structure's title to the given string.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_start | Nach oben | mcal_expunge


mcal_expunge

(no version information, might be only in CVS)

mcal_expunge -- Deletes all events marked for being expunged.

Description

int mcal_expunge ( int stream)

mcal_expunge() deletes all events which have been previously marked for deletion.

Zurück | Zum Anfang | Nach vorne
mcal_event_set_title | Nach oben | mcal_fetch_current_stream_event


mcal_fetch_current_stream_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure

Description

int mcal_fetch_current_stream_event ( int stream)

mcal_event_fetch_current_stream_event() returns the current stream's event structure as an object containing:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

  • int recur_type - recurrence type

  • int recur_interval - recurrence interval

  • datetime recur_enddate - recurrence end date

  • int recur_data - recurrence data

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

  • int alarm - minutes before event to send an alarm

Zurück | Zum Anfang | Nach vorne
mcal_expunge | Nach oben | mcal_fetch_event


mcal_fetch_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_fetch_event -- Holt ein Ereignis aus einem Kalender-Stream.

Beschreibung

object mcal_fetch_event ( int mcal_stream, int event_id [, int options])

mcal_fetch_event() holt ein Ereignis aus dem Kalender-Stream, der in id angegeben wurde.

Zeigt ein Ereignis-Objekt an,welches aus folgendem besteht:

  • int id - ID des Ereignisses.

  • int public - TRUE wenn das Ereignis öffentlich ist, FALSE wenn es privat ist.

  • string category - Kategorie des Ereignisses.

  • string title - Titel des Ereignisses.

  • string description - Beschreibung des Ereignisses.

  • int alarm - Anzahl der Minuten, bevor das Ereignis einen Alarm bzw. eine Erinnerung sendet.

  • object start - Objekt, welches einen Eintrag zu Datum und Uhrzeit enthält.

  • object end - Objekt, welches einen Eintrag zu Datum und Uhrzeit enthält.

  • int recur_type - Typ des erneuten Auftretens

  • int recur_interval - Zeitabstand bis zum erneuten Auftretens

  • datetime recur_enddate - Enddatum des erneuten Auftretens

  • int recur_data - Daten des erneuten Auftretens

Alle Zeitpunkteinträge bestehen aus einem Objekt, welches folgendes enthält:

  • int year - Jahr

  • int month - Monat

  • int mday - Tag des Monats

  • int hour - Stunde

  • int min - Minuten

  • int sec - Sekunden

  • int alarm - Minuten bis zum Zeitpunkt, wenn ein Eintrag einen Alarm sendet

Zurück | Zum Anfang | Nach vorne
mcal_fetch_current_stream_event | Nach oben | mcal_is_leap_year


mcal_is_leap_year

(PHP 3>= 3.0.13, PHP 4 )

mcal_is_leap_year -- Returns if the given year is a leap year or not

Description

int mcal_is_leap_year ( int year)

mcal_is_leap_year() returns 1 if the given year is a leap year, 1 if not.

Zurück | Zum Anfang | Nach vorne
mcal_fetch_event | Nach oben | mcal_list_alarms


mcal_list_alarms

(PHP 3>= 3.0.13, PHP 4 )

mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime

Description

array mcal_list_events ( int mcal_stream [, int begin_year [, int begin_month [, int begin_day [, int end_year [, int end_month [, int end_day]]]]]])

Returns an array of event ID's that has an alarm going off between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() function takes in an optional beginning date and an end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Zurück | Zum Anfang | Nach vorne
mcal_is_leap_year | Nach oben | mcal_list_events


mcal_list_events

(PHP 3>= 3.0.13, PHP 4 )

mcal_list_events -- Zeigt eine Liste der Einträge zwischen zwei Zeitpunkten an

Beschreibung

array mcal_list_events ( int mcal_stream [, int begin_year [, int begin_month [, int begin_day [, int end_year [, int end_month [, int end_day]]]]]])

Returns an array of event ID's that are between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() function takes in an optional beginning date and an end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Zurück | Zum Anfang | Nach vorne
mcal_list_alarms | Nach oben | mcal_next_recurrence


mcal_next_recurrence

(PHP 3>= 3.0.13, PHP 4 )

mcal_next_recurrence -- Returns the next recurrence of the event

Description

int mcal_next_recurrence ( int stream, int weekstart, array next)

mcal_next_recurrence() returns an object filled with the next date the event occurs, on or after the supplied date. Returns empty date field if event does not occur or something is invalid. Uses weekstart to determine what day is considered the beginning of the week.

Zurück | Zum Anfang | Nach vorne
mcal_list_events | Nach oben | mcal_open


mcal_open

(PHP 3>= 3.0.13, PHP 4 )

mcal_open -- Stellt eine MCAL-Verbindung her

Beschreibung

int mcal_open ( string calendar, string username, string password, string options)

Bringt bei Erfolg einen MCAL-Stream und FALSE bei einem Fehler.

mcal_open() öffnet eine MCAL-Verbidnung zu dem angegebenen calendar Speicher. Wenn der optionale Parameter options benutzt wird, wird options auch an die Mailbox weitergegeben. Die interne Ereignisstruktur der Streams wird auch bei der Verbindung initialisiert.

Zurück | Zum Anfang | Nach vorne
mcal_next_recurrence | Nach oben | mcal_popen


mcal_popen

(PHP 3>= 3.0.13, PHP 4 )

mcal_popen -- Opens up a persistent MCAL connection

Description

int mcal_popen ( string calendar, string username, string password [, int options])

Returns an MCAL stream on success, FALSE on error.

mcal_popen() opens up an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also. The streams internal event structure is also initialized upon connection.

Zurück | Zum Anfang | Nach vorne
mcal_open | Nach oben | mcal_rename_calendar


mcal_rename_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_rename_calendar -- Rename an MCAL calendar

Description

string mcal_rename_calendar ( int stream, string old_name, string new_name)

Renames the calendar old_name to new_name.

Zurück | Zum Anfang | Nach vorne
mcal_popen | Nach oben | mcal_reopen


mcal_reopen

(PHP 3>= 3.0.13, PHP 4 )

mcal_reopen -- Reopens an MCAL connection

Description

int mcal_reopen ( string calendar [, int options])

Reopens an MCAL stream to a new calendar.

mcal_reopen() reopens an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also.

Zurück | Zum Anfang | Nach vorne
mcal_rename_calendar | Nach oben | mcal_snooze


mcal_snooze

(PHP 3>= 3.0.13, PHP 4 )

mcal_snooze -- Turn off an alarm for an event

Description

int mcal_snooze ( int uid)

mcal_snooze() turns off an alarm for a calendar event specified by the uid.

Returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcal_reopen | Nach oben | mcal_store_event


mcal_store_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_store_event -- Modify an existing event in an MCAL calendar

Description

int mcal_store_event ( int mcal_stream)

mcal_store_event() Stores the modifications to the current global event for the given stream.

Returns TRUE on success and FALSE on error.

Zurück | Zum Anfang | Nach vorne
mcal_snooze | Nach oben | mcal_time_valid


mcal_time_valid

(PHP 3>= 3.0.13, PHP 4 )

mcal_time_valid -- Returns TRUE if the given year, month, day is a valid time

Description

int mcal_time_valid ( int hour, int minutes, int seconds)

mcal_time_valid() Returns TRUE if the given hour, minutes and seconds is a valid time, FALSE if not.

Zurück | Zum Anfang | Nach vorne
mcal_store_event | Nach oben | mcal_week_of_year


mcal_week_of_year

(PHP 4 )

mcal_week_of_year -- Returns the week number of the given date

Description

int mcal_week_of_year ( int day, int month, int year)

mcal_week_of_year() returns the week number of the given date.

Zurück | Zum Anfang | Nach vorne
mcal_time_valid | Nach oben | Mcrypt Encryption Functions


Mcrypt Encryption Functions

PHP Handbuch
Zurück Nach vorne

LV. Mcrypt Encryption Functions

Einführung

This is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes. Additionally, it supports RC6 and IDEA which are considered "non-free".

Anforderungen

These functions work using mcrypt. To use it, download libmcrypt-x.x.tar.gz from http://mcrypt.sourceforge.net/ and follow the included installation instructions. Windows users will find all the needed compiled mcrypt binaries at http://ftp.emini.dk/pub/php/win32/mcrypt/.

If you linked against libmcrypt 2.4.x or higher, the following additional block algorithms are supported: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT and the following stream ciphers: ENIGMA (crypt), PANAMA, RC4 and WAKE. With libmcrypt 2.4.x or higher another cipher mode is also available; nOFB.

Installation

You need to compile PHP with the --with-mcrypt[=DIR] parameter to enable this extension. DIR is the mcrypt install directory. Make sure you compile libmcrypt with the option --disable-posix-threads.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Mcrypt configuration options

Name | Default | Changeable
mcrypt.algorithms_dir | NULL | PHP_INI_ALL
mcrypt.modes_dir | NULL | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Mcrypt can operate in four block cipher modes (CBC, OFB, CFB, and ECB). If linked against libmcrypt-2.4.x or higher the functions can also operate in the block cipher mode nOFB and in STREAM mode. Below you find a list with all supported encryption modes together with the constants that are defines for the encryption mode. For a more complete reference and discussion see Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) is suitable for random data, such as encrypting other keys. Since data there is short and random, the disadvantages of ECB have a favorable negative effect.

  • MCRYPT_MODE_CBC (cipher block chaining) is especially suitable for encrypting files where the security is increased over ECB significantly.

  • MCRYPT_MODE_CFB (cipher feedback) is the best mode for encrypting byte streams where single bytes must be encrypted.

  • MCRYPT_MODE_OFB (output feedback, in 8bit) is comparable to CFB, but can be used in applications where error propagation cannot be tolerated. It's insecure (because it operates in 8bit mode) so it is not recommended to use it.

  • MCRYPT_MODE_NOFB (output feedback, in nbit) is comparable to OFB, but more secure because it operates on the block size of the algorithm.

  • MCRYPT_MODE_STREAM is an extra mode to include some stream algorithms like WAKE or RC4.

Some other mode and random device constants:

MCRYPT_ENCRYPT (integer)

MCRYPT_DECRYPT (integer)

MCRYPT_DEV_RANDOM (integer)

MCRYPT_DEV_URANDOM (integer)

MCRYPT_RAND (integer)

Mcrypt ciphers

Here is a list of ciphers which are currently supported by the mcrypt extension. For a complete list of supported ciphers, see the defines at the end of mcrypt.h. The general rule with the mcrypt-2.2.x API is that you can access the cipher from PHP with MCRYPT_ciphername. With the libmcrypt-2.4.x and libmcrypt-2.5.x API these constants also work, but it is possible to specify the name of the cipher as a string with a call to mcrypt_module_open().

  • MCRYPT_3DES

  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x only)

  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x only)

  • MCRYPT_BLOWFISH

  • MCRYPT_CAST_128

  • MCRYPT_CAST_256

  • MCRYPT_CRYPT

  • MCRYPT_DES

  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x only)

  • MCRYPT_ENIGMA (libmcrypt > 2.4.x only, alias for MCRYPT_CRYPT)

  • MCRYPT_GOST

  • MCRYPT_IDEA (non-free)

  • MCRYPT_LOKI97 (libmcrypt > 2.4.x only)

  • MCRYPT_MARS (libmcrypt > 2.4.x only, non-free)

  • MCRYPT_PANAMA (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x only)

  • MCRYPT_RC2

  • MCRYPT_RC4 (libmcrypt 2.2.x only)

  • MCRYPT_RC6 (libmcrypt > 2.4.x only)

  • MCRYPT_RC6_128 (libmcrypt 2.2.x only)

  • MCRYPT_RC6_192 (libmcrypt 2.2.x only)

  • MCRYPT_RC6_256 (libmcrypt 2.2.x only)

  • MCRYPT_SAFER64

  • MCRYPT_SAFER128

  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x only)

  • MCRYPT_SERPENT(libmcrypt > 2.4.x only)

  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x only)

  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x only)

  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x only)

  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x only)

  • MCRYPT_TEAN (libmcrypt 2.2.x only)

  • MCRYPT_THREEWAY

  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x only)

  • MCRYPT_TWOFISH (for older mcrypt 2.x versions, or mcrypt > 2.4.x )

  • MCRYPT_TWOFISH128 (TWOFISHxxx are available in newer 2.x versions, but not in the 2.4.x versions)

  • MCRYPT_TWOFISH192

  • MCRYPT_TWOFISH256

  • MCRYPT_WAKE (libmcrypt > 2.4.x only)

  • MCRYPT_XTEA (libmcrypt > 2.4.x only)

You must (in CFB and OFB mode) or can (in CBC mode) supply an initialization vector (IV) to the respective cipher function. The IV must be unique and must be the same when decrypting/encrypting. With data which is stored encrypted, you can take the output of a function of the index under which the data is stored (e.g. the MD5 key of the filename). Alternatively, you can transmit the IV together with the encrypted data (see chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic).

Beispiele

Mcrypt can be used to encrypt and decrypt using the above mentioned ciphers. If you linked against libmcrypt-2.2.x, the four important mcrypt commands (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb(), and mcrypt_ofb()) can operate in both modes which are named MCRYPT_ENCRYPT and MCRYPT_DECRYPT, respectively.

Beispiel 1. Encrypt an input value with TripleDES under 2.2.x in ECB mode

<?php
$key = "this is a secret key";
$input = "Let us meet at 9 o'clock at the secret place.";

$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
?>
This example will give you the encrypted data as a string in $encrypted_data.

If you linked against libmcrypt 2.4.x or 2.5.x, these functions are still available, but it is recommended that you use the advanced functions.

Beispiel 2. Encrypt an input value with TripleDES under 2.4.x and higher in ECB mode

<?php
    $key = "this is a secret key";
    $input = "Let us meet at 9 o'clock at the secret place.";

    $td = mcrypt_module_open('tripledes', '', 'ecb', '');
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
?>
This example will give you the encrypted data as a string in $encrypted_data. For a full example see mcrypt_module_open().

Inhaltsverzeichnis
mcrypt_cbc -- Encrypt/decrypt data in CBC mode
mcrypt_cfb -- Encrypt/decrypt data in CFB mode
mcrypt_create_iv -- Create an initialization vector (IV) from a random source
mcrypt_decrypt -- Decrypts crypttext with given parameters
mcrypt_ecb -- Deprecated: Encrypt/decrypt data in ECB mode
mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm
mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm
mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm
mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_enc_get_modes_name -- Returns the name of the opened mode
mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks
mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm
mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks
mcrypt_enc_self_test -- This function runs a self test on the opened module
mcrypt_encrypt -- Encrypts plaintext with given parameters
mcrypt_generic_deinit -- This function deinitializes an encryption module
mcrypt_generic_end -- This function terminates encryption
mcrypt_generic_init -- This function initializes all buffers needed for encryption
mcrypt_generic -- This function encrypts data
mcrypt_get_block_size -- Get the block size of the specified cipher
mcrypt_get_cipher_name -- Get the name of the specified cipher
mcrypt_get_iv_size -- Returns the size of the IV belonging to a specific cipher/mode combination
mcrypt_get_key_size -- Get the key size of the specified cipher
mcrypt_list_algorithms -- Get an array of all supported ciphers
mcrypt_list_modes -- Get an array of all supported modes
mcrypt_module_close -- Close the mcrypt module
mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm
mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_module_is_block_algorithm_mode -- returns if the specified module is a block algorithm or not
mcrypt_module_is_block_algorithm -- This function checks whether the specified algorithm is a block algorithm
mcrypt_module_is_block_mode -- Returns if the specified mode outputs blocks or not
mcrypt_module_open -- Opens the module of the algorithm and the mode to be used
mcrypt_module_self_test -- This function runs a self test on the specified module
mcrypt_ofb -- Encrypt/decrypt data in OFB mode
mdecrypt_generic -- Decrypt data

Zurück | Zum Anfang | Nach vorne
mcal_week_of_year | Nach oben | mcrypt_cbc


mcrypt_cbc

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_cbc -- Encrypt/decrypt data in CBC mode

Description

string mcrypt_cbc ( int cipher, string key, string data, int mode [, string iv])

string mcrypt_cbc ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Zurück | Zum Anfang | Nach vorne
Mcrypt Encryption Functions | Nach oben | mcrypt_cfb


mcrypt_cfb

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_cfb -- Encrypt/decrypt data in CFB mode

Description

string mcrypt_cfb ( int cipher, string key, string data, int mode, string iv)

string mcrypt_cfb ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Zurück | Zum Anfang | Nach vorne
mcrypt_cbc | Nach oben | mcrypt_create_iv


mcrypt_create_iv

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_create_iv -- Create an initialization vector (IV) from a random source

Description

string mcrypt_create_iv ( int size, int source)

mcrypt_create_iv() is used to create an IV.

mcrypt_create_iv() takes two arguments, size determines the size of the IV, source specifies the source of the IV.

The source can be MCRYPT_RAND (system random number generator), MCRYPT_DEV_RANDOM (read data from /dev/random) and MCRYPT_DEV_URANDOM (read data from /dev/urandom). If you use MCRYPT_RAND, make sure to call srand() before to initialize the random number generator. MCRYPT_RAND is the only one supported on Windows because Windows (of course) doesn't have /dev/random or /dev/urandom.

Beispiel 1. mcrypt_create_iv() example

<?php
    $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
?>

The IV is only meant to give an alternative seed to the encryption routines. This IV does not need to be secret at all, though it can be desirable. You even can send it along with your ciphertext without loosing security.

More information can be found at http://www.ciphersbyritter.com/GLOSSARY.HTM#IV, http://fn2.freenet.edmonton.ab.ca/~jsavard/crypto/co0409.htm and in chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic.

Zurück | Zum Anfang | Nach vorne
mcrypt_cfb | Nach oben | mcrypt_decrypt


mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_decrypt -- Decrypts crypttext with given parameters

Description

string mcrypt_decrypt ( string cipher, string key, string data, string mode [, string iv])

mcrypt_decrypt() decrypts the data and returns the unencrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data is encrypted. If it's smaller that the required keysize, it is padded with '\0'.

Data is the data that will be decrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Zurück | Zum Anfang | Nach vorne
mcrypt_create_iv | Nach oben | mcrypt_ecb


mcrypt_ecb

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_ecb -- Deprecated: Encrypt/decrypt data in ECB mode

Description

string mcrypt_ecb ( int cipher, string key, string data, int mode)

string mcrypt_ecb ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function is deprecated and should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Zurück | Zum Anfang | Nach vorne
mcrypt_decrypt | Nach oben | mcrypt_enc_get_algorithms_name


mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm

Description

string mcrypt_enc_get_algorithms_name ( resource td)

This function returns the name of the algorithm.

Beispiel 1. mcrypt_enc_get_algorithms_name() example

<?php
    $td = mcrypt_module_open(MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_algorithms_name($td). "\n";

    $td = mcrypt_module_open('cast-256', '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_algorithms_name($td). "\n";
?>

Prints:
CAST-256
CAST-256

Zurück | Zum Anfang | Nach vorne
mcrypt_ecb | Nach oben | mcrypt_enc_get_block_size


mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm

Description

int mcrypt_enc_get_block_size ( resource td)

This function returns the block size of the algorithm specified by the encryption descriptor td in bytes.

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_get_algorithms_name | Nach oben | mcrypt_enc_get_iv_size


mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm

Description

int mcrypt_enc_get_iv_size ( resource td)

This function returns the size of the iv of the algorithm specified by the encryption descriptor in bytes. If it returns '0' then the IV is ignored in the algorithm. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_get_block_size | Nach oben | mcrypt_enc_get_key_size


mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_enc_get_key_size ( resource td)

This function returns the maximum supported key size of the algorithm specified by the encryption descriptor td in bytes.

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_get_iv_size | Nach oben | mcrypt_enc_get_modes_name


mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_modes_name -- Returns the name of the opened mode

Description

string mcrypt_enc_get_modes_name ( resource td)

This function returns the name of the mode.

Beispiel 1. mcrypt_enc_get_modes_name() example

<?php
    $td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_modes_name($td). "\n";

    $td = mcrypt_module_open ('cast-256', '', 'ecb', '');
    echo mcrypt_enc_get_modes_name($td). "\n";
?>

Prints:

CFB
ECB

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_get_key_size | Nach oben | mcrypt_enc_get_supported_key_sizes


mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_enc_get_supported_key_sizes ( resource td)

Returns an array with the key sizes supported by the algorithm specified by the encryption descriptor. If it returns an empty array then all key sizes between 1 and mcrypt_enc_get_key_size() are supported by the algorithm.

Beispiel 1. mcrypt_enc_get_supported_key_sizes() example

<?php
    $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
    var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

This will print:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_get_modes_name | Nach oben | mcrypt_enc_is_block_algorithm_mode


mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks

Description

bool mcrypt_enc_is_block_algorithm_mode ( resource td)

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb).

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_get_supported_key_sizes | Nach oben | mcrypt_enc_is_block_algorithm


mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm

Description

bool mcrypt_enc_is_block_algorithm ( resource td)

This function returns TRUE if the algorithm is a block algorithm, or FALSE if it is a stream algorithm.

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_is_block_algorithm_mode | Nach oben | mcrypt_enc_is_block_mode


mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks

Description

bool mcrypt_enc_is_block_mode ( resource td)

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream).

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_is_block_algorithm | Nach oben | mcrypt_enc_self_test


mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_self_test -- This function runs a self test on the opened module

Description

bool mcrypt_enc_self_test ( resource td)

This function runs the self test on the algorithm specified by the descriptor td. If the self test succeeds it returns FALSE. In case of an error, it returns TRUE.

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_is_block_mode | Nach oben | mcrypt_encrypt


mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_encrypt -- Encrypts plaintext with given parameters

Description

string mcrypt_encrypt ( string cipher, string key, string data, string mode [, string iv])

mcrypt_encrypt() encrypts the data and returns the encrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data will be encrypted. If it's smaller that the required keysize, it is padded with '\0'. It is better not to use ASCII strings for keys. It is recommended to use the mhash functions to create a key from a string.

Data is the data that will be encrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'. The returned crypttext can be larger that the size of the data that is given by data.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Beispiel 1. mcrypt_encrypt() Example

<?php
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = "This is a very secret key";
    $text = "Meet me at 11 o'clock behind the monument.";
    echo strlen($text) . "\n";

    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
    echo strlen($crypttext) . "\n";
?>

The above example will print out:
42
64

See also mcrypt_module_open() for a more advanced API and an example.

Zurück | Zum Anfang | Nach vorne
mcrypt_enc_self_test | Nach oben | mcrypt_generic_deinit


mcrypt_generic_deinit

(PHP 4 >= 4.1.1, PHP 5)

mcrypt_generic_deinit -- This function deinitializes an encryption module

Description

bool mcrypt_generic_deinit ( resource td)

This function terminates encryption specified by the encryption descriptor (td). It clears all buffers, but does not close the module. You need to call mcrypt_module_close() yourself. (But PHP does this for you at the end of the script.) Returns FALSE on error, or TRUE on success.

See for an example mcrypt_module_open() and the entry on mcrypt_generic_init().

Zurück | Zum Anfang | Nach vorne
mcrypt_encrypt | Nach oben | mcrypt_generic_end


mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_end -- This function terminates encryption

Description

bool mcrypt_generic_end ( resource td)

Warnung

This function is deprecated, use mcrypt_generic_deinit() instead. It can cause crashes when used with mcrypt_module_close() due to multiple buffer frees.

This function terminates encryption specified by the encryption descriptor (td). Actually it clears all buffers, and closes all the modules used. Returns FALSE on error, or TRUE on success.

Zurück | Zum Anfang | Nach vorne
mcrypt_generic_deinit | Nach oben | mcrypt_generic_init


mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_init -- This function initializes all buffers needed for encryption

Description

int mcrypt_generic_init ( resource td, string key, string iv)

The maximum length of the key should be the one obtained by calling mcrypt_enc_get_key_size() and every value smaller than this is legal. The IV should normally have the size of the algorithms block size, but you must obtain the size by calling mcrypt_enc_get_iv_size(). IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique (but not secret). The same IV must be used for encryption/decryption. If you do not want to use it you should set it to zeros, but this is not recommended.

The function returns a negative value on error, -3 when the key length was incorrect, -4 when there was a memory allocation problem and any other return value is an unknown error. If an error occurs a warning will be displayed accordingly.

You need to call this function before every call to mcrypt_generic() or mdecrypt_generic().

See for an example mcrypt_module_open().

Zurück | Zum Anfang | Nach vorne
mcrypt_generic_end | Nach oben | mcrypt_generic


mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic -- This function encrypts data

Description

string mcrypt_generic ( resource td, string data)

This function encrypts data. The data is padded with "\0" to make sure the length of the data is n * blocksize. This function returns the encrypted data. Note that the length of the returned string can in fact be longer then the input, due to the padding of the data.

If you want to store the encrypted data in a database make sure to store the entire string as returned by mcrypt_generic, or the string will not entirely decrypt properly. If your original string is 10 characters long and the block size is 8 (use mcrypt_enc_get_block_size() to determine the blocksize), you would need at least 16 characters in your database field. Note the string returned by mdecrypt_generic() will be 16 characters as well...use rtrim()($str, "\0") to remove the padding.

If you are for example storing the data in a MySQL database remember that varchar fields automatically have trailing spaces removed during insertion. As encrypted data can end in a space (ASCII 32), the data will be damaged by this removal. Store data in a tinyblob/tinytext (or larger) field instead.

The encryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Zurück | Zum Anfang | Nach vorne
mcrypt_generic_init | Nach oben | mcrypt_get_block_size


mcrypt_get_block_size

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_get_block_size -- Get the block size of the specified cipher

Description

int mcrypt_get_block_size ( int cipher)

int mcrypt_get_block_size ( string cipher, string module)

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_block_size() is used to get the size of a block of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_block_size() function as this uses the resource returned by mcrypt_module_open().

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x.

Beispiel 1. mcrypt_get_block_size() example

<?php
    echo mcrypt_get_block_size('tripledes', 'ecb');
?>

Prints:
8

See also: mcrypt_get_key_size(),
mcrypt_enc_get_block_size() and
mcrypt_encrypt().

Zurück | Zum Anfang | Nach vorne
mcrypt_generic | Nach oben | mcrypt_get_cipher_name


mcrypt_get_cipher_name

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_get_cipher_name -- Get the name of the specified cipher

Description

string mcrypt_get_cipher_name ( int cipher)

string mcrypt_get_cipher_name ( string cipher)

mcrypt_get_cipher_name() is used to get the name of the specified cipher.

mcrypt_get_cipher_name() takes the cipher number as an argument (libmcrypt 2.2.x) or takes the cipher name as an argument (libmcrypt 2.4.x or higher) and returns the name of the cipher or FALSE, if the cipher does not exist.

Beispiel 1. mcrypt_get_cipher_name() Example

<?php
   $cipher = MCRYPT_TripleDES;

   echo mcrypt_get_cipher_name($cipher);
?>

The above example will produce:
3DES

Zurück | Zum Anfang | Nach vorne
mcrypt_get_block_size | Nach oben | mcrypt_get_iv_size


mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_get_iv_size -- Returns the size of the IV belonging to a specific cipher/mode combination

Description

int mcrypt_get_iv_size ( string cipher, string mode)

mcrypt_get_iv_size() returns the size of the Initialisation Vector (IV) in bytes. On error the function returns FALSE. If the IV is ignored in the specified cipher/mode combination zero is returned.

cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

mode is one of the MCRYPT_MODE_modename constants or one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream". The IV is ignored in ECB mode as this mode does not require it. You will need to have the same IV (think: starting point) both at encryption and decryption stages, otherwise your encryption will fail.

It is more useful to use the mcrypt_enc_get_iv_size() function as this uses the resource returned by mcrypt_module_open().

Beispiel 1. mcrypt_get_iv_size() example

<?php
    echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

    echo mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

See also
mcrypt_get_block_size(),
mcrypt_enc_get_iv_size() and
mcrypt_create_iv().

Zurück | Zum Anfang | Nach vorne
mcrypt_get_cipher_name | Nach oben | mcrypt_get_key_size


mcrypt_get_key_size

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_get_key_size -- Get the key size of the specified cipher

Description

int mcrypt_get_key_size ( int cipher)

int mcrypt_get_key_size ( string cipher, string module)

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_key_size() is used to get the size of a key of the specified cipher (in combination with an encryption mode).

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x. It is more useful to use the mcrypt_enc_get_key_size() function as this uses the resource returned by mcrypt_module_open().

Beispiel 1. mcrypt_get_block_size() example

<?php
    echo mcrypt_get_key_size('tripledes', 'ecb');
?>

Prints:
24

See also: mcrypt_get_block_size(),
mcrypt_end_get_key_size() and
mcrypt_encrypt().

Zurück | Zum Anfang | Nach vorne
mcrypt_get_iv_size | Nach oben | mcrypt_list_algorithms


mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_algorithms -- Get an array of all supported ciphers

Description

array mcrypt_list_algorithms ( [string lib_dir])

mcrypt_list_algorithms() is used to get an array of all supported algorithms in the lib_dir parameter.

mcrypt_list_algorithms() takes an optional lib_dir parameter which specifies the directory where all algorithms are located. If not specifies, the value of the mcrypt.algorithms_dir php.ini directive is used.

Beispiel 1. mcrypt_list_algorithms() Example

<?php
    $algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

    foreach ($algorithms as $cipher) {
        echo "$cipher<br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the "/usr/local/lib/libmcrypt" directory.

Zurück | Zum Anfang | Nach vorne
mcrypt_get_key_size | Nach oben | mcrypt_list_modes


mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_modes -- Get an array of all supported modes

Description

array mcrypt_list_modes ( [string lib_dir])

mcrypt_list_modes() is used to get an array of all supported modes in the lib_dir.

mcrypt_list_modes() takes as optional parameter a directory which specifies the directory where all modes are located. If not specifies, the value of the mcrypt.modes_dir php.ini directive is used.

Beispiel 1. mcrypt_list_modes() Example

<?php
    $modes = mcrypt_list_modes();

    foreach ($modes as $mode) {
        echo "$mode <br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the default mode directory. If it is not set with the ini directive mcrypt.modes_dir, the default directory of mcrypt is used (which is /usr/local/lib/libmcrypt).

Zurück | Zum Anfang | Nach vorne
mcrypt_list_algorithms | Nach oben | mcrypt_module_close


mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_close -- Close the mcrypt module

Description

bool mcrypt_module_close ( resource td)

This function closes the specified encryption handle.

See mcrypt_module_open() for an example.

Zurück | Zum Anfang | Nach vorne
mcrypt_list_modes | Nach oben | mcrypt_module_get_algo_block_size


mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm

Description

int mcrypt_module_get_algo_block_size ( string algorithm [, string lib_dir])

This function returns the block size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Zurück | Zum Anfang | Nach vorne
mcrypt_module_close | Nach oben | mcrypt_module_get_algo_key_size


mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_module_get_algo_key_size ( string algorithm [, string lib_dir])

This function returns the maximum supported key size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Zurück | Zum Anfang | Nach vorne
mcrypt_module_get_algo_block_size | Nach oben | mcrypt_module_get_supported_key_sizes


mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_module_get_supported_key_sizes ( string algorithm [, string lib_dir])

Returns an array with the key sizes supported by the specified algorithm. If it returns an empty array then all key sizes between 1 and mcrypt_module_get_algo_key_size() are supported by the algorithm. The optional lib_dir parameter can contain the location where the mode module is on the system.

See also mcrypt_enc_get_supported_key_sizes() which is used on open encryption modules.

Zurück | Zum Anfang | Nach vorne
mcrypt_module_get_algo_key_size | Nach oben | mcrypt_module_is_block_algorithm_mode


mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm_mode -- returns if the specified module is a block algorithm or not

Description

bool mcrypt_module_is_block_algorithm_mode ( string mode [, string lib_dir])

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb). The optional lib_dir parameter can contain the location where the mode module is on the system.

Zurück | Zum Anfang | Nach vorne
mcrypt_module_get_supported_key_sizes | Nach oben | mcrypt_module_is_block_algorithm


mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm -- This function checks whether the specified algorithm is a block algorithm

Description

bool mcrypt_module_is_block_algorithm ( string algorithm [, string lib_dir])

This function returns TRUE if the specified algorithm is a block algorithm, or FALSE is it is a stream algorithm. The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Zurück | Zum Anfang | Nach vorne
mcrypt_module_is_block_algorithm_mode | Nach oben | mcrypt_module_is_block_mode


mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_mode -- Returns if the specified mode outputs blocks or not

Description

bool mcrypt_module_is_block_mode ( string mode [, string lib_dir])

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs just bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream). The optional lib_dir parameter can contain the location where the mode module is on the system.

Zurück | Zum Anfang | Nach vorne
mcrypt_module_is_block_algorithm | Nach oben | mcrypt_module_open


mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_open -- Opens the module of the algorithm and the mode to be used

Description

resource mcrypt_module_open ( string algorithm, string algorithm_directory, string mode, string mode_directory)

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close(). Normally it returns an encryption descriptor, or FALSE on error.

The algorithm_directory and mode_directory are used to locate the encryption modules. When you supply a directory name, it is used. When you set one of these to the empty string (""), the value set by the mcrypt.algorithms_dir or mcrypt.modes_dir ini-directive is used. When these are not set, the default directories that are used are the ones that were compiled in into libmcrypt (usually /usr/local/lib/libmcrypt).

Beispiel 1. mcrypt_module_open() examples

<?php
    $td = mcrypt_module_open(MCRYPT_DES, '',
        MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Beispiel 2. Using mcrypt_module_open() in encryption

<?php
    /* Open the cipher */
    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');

    /* Create the IV and determine the keysize length, used MCRYPT_RAND
     * on Windows instead */
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
    $ks = mcrypt_enc_get_key_size($td);

    /* Create key */
    $key = substr(md5('very secret key'), 0, $ks);

    /* Intialize encryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Encrypt data */
    $encrypted = mcrypt_generic($td, 'This is very important data');

    /* Terminate encryption handler */
    mcrypt_generic_deinit($td);

    /* Initialize encryption module for decryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Decrypt encrypted string */
    $decrypted = mdecrypt_generic($td, $encrypted);

    /* Terminate decryption handle and close module */
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    /* Show string */
    echo trim($decrypted) . "\n";
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

See also
mcrypt_module_close(),
mcrypt_generic(),
mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Zurück | Zum Anfang | Nach vorne
mcrypt_module_is_block_mode | Nach oben | mcrypt_module_self_test


mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_self_test -- This function runs a self test on the specified module

Description

bool mcrypt_module_self_test ( string algorithm [, string lib_dir])

This function runs the self test on the algorithm specified. The optional lib_dir parameter can contain the location of where the algorithm module is on the system.

The function returns TRUE if the self test succeeds, or FALSE when if fails.

Beispiel 1. mcrypt_module_self_test() example

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

The above example will output:

bool(true)
bool(false)

Zurück | Zum Anfang | Nach vorne
mcrypt_module_open | Nach oben | mcrypt_ofb


mcrypt_ofb

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_ofb -- Encrypt/decrypt data in OFB mode

Description

string mcrypt_ofb ( int cipher, string key, string data, int mode, string iv)

string mcrypt_ofb ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Zurück | Zum Anfang | Nach vorne
mcrypt_module_self_test | Nach oben | mdecrypt_generic


mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mdecrypt_generic -- Decrypt data

Description

string mdecrypt_generic ( resource td, string data)

This function decrypts data. Note that the length of the returned string can in fact be longer then the unencrypted string, due to the padding of the data.

Beispiel 1. mdecrypt_generic() example

<?php
    /* Data */
    $key = 'this is a very long key, even too long for the cipher';
    $plain_text = 'very important data';

    /* Open module, and create IV */
    $td = mcrypt_module_open('des', '', 'ecb', '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($td));
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    /* Initialize encryption handle */
    if (mcrypt_generic_init($td, $key, $iv) != -1) {

        /* Encrypt data */
        $c_t = mcrypt_generic($td, $plain_text);
        mcrypt_generic_deinit($td);

        /* Reinitialize buffers for decryption */
        mcrypt_generic_init($td, $key, $iv);
        $p_t = mdecrypt_generic($td, $c_t);

        /* Clean up */
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
    }

    if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ok\n";
    } else {
        echo "error\n";
    }
?>

The above example shows how to check if the data before the encryption is the same as the data after the decryption. It is very important to reinitialize the encryption buffer with mcrypt_generic_init() before you try to decrypt the data.

The decryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mcrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Zurück | Zum Anfang | Nach vorne
mcrypt_ofb | Nach oben | MCVE Payment Functions


MCVE Payment Functions

PHP Handbuch
Zurück Nach vorne

LVI. MCVE Payment Functions

Einführung

These functions interface the MCVE API (libmcve), allowing you to work directly with MCVE from your PHP scripts. MCVE is Main Street Softworks' solution to direct credit card processing for Linux / Unix ( http://www.mainstreetsoftworks.com/ ). It lets you directly address the credit card clearing houses via your *nix box, modem and/or internet connection (bypassing the need for an additional service such as Authorize.Net or Pay Flow Pro). Using the MCVE module for PHP, you can process credit cards directly through MCVE via your PHP scripts. The following references will outline the process.

Anmerkung: MCVE is the replacement for RedHat's CCVS. They contracted with RedHat in late 2001 to migrate all existing clientele to the MCVE platform.

Anmerkung: This extension is not available on Windows platforms.

Installation

To enable MCVE Support in PHP, first verify your LibMCVE installation directory. You will then need to configure PHP with the --with-mcve option. If you use this option without specifying the path to your MCVE installation, PHP will attempt to look in the default LibMCVE Install location (/usr/local). If MCVE is in a non-standard location, run configure with: --with-mcve=$mcve_path, where $mcve_path is the path to your MCVE installation. Please note that MCVE support requires that $mcve_path/lib and $mcve_path/include exist, and include mcve.h under the include directory and libmcve.so and/or libmcve.a under the lib directory.

Since MCVE has true server/client separation, there are no additional requirements for running PHP with MCVE support. To test your MCVE extension in PHP, you may connect to testbox.mcve.com on port 8333 for IP, or port 8444 for SSL using the MCVE PHP API. Use 'vitale' for your username, and 'test' for your password. Additional information about test facilities are available at http://www.mainstreetsoftworks.com/.

Siehe auch

Additional documentation about MCVE's PHP API can be found at http://www.mainstreetsoftworks.com/docs/phpapi.pdf. Main Street's documentation is complete and should be the primary reference for functions.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MC_TRANTYPE (integer)

MC_USERNAME (integer)

MC_PASSWORD (integer)

MC_ACCOUNT (integer)

MC_TRACKDATA (integer)

MC_EXPDATE (integer)

MC_STREET (integer)

MC_ZIP (integer)

MC_CV (integer)

MC_COMMENTS (integer)

MC_CLERKID (integer)

MC_STATIONID (integer)

MC_APPRCODE (integer)

MC_AMOUNT (integer)

MC_PTRANNUM (integer)

MC_TTID (integer)

MC_USER (integer)

MC_PWD (integer)

MC_ACCT (integer)

MC_BDATE (integer)

MC_EDATE (integer)

MC_BATCH (integer)

MC_FILE (integer)

MC_ADMIN (integer)

MC_AUDITTYPE (integer)

MC_CUSTOM (integer)

MC_EXAMOUNT (integer)

MC_EXCHARGES (integer)

MC_RATE (integer)

MC_RENTERNAME (integer)

MC_RETURNCITY (integer)

MC_RETURNSTATE (integer)

MC_RETURNLOCATION (integer)

MC_PRIORITY (integer)

MC_INQUIRY (integer)

MC_CARDTYPES (integer)

MC_SUB (integer)

MC_MARKER (integer)

MC_DEVICETYPE (integer)

MC_ERRORCODE (integer)

MC_NEWBATCH (integer)

MC_CURR (integer)

MC_DESCMERCH (integer)

MC_DESCLOC (integer)

MC_ORIGTYPE (integer)

MC_PIN (integer)

MC_VOIDORIGTYPE (integer)

MC_TIMESTAMP (integer)

MC_PRIO_HIGH (integer)

MC_PRIO_NORMAL (integer)

MC_PRIO_LOW (integer)

MC_USER_PROC (integer)

MC_USER_USER (integer)

MC_USER_PWD (integer)

MC_USER_INDCODE (integer)

MC_USER_MERCHID (integer)

MC_USER_BANKID (integer)

MC_USER_TERMID (integer)

MC_USER_CLIENTNUM (integer)

MC_USER_STOREID (integer)

MC_USER_AGENTID (integer)

MC_USER_CHAINID (integer)

MC_USER_ZIPCODE (integer)

MC_USER_TIMEZONE (integer)

MC_USER_MERCHCAT (integer)

MC_USER_MERNAME (integer)

MC_USER_MERCHLOC (integer)

MC_USER_STATECODE (integer)

MC_USER_PHONE (integer)

MC_USER_SUB (integer)

MC_USER_CARDTYPES (integer)

MC_USER_MODE (integer)

MC_USER_VNUMBER (integer)

MC_USER_ROUTINGID (integer)

MC_USER_PPROPERTY (integer)

MC_USER_PID (integer)

MC_USER_PIDPWD (integer)

MC_USER_SMID (integer)

MC_USER_SMIDPWD (integer)

MC_USER_USDDIV (integer)

MC_USER_AUDDIV (integer)

MC_USER_DKKDIV (integer)

MC_USER_GBPDIV (integer)

MC_USER_HKDDIV (integer)

MC_USER_JPYDIV (integer)

MC_USER_NZDDIV (integer)

MC_USER_NOKDIV (integer)

MC_USER_SGDDIV (integer)

MC_USER_ZARDIV (integer)

MC_USER_SEKDIV (integer)

MC_USER_CHFDIV (integer)

MC_USER_CADDIV (integer)

MC_USER_DIVNUM (integer)

MC_CARD_VISA (integer)

MC_CARD_MC (integer)

MC_CARD_AMEX (integer)

MC_CARD_DISC (integer)

MC_CARD_JCB (integer)

MC_CARD_CB (integer)

MC_CARD_DC (integer)

MC_CARD_GIFT (integer)

MC_CARD_OTHER (integer)

MC_CARD_ALL (integer)

MC_MODE_AUTH (integer)

MC_MODE_SETTLE (integer)

MC_MODE_BOTH (integer)

MC_MODE_ALL (integer)

MC_EXCHARGES_REST (integer)

MC_EXCHARGES_GIFT (integer)

MC_EXCHARGES_MINI (integer)

MC_EXCHARGES_TELE (integer)

MC_EXCHARGES_OTHER (integer)

MC_EXCHARGES_LAUND (integer)

MC_EXCHARGES_NONE (integer)

MC_EXCHARGES_GAS (integer)

MC_EXCHARGES_MILE (integer)

MC_EXCHARGES_LATE (integer)

MC_EXCHARGES_1WAY (integer)

MC_EXCHARGES_VIOL (integer)

MC_TRAN_SALE (integer)

MC_TRAN_REDEMPTION (integer)

MC_TRAN_PREAUTH (integer)

MC_TRAN_VOID (integer)

MC_TRAN_PREAUTHCOMPLETE (integer)

MC_TRAN_FORCE (integer)

MC_TRAN_OVERRIDE (integer)

MC_TRAN_RETURN (integer)

MC_TRAN_RELOAD (integer)

MC_TRAN_CREDIT (integer)

MC_TRAN_SETTLE (integer)

MC_TRAN_INCREMENTAL (integer)

MC_TRAN_REVERSAL (integer)

MC_TRAN_ACTIVATE (integer)

MC_TRAN_BALANCEINQ (integer)

MC_TRAN_CASHOUT (integer)

MC_TRAN_TOREVERSAL (integer)

MC_TRAN_SETTLERFR (integer)

MC_TRAN_ISSUE (integer)

MC_TRAN_TIP (integer)

MC_TRAN_MERCHRETURN (integer)

MC_TRAN_IVRREQ (integer)

MC_TRAN_IVRRESP (integer)

MC_TRAN_ADMIN (integer)

MC_TRAN_PING (integer)

MC_TRAN_CHKPWD (integer)

MC_TRAN_CHNGPWD (integer)

MC_TRAN_LISTSTATS (integer)

MC_TRAN_LISTUSERS (integer)

MC_TRAN_GETUSERINFO (integer)

MC_TRAN_ADDUSER (integer)

MC_TRAN_EDITUSER (integer)

MC_TRAN_DELUSER (integer)

MC_TRAN_ENABLEUSER (integer)

MC_TRAN_DISABLEUSER (integer)

MC_TRAN_IMPORT (integer)

MC_TRAN_EXPORT (integer)

MC_TRAN_ERRORLOG (integer)

MC_TRAN_CLEARERRORLOG (integer)

MC_TRAN_GETSUBACCTS (integer)

MC_ADMIN_GUT (integer)

MC_ADMIN_GL (integer)

MC_ADMIN_GFT (integer)

MC_ADMIN_BT (integer)

MC_ADMIN_UB (integer)

MC_ADMIN_QC (integer)

MC_ADMIN_RS (integer)

MC_ADMIN_CTH (integer)

MC_ADMIN_CFH (integer)

MC_ADMIN_FORCESETTLE (integer)

MC_ADMIN_SETBATCHNUM (integer)

MC_ADMIN_RENUMBERBATCH (integer)

MC_ADMIN_FIELDEDIT (integer)

MC_ADMIN_CLOSEBATCH (integer)

MCVE_UNUSED (integer)

MCVE_NEW (integer)

MCVE_PENDING (integer)

MCVE_DONE (integer)

MCVE_GOOD (integer)

MCVE_BAD (integer)

MCVE_STREET (integer)

MCVE_ZIP (integer)

MCVE_UNKNOWN (integer)

MCVE_ERROR (integer)

MCVE_FAIL (integer)

MCVE_SUCCESS (integer)

MCVE_AUTH (integer)

MCVE_DENY (integer)

MCVE_CALL (integer)

MCVE_DUPL (integer)

MCVE_PKUP (integer)

MCVE_RETRY (integer)

MCVE_SETUP (integer)

MCVE_TIMEOUT (integer)

MCVE_SALE (integer)

MCVE_PREAUTH (integer)

MCVE_FORCE (integer)

MCVE_OVERRIDE (integer)

MCVE_RETURN (integer)

MCVE_SETTLE (integer)

MCVE_PROC (integer)

MCVE_USER (integer)

MCVE_PWD (integer)

MCVE_INDCODE (integer)

MCVE_MERCHID (integer)

MCVE_BANKID (integer)

MCVE_TERMID (integer)

MCVE_CLIENTNUM (integer)

MCVE_STOREID (integer)

MCVE_AGENTID (integer)

MCVE_CHAINID (integer)

MCVE_ZIPCODE (integer)

MCVE_TIMEZONE (integer)

MCVE_MERCHCAT (integer)

MCVE_MERNAME (integer)

MCVE_MERCHLOC (integer)

MCVE_STATECODE (integer)

MCVE_SERVICEPHONE (integer)

Inhaltsverzeichnis
mcve_adduser -- Add an MCVE user using usersetup structure
mcve_adduserarg -- Add a value to user configuration structure
mcve_bt -- Get unsettled batch totals
mcve_checkstatus -- Check to see if a transaction has completed
mcve_chkpwd -- Verify Password
mcve_chngpwd -- Change the system administrator's password
mcve_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers
mcve_connect -- Establish the connection to MCVE
mcve_connectionerror -- Get a textual representation of why a connection failed
mcve_deleteresponse -- Delete specified transaction from MCVE_CONN structure
mcve_deletetrans -- Delete specified transaction from MCVE_CONN structure
mcve_deleteusersetup -- Deallocate data associated with usersetup structure
mcve_deluser -- Delete an MCVE user account
mcve_destroyconn -- Destroy the connection and MCVE_CONN structure
mcve_destroyengine -- Free memory associated with IP/SSL connectivity
mcve_disableuser -- Disable an active MCVE user account
mcve_edituser -- Edit MCVE user using usersetup structure
mcve_enableuser -- Enable an inactive MCVE user account
mcve_force -- Send a FORCE to MCVE. (typically, a phone-authorization)
mcve_getcell -- Get a specific cell from a comma delimited response by column name
mcve_getcellbynum -- Get a specific cell from a comma delimited response by column number
mcve_getcommadelimited -- Get the RAW comma delimited data returned from MCVE
mcve_getheader -- Get the name of the column in a comma-delimited response
mcve_getuserarg -- Grab a value from usersetup structure
mcve_getuserparam -- Get a user response parameter
mcve_gft -- Audit MCVE for Failed transactions
mcve_gl -- Audit MCVE for settled transactions
mcve_gut -- Audit MCVE for Unsettled Transactions
mcve_initconn -- Create and initialize an MCVE_CONN structure
mcve_initengine -- Ready the client for IP/SSL Communication
mcve_initusersetup -- Initialize structure to store user data
mcve_iscommadelimited -- Checks to see if response is comma delimited
mcve_liststats -- List statistics for all users on MCVE system
mcve_listusers -- List all users on MCVE system
mcve_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE
mcve_monitor -- Perform communication with MCVE (send/receive data) Non-blocking
mcve_numcolumns -- Number of columns returned in a comma delimited response
mcve_numrows -- Number of rows returned in a comma delimited response
mcve_override -- Send an OVERRIDE to MCVE
mcve_parsecommadelimited -- Parse the comma delimited response so mcve_getcell, etc will work
mcve_ping -- Send a ping request to MCVE
mcve_preauth -- Send a PREAUTHORIZATION to MCVE
mcve_preauthcompletion -- Complete a PREAUTHORIZATION... Ready it for settlement
mcve_qc -- Audit MCVE for a list of transactions in the outgoing queue
mcve_responseparam -- Get a custom response parameter
mcve_return -- Issue a RETURN or CREDIT to MCVE
mcve_returncode -- Grab the exact return code from the transaction
mcve_returnstatus -- Check to see if the transaction was successful
mcve_sale -- Send a SALE to MCVE
mcve_setblocking -- Set blocking/non-blocking mode for connection
mcve_setdropfile -- Set the connection method to Drop-File
mcve_setip -- Set the connection method to IP
mcve_setssl_files -- Set certificate key files and certificates if server requires client certificate verification
mcve_setssl -- Set the connection method to SSL
mcve_settimeout -- Set maximum transaction time (per trans)
mcve_settle -- Issue a settlement command to do a batch deposit
mcve_text_avs -- Get a textual representation of the return_avs
mcve_text_code -- Get a textual representation of the return_code
mcve_text_cv -- Get a textual representation of the return_cv
mcve_transactionauth -- Get the authorization number returned for the transaction (alpha-numeric)
mcve_transactionavs -- Get the Address Verification return status
mcve_transactionbatch -- Get the batch number associated with the transaction
mcve_transactioncv -- Get the CVC2/CVV2/CID return status
mcve_transactionid -- Get the unique system id for the transaction
mcve_transactionitem -- Get the ITEM number in the associated batch for this transaction
mcve_transactionssent -- Check to see if outgoing buffer is clear
mcve_transactiontext -- Get verbiage (text) return from MCVE or processing institution
mcve_transinqueue -- Number of transactions in client-queue
mcve_transnew -- Start a new transaction
mcve_transparam -- Add a parameter to a transaction
mcve_transsend -- Finalize and send the transaction
mcve_ub -- Get a list of all Unsettled batches
mcve_uwait -- Wait x microsecs
mcve_verifyconnection -- Set whether or not to PING upon connect to verify connection
mcve_verifysslcert -- Set whether or not to verify the server ssl certificate
mcve_void -- VOID a transaction in the settlement queue

Zurück | Zum Anfang | Nach vorne
mdecrypt_generic | Nach oben | mcve_adduser


mcve_adduser

(PHP 4 >= 4.2.0, PHP 5)

mcve_adduser -- Add an MCVE user using usersetup structure

Description

int mcve_adduser ( resource conn, string admin_password, int usersetup)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
MCVE Payment Functions | Nach oben | mcve_adduserarg


mcve_adduserarg

(PHP 4 >= 4.2.0, PHP 5)

mcve_adduserarg -- Add a value to user configuration structure

Description

int mcve_adduserarg ( resource usersetup, int argtype, string argval)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_adduser | Nach oben | mcve_bt


mcve_bt

(PHP 4 >= 4.2.0, PHP 5)

mcve_bt -- Get unsettled batch totals

Description

int mcve_bt ( resource conn, string username, string password)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_adduserarg | Nach oben | mcve_checkstatus


mcve_checkstatus

(PHP 4 >= 4.2.0, PHP 5)

mcve_checkstatus -- Check to see if a transaction has completed

Description

int mcve_checkstatus ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_bt | Nach oben | mcve_chkpwd


mcve_chkpwd

(PHP 4 >= 4.2.0, PHP 5)

mcve_chkpwd -- Verify Password

Description

int mcve_chkpwd ( resource conn, string username, string password)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_checkstatus | Nach oben | mcve_chngpwd


mcve_chngpwd

(PHP 4 >= 4.2.0, PHP 5)

mcve_chngpwd -- Change the system administrator's password

Description

int mcve_chngpwd ( resource conn, string admin_password, string new_password)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_chkpwd | Nach oben | mcve_completeauthorizations


mcve_completeauthorizations

(PHP 4 >= 4.2.0, PHP 5)

mcve_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers

Description

int mcve_completeauthorizations ( resource conn, int &array)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_chngpwd | Nach oben | mcve_connect


mcve_connect

(PHP 4 >= 4.2.0, PHP 5)

mcve_connect -- Establish the connection to MCVE

Description

int mcve_connect ( resource conn)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_completeauthorizations | Nach oben | mcve_connectionerror


mcve_connectionerror

(PHP 4 >= 4.3.0, PHP 5)

mcve_connectionerror -- Get a textual representation of why a connection failed

Description

string mcve_connectionerror ( resource conn)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_connect | Nach oben | mcve_deleteresponse


mcve_deleteresponse

(PHP 4 >= 4.2.0, PHP 5)

mcve_deleteresponse -- Delete specified transaction from MCVE_CONN structure

Description

bool mcve_deleteresponse ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_connectionerror | Nach oben | mcve_deletetrans


mcve_deletetrans

(PHP 4 >= 4.3.0, PHP 5)

mcve_deletetrans -- Delete specified transaction from MCVE_CONN structure

Description

bool mcve_deletetrans ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_deleteresponse | Nach oben | mcve_deleteusersetup


mcve_deleteusersetup

(PHP 4 >= 4.2.0, PHP 5)

mcve_deleteusersetup -- Deallocate data associated with usersetup structure

Description

void mcve_deleteusersetup ( resource usersetup)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_deletetrans | Nach oben | mcve_deluser


mcve_deluser

(PHP 4 >= 4.2.0, PHP 5)

mcve_deluser -- Delete an MCVE user account

Description

int mcve_deluser ( resource conn, string admin_password, string username)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_deleteusersetup | Nach oben | mcve_destroyconn


mcve_destroyconn

(PHP 4 >= 4.2.0, PHP 5)

mcve_destroyconn -- Destroy the connection and MCVE_CONN structure

Description

void mcve_destroyconn ( resource conn)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_deluser | Nach oben | mcve_destroyengine


mcve_destroyengine

(PHP 4 >= 4.2.0, PHP 5)

mcve_destroyengine -- Free memory associated with IP/SSL connectivity

Description

void mcve_destroyengine ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_destroyconn | Nach oben | mcve_disableuser


mcve_disableuser

(PHP 4 >= 4.2.0, PHP 5)

mcve_disableuser -- Disable an active MCVE user account

Description

int mcve_disableuser ( resource conn, string admin_password, string username)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_destroyengine | Nach oben | mcve_edituser


mcve_edituser

(PHP 4 >= 4.2.0, PHP 5)

mcve_edituser -- Edit MCVE user using usersetup structure

Description

int mcve_edituser ( resource conn, string admin_password, int usersetup)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_disableuser | Nach oben | mcve_enableuser


mcve_enableuser

(PHP 4 >= 4.2.0, PHP 5)

mcve_enableuser -- Enable an inactive MCVE user account

Description

int mcve_enableuser ( resource conn, string admin_password, string username)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_edituser | Nach oben | mcve_force


mcve_force

(PHP 4 >= 4.2.0, PHP 5)

mcve_force -- Send a FORCE to MCVE. (typically, a phone-authorization)

Description

int mcve_force ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string authcode, string comments, string clerkid, string stationid, int ptrannum)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_enableuser | Nach oben | mcve_getcell


mcve_getcell

(PHP 4 >= 4.2.0, PHP 5)

mcve_getcell -- Get a specific cell from a comma delimited response by column name

Description

string mcve_getcell ( resource conn, int identifier, string column, int row)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_force | Nach oben | mcve_getcellbynum


mcve_getcellbynum

(PHP 4 >= 4.2.0, PHP 5)

mcve_getcellbynum -- Get a specific cell from a comma delimited response by column number

Description

string mcve_getcellbynum ( resource conn, int identifier, int column, int row)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_getcell | Nach oben | mcve_getcommadelimited


mcve_getcommadelimited

(PHP 4 >= 4.2.0, PHP 5)

mcve_getcommadelimited -- Get the RAW comma delimited data returned from MCVE

Description

string mcve_getcommadelimited ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_getcellbynum | Nach oben | mcve_getheader


mcve_getheader

(PHP 4 >= 4.2.0, PHP 5)

mcve_getheader -- Get the name of the column in a comma-delimited response

Description

string mcve_getheader ( resource conn, int identifier, int column_num)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_getcommadelimited | Nach oben | mcve_getuserarg


mcve_getuserarg

(PHP 4 >= 4.2.0, PHP 5)

mcve_getuserarg -- Grab a value from usersetup structure

Description

string mcve_getuserarg ( resource usersetup, int argtype)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_getheader | Nach oben | mcve_getuserparam


mcve_getuserparam

(PHP 4 >= 4.3.0, PHP 5)

mcve_getuserparam -- Get a user response parameter

Description

string mcve_getuserparam ( resource conn, long identifier, int key)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_getuserarg | Nach oben | mcve_gft


mcve_gft

(PHP 4 >= 4.2.0, PHP 5)

mcve_gft -- Audit MCVE for Failed transactions

Description

int mcve_gft ( resource conn, string username, string password, int type, string account, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_getuserparam | Nach oben | mcve_gl


mcve_gl

(PHP 4 >= 4.2.0, PHP 5)

mcve_gl -- Audit MCVE for settled transactions

Description

int mcve_gl ( int conn, string username, string password, int type, string account, string batch, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_gft | Nach oben | mcve_gut


mcve_gut

(PHP 4 >= 4.2.0, PHP 5)

mcve_gut -- Audit MCVE for Unsettled Transactions

Description

int mcve_gut ( resource conn, string username, string password, int type, string account, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_gl | Nach oben | mcve_initconn


mcve_initconn

(PHP 4 >= 4.2.0, PHP 5)

mcve_initconn -- Create and initialize an MCVE_CONN structure

Description

resource mcve_initconn ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_gut | Nach oben | mcve_initengine


mcve_initengine

(PHP 4 >= 4.2.0, PHP 5)

mcve_initengine -- Ready the client for IP/SSL Communication

Description

int mcve_initengine ( string location)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_initconn | Nach oben | mcve_initusersetup


mcve_initusersetup

(PHP 4 >= 4.2.0, PHP 5)

mcve_initusersetup -- Initialize structure to store user data

Description

resource mcve_initusersetup ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_initengine | Nach oben | mcve_iscommadelimited


mcve_iscommadelimited

(PHP 4 >= 4.2.0, PHP 5)

mcve_iscommadelimited -- Checks to see if response is comma delimited

Description

int mcve_iscommadelimited ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_initusersetup | Nach oben | mcve_liststats


mcve_liststats

(PHP 4 >= 4.2.0, PHP 5)

mcve_liststats -- List statistics for all users on MCVE system

Description

int mcve_liststats ( resource conn, string admin_password)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_iscommadelimited | Nach oben | mcve_listusers


mcve_listusers

(PHP 4 >= 4.2.0, PHP 5)

mcve_listusers -- List all users on MCVE system

Description

int mcve_listusers ( resource conn, string admin_password)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_liststats | Nach oben | mcve_maxconntimeout


mcve_maxconntimeout

(PHP 4 >= 4.3.0, PHP 5)

mcve_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE

Description

bool mcve_maxconntimeout ( resource conn, int secs)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_listusers | Nach oben | mcve_monitor


mcve_monitor

(PHP 4 >= 4.2.0, PHP 5)

mcve_monitor -- Perform communication with MCVE (send/receive data) Non-blocking

Description

int mcve_monitor ( resource conn)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_maxconntimeout | Nach oben | mcve_numcolumns


mcve_numcolumns

(PHP 4 >= 4.2.0, PHP 5)

mcve_numcolumns -- Number of columns returned in a comma delimited response

Description

int mcve_numcolumns ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_monitor | Nach oben | mcve_numrows


mcve_numrows

(PHP 4 >= 4.2.0, PHP 5)

mcve_numrows -- Number of rows returned in a comma delimited response

Description

int mcve_numrows ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_numcolumns | Nach oben | mcve_override


mcve_override

(PHP 4 >= 4.2.0, PHP 5)

mcve_override -- Send an OVERRIDE to MCVE

Description

int mcve_override ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_numrows | Nach oben | mcve_parsecommadelimited


mcve_parsecommadelimited

(PHP 4 >= 4.2.0, PHP 5)

mcve_parsecommadelimited -- Parse the comma delimited response so mcve_getcell, etc will work

Description

int mcve_parsecommadelimited ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_override | Nach oben | mcve_ping


mcve_ping

(PHP 4 >= 4.3.0, PHP 5)

mcve_ping -- Send a ping request to MCVE

Description

int mcve_ping ( resource conn)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_parsecommadelimited | Nach oben | mcve_preauth


mcve_preauth

(PHP 4 >= 4.2.0, PHP 5)

mcve_preauth -- Send a PREAUTHORIZATION to MCVE

Description

int mcve_preauth ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_ping | Nach oben | mcve_preauthcompletion


mcve_preauthcompletion

(PHP 4 >= 4.2.0, PHP 5)

mcve_preauthcompletion -- Complete a PREAUTHORIZATION... Ready it for settlement

Description

int mcve_preauthcompletion ( resource conn, string username, string password, float finalamount, int sid, int ptrannum)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_preauth | Nach oben | mcve_qc


mcve_qc

(PHP 4 >= 4.2.0, PHP 5)

mcve_qc -- Audit MCVE for a list of transactions in the outgoing queue

Description

int mcve_qc ( resource conn, string username, string password, string clerkid, string stationid, string comments, int ptrannum)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_preauthcompletion | Nach oben | mcve_responseparam


mcve_responseparam

(PHP 4 >= 4.3.0, PHP 5)

mcve_responseparam -- Get a custom response parameter

Description

string mcve_responseparam ( resource conn, long identifier, string key)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_qc | Nach oben | mcve_return


mcve_return

(PHP 4 >= 4.2.0, PHP 5)

mcve_return -- Issue a RETURN or CREDIT to MCVE

Description

int mcve_return ( int conn, string username, string password, string trackdata, string account, string expdate, float amount, string comments, string clerkid, string stationid, int ptrannum)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_responseparam | Nach oben | mcve_returncode


mcve_returncode

(PHP 4 >= 4.2.0, PHP 5)

mcve_returncode -- Grab the exact return code from the transaction

Description

int mcve_returncode ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_return | Nach oben | mcve_returnstatus


mcve_returnstatus

(PHP 4 >= 4.2.0, PHP 5)

mcve_returnstatus -- Check to see if the transaction was successful

Description

int mcve_returnstatus ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_returncode | Nach oben | mcve_sale


mcve_sale

(PHP 4 >= 4.2.0, PHP 5)

mcve_sale -- Send a SALE to MCVE

Description

int mcve_sale ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_returnstatus | Nach oben | mcve_setblocking


mcve_setblocking

(PHP 4 >= 4.3.0, PHP 5)

mcve_setblocking -- Set blocking/non-blocking mode for connection

Description

int mcve_setblocking ( resource conn, int tf)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_sale | Nach oben | mcve_setdropfile


mcve_setdropfile

(PHP 4 >= 4.2.0, PHP 5)

mcve_setdropfile -- Set the connection method to Drop-File

Description

int mcve_setdropfile ( resource conn, string directory)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_setblocking | Nach oben | mcve_setip


mcve_setip

(PHP 4 >= 4.2.0, PHP 5)

mcve_setip -- Set the connection method to IP

Description

int mcve_setip ( resource conn, string host, int port)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_setdropfile | Nach oben | mcve_setssl_files


mcve_setssl_files

(PHP 4 >= 4.3.3, PHP 5)

mcve_setssl_files -- Set certificate key files and certificates if server requires client certificate verification

Description

int mcve_setssl_files ( string sslkeyfile, string sslcertfile)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_setip | Nach oben | mcve_setssl


mcve_setssl

(PHP 4 >= 4.2.0, PHP 5)

mcve_setssl -- Set the connection method to SSL

Description

int mcve_setssl ( resource conn, string host, int port)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_setssl_files | Nach oben | mcve_settimeout


mcve_settimeout

(PHP 4 >= 4.2.0, PHP 5)

mcve_settimeout -- Set maximum transaction time (per trans)

Description

int mcve_settimeout ( resource conn, int seconds)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_setssl | Nach oben | mcve_settle


mcve_settle

(PHP 4 >= 4.2.0, PHP 5)

mcve_settle -- Issue a settlement command to do a batch deposit

Description

int mcve_settle ( resource conn, string username, string password, string batch)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_settimeout | Nach oben | mcve_text_avs


mcve_text_avs

(PHP 4 >= 4.3.0, PHP 5)

mcve_text_avs -- Get a textual representation of the return_avs

Description

string mcve_text_avs ( string code)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_settle | Nach oben | mcve_text_code


mcve_text_code

(PHP 4 >= 4.3.0, PHP 5)

mcve_text_code -- Get a textual representation of the return_code

Description

string mcve_text_code ( string code)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_text_avs | Nach oben | mcve_text_cv


mcve_text_cv

(PHP 4 >= 4.3.0, PHP 5)

mcve_text_cv -- Get a textual representation of the return_cv

Description

string mcve_text_cv ( int code)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_text_code | Nach oben | mcve_transactionauth


mcve_transactionauth

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionauth -- Get the authorization number returned for the transaction (alpha-numeric)

Description

string mcve_transactionauth ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_text_cv | Nach oben | mcve_transactionavs


mcve_transactionavs

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionavs -- Get the Address Verification return status

Description

int mcve_transactionavs ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transactionauth | Nach oben | mcve_transactionbatch


mcve_transactionbatch

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionbatch -- Get the batch number associated with the transaction

Description

int mcve_transactionbatch ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transactionavs | Nach oben | mcve_transactioncv


mcve_transactioncv

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactioncv -- Get the CVC2/CVV2/CID return status

Description

int mcve_transactioncv ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transactionbatch | Nach oben | mcve_transactionid


mcve_transactionid

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionid -- Get the unique system id for the transaction

Description

int mcve_transactionid ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transactioncv | Nach oben | mcve_transactionitem


mcve_transactionitem

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionitem -- Get the ITEM number in the associated batch for this transaction

Description

int mcve_transactionitem ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transactionid | Nach oben | mcve_transactionssent


mcve_transactionssent

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionssent -- Check to see if outgoing buffer is clear

Description

int mcve_transactionssent ( resource conn)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transactionitem | Nach oben | mcve_transactiontext


mcve_transactiontext

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactiontext -- Get verbiage (text) return from MCVE or processing institution

Description

string mcve_transactiontext ( resource conn, int identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transactionssent | Nach oben | mcve_transinqueue


mcve_transinqueue

(PHP 4 >= 4.2.0, PHP 5)

mcve_transinqueue -- Number of transactions in client-queue

Description

int mcve_transinqueue ( resource conn)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transactiontext | Nach oben | mcve_transnew


mcve_transnew

(PHP 4 >= 4.3.0, PHP 5)

mcve_transnew -- Start a new transaction

Description

int mcve_transnew ( resource conn)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transinqueue | Nach oben | mcve_transparam


mcve_transparam

(PHP 4 >= 4.3.0, PHP 5)

mcve_transparam -- Add a parameter to a transaction

Description

int mcve_transparam ( resource conn, long identifier, int key)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transnew | Nach oben | mcve_transsend


mcve_transsend

(PHP 4 >= 4.3.0, PHP 5)

mcve_transsend -- Finalize and send the transaction

Description

int mcve_transsend ( resource conn, long identifier)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transparam | Nach oben | mcve_ub


mcve_ub

(PHP 4 >= 4.2.0, PHP 5)

mcve_ub -- Get a list of all Unsettled batches

Description

int mcve_ub ( resource conn, string username, string password)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_transsend | Nach oben | mcve_uwait


mcve_uwait

(PHP 4 >= 4.3.0, PHP 5)

mcve_uwait -- Wait x microsecs

Description

int mcve_uwait ( long microsecs)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_ub | Nach oben | mcve_verifyconnection


mcve_verifyconnection

(PHP 4 >= 4.3.0, PHP 5)

mcve_verifyconnection -- Set whether or not to PING upon connect to verify connection

Description

bool mcve_verifyconnection ( resource conn, int tf)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_uwait | Nach oben | mcve_verifysslcert


mcve_verifysslcert

(PHP 4 >= 4.3.0, PHP 5)

mcve_verifysslcert -- Set whether or not to verify the server ssl certificate

Description

bool mcve_verifysslcert ( resource conn, int tf)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_verifyconnection | Nach oben | mcve_void


mcve_void

(PHP 4 >= 4.2.0, PHP 5)

mcve_void -- VOID a transaction in the settlement queue

Description

int mcve_void ( resource conn, string username, string password, int sid, int ptrannum)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mcve_verifysslcert | Nach oben | Hash Funktionen


Hash Funktionen

PHP Handbuch
Zurück Nach vorne

LVII. Hash Funktionen

Diese Funktionen arbeiten zusammen mit mhash.

Dies ist eine Schnittstelle zu der Mhash Bibliothek. Mhash unterstützt eine breite Auswahl an Hash Algorithmen, wie MD5, SHA1, GOST, und viele andere.

Um sie zu verwenden, muss man die Mhash Distribution von der Website downloaden und der beigefügten Instalationsanleitung folgen. PHP muss mit der Option --with-mhash kompiliert werden um diese Erweiterung zu aktivieren.

Mhash wird verwendet um z.B. Checksummen und Mehr zu erstellen.

Beispiel 1. Berechne den MD5 Extrakt und gib es als Hex aus

<?php
$input = "what do ya want for nothing?";
$hash = mhash (MHASH_MD5, $input);
print "Der Hash ist ".bin2hex ($hash)."\n&lt;br>";
$hash = mhash (MHASH_MD5, $input, "Jefe");
print "Der hmac ist ".bin2hex ($hash)."\n&lt;br>";
?>

Die Ausgabe ist:
Der Hash ist d03cb659cbf9192dcd066272249f8412
Der hmac ist 750c783e6ab0b503eaa86e310a5db738

Eine komplette Liste aller unterstützen Hashes ist in der Dokumentation von Mhash enthalten. Die allgemeine Verwendung ist, dass man einen Hash Algorithmus von PHP mit MHASH_HASHNAME erreicht. Z.B., um HAVAL zu erreichen benutzt man die PHP Konstante MHASH_HAVAL.

Hier ist eine Liste von Hashs, die momentan von Mhash unterstützt werden. Wenn ein Hash ist hier nicht aufgeführt ist, aber von Mhash, laut Dokumentation, unterstützt wird, ist diese Dokumentation als veraltet anzusehen.

  • MHASH_MD5

  • MHASH_SHA1

  • MHASH_HAVAL

  • MHASH_RIPEMD160

  • MHASH_RIPEMD128

  • MHASH_SNEFRU

  • MHASH_TIGER

  • MHASH_GOST

  • MHASH_CRC32

  • MHASH_CRC32B

Inhaltsverzeichnis
mhash_count -- Gibt den höchstmöglichen Hash zurück
mhash_get_block_size -- Gibt die Blockgroesse von dem übergebenem Hash zurück
mhash_get_hash_name -- Gibt den Namen eines Hashs zurück
mhash_keygen_s2k -- Generates a key
mhash -- Hash berechnen

Zurück | Zum Anfang | Nach vorne
mcve_void | Nach oben | mhash_count


mhash_count

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash_count -- Gibt den höchstmöglichen Hash zurück

Beschreibung

int mhash_count ( void )

mhash_count() gibt die höchsten verfügbaren Hash Id zurück. Hashes sind von 0 bis zu der Hash Id nummeriert.

Beispiel 1. Alle Hashes durchlaufen

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf ("Die Blockgrösse von %s ist %d\n",
        mhash_get_hash_name ($i),
        mhash_get_block_size ($i));
}
?>

Zurück | Zum Anfang | Nach vorne
Hash Funktionen | Nach oben | mhash_get_block_size


mhash_get_block_size

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash_get_block_size -- Gibt die Blockgroesse von dem übergebenem Hash zurück

Beschreibung

int mhash_get_block_size ( int hash)

mhash_get_block_size() gibt die Groesse des übergebenen Hashs.

mhash_get_block_size() nimmt ein Argument, den Hash und gibt die Grösse in Byte oder FALSE, wenn Hash nicht existiert.

Zurück | Zum Anfang | Nach vorne
mhash_count | Nach oben | mhash_get_hash_name


mhash_get_hash_name

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash_get_hash_name -- Gibt den Namen eines Hashs zurück

Beschreibung

string mhash_get_hash_name ( int hash)

mhash_get_hash_name() wird verwendet um den Namen eines Hashes zu erfahren.

mhash_get_hash_name() nimmt die Hash Id als Argument und gibt den Namen des Hashs zurück oder FALSE, wenn der Hash nicht existiert.

Beispiel 1. Mhash_get_hash_name Beispiel

<?php
$hash = MHASH_MD5;

print mhash_get_hash_name ($hash);
?>

Das Beispiel oben gibt aus:
MD5

Zurück | Zum Anfang | Nach vorne
mhash_get_block_size | Nach oben | mhash_keygen_s2k


mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2k -- Generates a key

Description

string mhash_keygen_s2k ( int hash, string password, string salt, int bytes)

mhash_keygen_s2k() generates a key that is bytes long, from a user given password. This is the Salted S2K algorithm as specified in the OpenPGP document (RFC 2440). That algorithm will use the specified hash algorithm to create the key. The salt must be different and random enough for every key you generate in order to create different keys. That salt must be known when you check the keys, thus it is a good idea to append the key to it. Salt has a fixed length of 8 bytes and will be padded with zeros if you supply less bytes.

Keep in mind that user supplied passwords are not really suitable to be used as keys in cryptographic algorithms, since users normally choose keys they can write on keyboard. These passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind of transformation (like this function) to the user supplied key.

Zurück | Zum Anfang | Nach vorne
mhash_get_hash_name | Nach oben | mhash


mhash

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash -- Hash berechnen

Beschreibung

string mhash ( int hash, string data)

mhash() verwendet eine Hash Funktion abhängig von hash auf data und gibt den resultierenden Hash zurück (wird auch Digest genannt).

Zurück | Zum Anfang | Nach vorne
mhash_keygen_s2k | Nach oben | Mimetype Functions


Mimetype Functions

PHP Handbuch
Zurück Nach vorne

LVIII. Mimetype Functions

Einführung

Warnung

This extension has been deprecated as the PECL extension fileinfo provides the same functionality (and more) in a much cleaner way.

The functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. While this is not a bullet proof approach the heuristics used do a very good job.

This extension is derived from Apache mod_mime_magic, which is itself based on the file command maintained by Ian F. Darwin. See the source code for further historic and copyright information.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

You must compile PHP with the configure switch --with-mime-magic to get support for mime-type functions. The extension needs a copy of the simplified magic file that is distributed with the Apache httpd.

Anmerkung: The configure option has been changed from --enable-mime-magic to --with-mime-magic since PHP 4.3.2

Anmerkung: This extension is not capable of handling the fully decorated magic file that generally comes with standard Linux distro's and is supposed to be used with recent versions of file command.

Note to Win32 Users: In order to use this module on a Windows environment, you must set the path to the bundled magic.mime file in your php.ini.

Beispiel 1. Setting the path to magic.mime

mime_magic.magicfile = "$PHP_INSTALL_DIR\magic.mime"

Remember to substitute the $PHP_INSTALL_DIR for your actual path to PHP in the above example. e.g. c:\php

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Mimetype configuration options

Name | Default | Changeable
mime_magic.magicfile | "/usr/share/misc/magic.mime" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
mime_content_type -- Detect MIME Content-type for a file

Zurück | Zum Anfang | Nach vorne
mhash | Nach oben | mime_content_type


mime_content_type

(PHP 4 >= 4.3.0, PHP 5)

mime_content_type -- Detect MIME Content-type for a file

Description

string mime_content_type ( string filename)

Returns the MIME content type for a file as determined by using information from the magic.mime file. Content types are returned in MIME format, like text/plain or application/octet-stream.

Beispiel 1. mime_content_type() example

<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>

The above example will output:

image/gif
text/plain

Zurück | Zum Anfang | Nach vorne
Mimetype Functions | Nach oben | Microsoft SQL Server Funktionen


Microsoft SQL Server Funktionen

PHP Handbuch
Zurück Nach vorne

LIX. Microsoft SQL Server Funktionen

Einführung

Diese Funktionen ermöglichen Ihnen den Zugriff auf den MS SQL-Datenbankserver.

Anforderungen

Voraussetzungen für Win32-Plattformen.

Für die Erweiterung müssen die MS SQL Client Tools auf dem System installiert sein auf dem PHP installiert ist. Die Client Tools können entweder von der MS SQL Server-CD oder durch Kopieren von ntwdblib.dll von \winnt\system32 auf dem Server nach \winnt\system32 auf dem PHP-Rechner installiert werden. Das Kopieren von ntwdblib.dll unterstützt nur den Zugriff. Für die Konfiguration des Clients ist eine Installation aller Tools nötig.

Voraussetzungen für Unix/Linux-Plattformen.

Um die MSSQL-Erweiterung unter Unix/Linux nutzen zu können, müssen Sie zuerst die FreeTDS-Bibliothek übersetzen und installieren. Quellcode und Installationsanleitung stehen auf der FreeTDS-Homepage zur Verfügung: http://www.freetds.org/

Anmerkung: Unter Windows wird die DBLIB von Microsoft verwendet. Funktionen, die einen Feldnamen zurückgeben, basieren auf der DBLIB-Funktion dbcolname(). DBLIB wurde für den SQL Server 6.x entwickelt, bei dem die maximale Länge der Bezeichner bei 30 liegt. Aus diesem Grund ist die Länge von Feldern auf maximal 30 Zeichen begrenzt. Auf Plattformen, auf denen FreeTDS verwendet wird (Linux) gibt es dieses Problem nicht.

Installation

Die MSSQL-Erweiterung wird durch den Eintrag extension=php_mssql.dll in die php.ini aktiviert.

Damit diese Funktionen zur Verfügung stehen, müssen Sie PHP mit --with-mssql[=DIR] übersetzen, wobei DIR der Präfix der FreeTDS-Installation ist. Und FreeTDS muss mit --enable-msdblib übersetzt werden.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. MS SQL Server Konfigurationsoptionen

Bezeichnung | Grundeinstellung | Änderbar
mssql.allow_persistent | "1" | PHP_INI_SYSTEM
mssql.max_persistent | "-1" | PHP_INI_SYSTEM
mssql.max_links | "-1" | PHP_INI_SYSTEM
mssql.min_error_severity | "10" | PHP_INI_ALL
mssql.min_message_severity | "10" | PHP_INI_ALL
mssql.compatability_mode | "0" | PHP_INI_ALL
mssql.connect_timeout | "5" | PHP_INI_ALL
mssql.timeout | "60" | PHP_INI_ALL
mssql.textsize | "-1" | PHP_INI_ALL
mssql.textlimit | "-1" | PHP_INI_ALL
mssql.batchsize | "0" | PHP_INI_ALL
mssql.datetimeconvert | "1" | PHP_INI_ALL
mssql.secure_connection | "0" | PHP_INI_SYSTEM
mssql.max_procs | "25" | PHP_INI_ALL
Um weitere Details und die Definition der PHP_INI_*-Konstanten zu erhalten, siehe ini_set().

Resource Typen

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MSSQL_ASSOC (integer)

MSSQL_NUM (integer)

MSSQL_BOTH (integer)

SQLTEXT (integer)

SQLVARCHAR (integer)

SQLCHAR (integer)

SQLINT1 (integer)

SQLINT2 (integer)

SQLINT4 (integer)

SQLBIT (integer)

SQLFLT8 (integer)

Inhaltsverzeichnis
mssql_bind -- Fügt einer Stored Procedure oder einer Remote Stored Procedure einen Parameter hinzu
mssql_close -- Schließt die Verbindung zum MS SQL Server
mssql_connect -- Baut eine Verbindung zum MS SQL Server auf
mssql_data_seek -- Bewegt den internen Datensatz-Zeiger
mssql_execute -- Führt eine Stored Procedure in einer MS SQL-Datenbank aus
mssql_fetch_array -- Liefert einen Ergebnis-Datensatz als assoziatives Array, als numerisches Array oder beides
mssql_fetch_assoc -- Liefert ein assoziatives Array des aktuellen Datensatzes aus dem Ergebnis, das durch die result_id bestimmt ist
mssql_fetch_batch -- Liefert den nächsten Stapel von Datensätzen
mssql_fetch_field -- Liefert Informationen über ein Feld
mssql_fetch_object -- Liefert einen Datensatz als Objekt
mssql_fetch_row -- Liefert einen Datensatz als indiziertes Array
mssql_field_length -- Liefert die Länge eines Feldes
mssql_field_name -- Liefert den Namen eines Feldes
mssql_field_seek -- Setzt einen Feld-Offset
mssql_field_type -- Liefert den Typ eines Feldes
mssql_free_result -- Gibt den Ergebnisspeicher frei
mssql_free_statement -- Gibt den Anweisungsspeicher frei
mssql_get_last_message -- Gibt die letzte Meldung des Servers zurück
mssql_guid_string -- Wandelt eine 16 byte binary GUID in eine Zeichenkette um
mssql_init -- Initialisiert eine Stored Procedure oder eine Remote Stored Procedure
mssql_min_error_severity -- Setzt die untere Fehlerschwelle
mssql_min_message_severity -- Setzt die untere Schwelle für Meldungen
mssql_next_result -- Bewegt den internen Ergebnis-Zeiger zum nächsten Ergebnis
mssql_num_fields -- Liefert die Anzahl der Felder eines Ergebnisses
mssql_num_rows -- Liefert die Anzahl der Datensätze eines Ergebnisses
mssql_pconnect -- Baut eine persistente MS SQL Verbindung auf
mssql_query -- Sendet eine MS SQL Anfrage
mssql_result -- Liefert die bei einer Abfrage gefundenen Daten
mssql_rows_affected -- Liefert die Anzahl der von einer Anfrage betroffenen Datensätze
mssql_select_db -- Wählt eine MS SQL Datenbank aus

Zurück | Zum Anfang | Nach vorne
mime_content_type | Nach oben | mssql_bind


mssql_bind

(PHP 4 >= 4.1.0, PHP 5)

mssql_bind -- Fügt einer Stored Procedure oder einer Remote Stored Procedure einen Parameter hinzu

Beschreibung

bool mssql_bind ( resource stmt, string param_name, mixed var, int type [, int is_output [, int is_null [, int maxlen]]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch: mssql_execute(),
mssql_free_statement() und
mssql_init().

Zurück | Zum Anfang | Nach vorne
Microsoft SQL Server Funktionen | Nach oben | mssql_close


mssql_close

(PHP 3, PHP 4 , PHP 5)

mssql_close -- Schließt die Verbindung zum MS SQL Server

Beschreibung

bool mssql_close ( [resource Verbindungs-Kennung])

mssql_close() schließt die Verbindung zu der MS SQL Server Datenbank, die zur angegebenen Verbindungs-Kennung gehört. Wenn keine Verbindungs-Kennung angegeben wird, wird von der zuletzt geöffneten Verbindung ausgegangen.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beachten Sie, dass dies normalerweise nicht nötig ist, weil nichtpersistente offene Verbindungen automatisch nach Ausführung des PHP-Skripts geschlossen werden.

mssql_close() schließt keine mittels mssql_pconnect() aufgebauten persistenten Verbindungen.

Siehe auch: mssql_connect() und mssql_pconnect().

Zurück | Zum Anfang | Nach vorne
mssql_bind | Nach oben | mssql_connect


mssql_connect

(PHP 3, PHP 4 , PHP 5)

mssql_connect -- Baut eine Verbindung zum MS SQL Server auf

Beschreibung

int mssql_connect ( [string Servername [, string Benutzername [, string Passwort]]])

Gibt bei Erfolg eine positive MS SQL Verbindungs-Kennung oder bei Auftreten eines Fehlers FALSE zurück.

mssql_connect() baut eine Verbindung zu einem MS SQL Server auf. Das Argument Servername muss ein gültiger Servername sein, der in der 'interfaces'-Datei definiert ist.

Falls mssql_connect() zum zweiten Mal mit den selben Argumenten aufgerufen wird, wird keine neue Verbindung aufgebaut, sondern stattdessen die Verbindungs-Kennung der bereits bestehenden Verbindung zurückgegeben.

Die Verbindung zum Server wird geschlossen, sobald die Ausführung des Skripts abgeschlossen ist, wenn sie nicht schon vorher durch einen expliziten Aufruf von mssql_close() geschlossen wurde.

Siehe auch: mssql_pconnect() und mssql_close().

Zurück | Zum Anfang | Nach vorne
mssql_close | Nach oben | mssql_data_seek


mssql_data_seek

(PHP 3, PHP 4 , PHP 5)

mssql_data_seek -- Bewegt den internen Datensatz-Zeiger

Beschreibung

bool mssql_data_seek ( resource Ergebnis-Kennung, int Datensatz-Nummer)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

mssql_data_seek() bewegt den internen Datensatz-Zeiger des mit der angegebenen Ergebnis-Kennung verbundenen Ergebnisses zur angegebenen Datensatz-Nummer, wobei der erste Datensatz die Nummer 0 hat. Beim nächsten Aufruf von mssql_fetch_row() wird nun dieser Datensatz zurückgeben.

Siehe auch: mssql_data_seek().

Zurück | Zum Anfang | Nach vorne
mssql_connect | Nach oben | mssql_execute


mssql_execute

(PHP 4 >= 4.1.0, PHP 5)

mssql_execute -- Führt eine Stored Procedure in einer MS SQL-Datenbank aus

Beschreibung

mixed mssql_execute ( resource stmt [, bool skip_results])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: Wenn die Stored Procedure Parameter oder einen Rückgabewert liefert, stehen diese nach dem Aufruf von mssql_execute() zur Verfügung, falls die Stored Procedure nicht mehr als einen Ergebnisdatensatz liefert. Benutzen Sie in diesem Fall mssql_next_result(), um durch die Ergebnisse zu blättern. Nachdem das letzte Ergebnis verarbeitet wurde, stehen die Ausgabeparameter und Rückgabewerte zur Verfügung.

Siehe auch: mssql_bind(),
mssql_free_statement() und
mssql_init().

Zurück | Zum Anfang | Nach vorne
mssql_data_seek | Nach oben | mssql_fetch_array


mssql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mssql_fetch_array -- Liefert einen Ergebnis-Datensatz als assoziatives Array, als numerisches Array oder beides

Beschreibung

array mssql_fetch_array ( resource Ergebnis [, int Ergebnis-Typ])

Gibt ein Array mit dem gelieferten Datensatz zurück oder FALSE, wenn es keine weiteren Datensätze gibt.

mssql_fetch_array() ist die erweiterte Version von mssql_fetch_row(). Zusätzlich zum Speichern der Daten in den numerischen Indizes des Ergebnisarrays, speichert sie die Daten unter Verwendung der Feldnamen als Schlüssel auch in assoziativen Indizes.

Wichtige Anmerkung: die Verwendung von mssql_fetch_array() ist nur unwesentlich langsamer als die Verwendung von mssql_fetch_row(), bietet aber wesentlich mehr.

Anmerkung: Field names returned by this function are case-sensitive.

Für weitere Einzelheiten siehe auch: mssql_fetch_row().

Zurück | Zum Anfang | Nach vorne
mssql_execute | Nach oben | mssql_fetch_assoc


mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5)

mssql_fetch_assoc -- Liefert ein assoziatives Array des aktuellen Datensatzes aus dem Ergebnis, das durch die result_id bestimmt ist

Beschreibung

array mssql_fetch_assoc ( resource result_id)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mssql_fetch_array | Nach oben | mssql_fetch_batch


mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5)

mssql_fetch_batch -- Liefert den nächsten Stapel von Datensätzen

Beschreibung

int mssql_fetch_batch ( resource result_index)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mssql_fetch_assoc | Nach oben | mssql_fetch_field


mssql_fetch_field

(PHP 3, PHP 4 , PHP 5)

mssql_fetch_field -- Liefert Informationen über ein Feld

Beschreibung

object mssql_fetch_field ( resource Ergebnis [, int Feld-Offset])

Gibt ein Objekt mit Informationen über ein Feld zurück.

mssql_fetch_field() wird verwendet, um im Ergebnis einer Anfrage Informationen über Felder zu erhalten. Wurde kein Feld-Offset angegeben, wird das nächste Feld, das noch nicht abgefragt wurde, geliefert.

Die Eigenschaften dieses Objekts sind:

  • name - Feldname. Wenn das Feld das Ergebnis einer Funktion ist, wird diese Eigenschaft auf computed#N gesetzt, wobei #N eine fortlaufende Nummer ist.

  • column_source - die Tabelle, zu der das Feld gehört

  • max_length - maximale Feldbreite

  • numeric - 1, wenn es sich um ein numerisches Feld handelt

  • type - der Feldtyp.

Siehe auch: mssql_field_seek().

Zurück | Zum Anfang | Nach vorne
mssql_fetch_batch | Nach oben | mssql_fetch_object


mssql_fetch_object

(PHP 3, PHP 5)

mssql_fetch_object -- Liefert einen Datensatz als Objekt

Beschreibung

object mssql_fetch_object ( resource Ergebnis)

Gibt ein Objekt mit den Eigenschaften des gelieferten Datensatzes zurück oder FALSE, wenn es keine weiteren Datensätze gibt.

mssql_fetch_object() ist mssql_fetch_array() ähnlich, aber es besteht ein Unterschied: statt eines Arrays wird ein Objekt zurückgegeben. Indirekt bedeutet das, dass nur über die Feldnamen auf die Daten zugegriffen werden kann, nicht aber über ihre Offsets (Zahlen sind als Namen von Eigenschaften nicht erlaubt).

Anmerkung: Field names returned by this function are case-sensitive.

Was die Geschwindigkeit betrifft, ist diese Funktion mit mssql_fetch_array() identisch und fast genauso schnell wie mssql_fetch_row() (der Unterschied ist unbedeutend).

Siehe auch: mssql_fetch_array() und mssql_fetch_row().

Zurück | Zum Anfang | Nach vorne
mssql_fetch_field | Nach oben | mssql_fetch_row


mssql_fetch_row

(PHP 3, PHP 4 , PHP 5)

mssql_fetch_row -- Liefert einen Datensatz als indiziertes Array

Beschreibung

array mssql_fetch_row ( resource Ergebnis)

Gibt ein Array mit dem gelieferten Datensatz zurück oder FALSE, wenn es keinen weiteren Datensatz gibt.

mssql_fetch_row() liefert einen Datensatz von dem Ergebnis, das zur angegebenen Ergebnis-Kennung gehört. Der Datensatz wird als Array zurückgegeben. Jedes Feld des Ergebnisses wird in einem Array-Offset gespeichert, der bei Offset 0 beginnt.

Ein nachfolgender Aufruf von mssql_fetch_row() gibt den nächsten Datensatz aus dem Ergebnis zurück oder FALSE, wenn es keine weiteren Datensätze gibt.

Siehe auch: mssql_fetch_array(),
mssql_fetch_object(),
mssql_data_seek(),
mssql_fetch_lengths() und
mssql_result().

Zurück | Zum Anfang | Nach vorne
mssql_fetch_object | Nach oben | mssql_field_length


mssql_field_length

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

mssql_field_length -- Liefert die Länge eines Feldes

Beschreibung

int mssql_field_length ( resource Ergebnis [, int Offset])

Diese Funktion gibt die Länge des Feldes Nr. Offset in Ergebnis zurück. Falls Offset nicht angegeben wurde wird die Länge des aktuellen Feldes zurückgegeben.

Anmerkung für Win32-Benutzer: Wegen einer Einschränkung des von PHP verwendeten zugrundeliegenden API (MS DbLib C API) ist die Länge von VARCHAR-Feldern auf 255 begrenzt. Verwenden Sie stattdesssen ein TEXT-Feld, wenn Sie mehr Daten speichern wollen.

Zurück | Zum Anfang | Nach vorne
mssql_fetch_row | Nach oben | mssql_field_name


mssql_field_name

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

mssql_field_name -- Liefert den Namen eines Feldes

Beschreibung

string mssql_field_name ( resource Ergebnis [, int Offset])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mssql_field_length | Nach oben | mssql_field_seek


mssql_field_seek

(PHP 3, PHP 4 , PHP 5)

mssql_field_seek -- Setzt einen Feld-Offset

Beschreibung

bool mssql_field_seek ( resource Ergebnis, int Feld-Offset)

Sucht bis zum angegebenen Feld-Offset. Wenn der nächste Aufruf von mssql_fetch_field() keinen Feld-Offset enthält, wird dieses Feld zurückgegeben.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch: mssql_fetch_field().

Zurück | Zum Anfang | Nach vorne
mssql_field_name | Nach oben | mssql_field_type


mssql_field_type

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

mssql_field_type -- Liefert den Typ eines Feldes

Beschreibung

string mssql_field_type ( resource Ergebnis [, int Offset])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mssql_field_seek | Nach oben | mssql_free_result


mssql_free_result

(PHP 3, PHP 4 , PHP 5)

mssql_free_result -- Gibt den Ergebnisspeicher frei

Beschreibung

bool mssql_free_result ( resource Ergebnis)

mssql_free_result() brauchen Sie nur aufrufen, wenn Sie sich über zu großen Speicherbedarf zur Laufzeit ihres Skripts Sorgen machen. Der Ergebnisspeicher wird automatisch bei Beendigung des Skripts freigegeben. Sie können mssql_free_result() mit der Ergebnis-Kennung als Argument aufrufen und damit den zugehörigen Ergebnisspeicher freigeben.

Zurück | Zum Anfang | Nach vorne
mssql_field_type | Nach oben | mssql_free_statement


mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5)

mssql_free_statement -- Gibt den Anweisungsspeicher frei

Beschreibung

bool mssql_free_statement ( resource Anweisung)

mssql_free_statement() braucht nur aufgerufen zu werden, wenn Sie befürchten, dass zur Laufzeit Ihres Scripts zu viel Speicher belegt wird. Der gesamte Anweisungsspeicher wird nach Beendigung des Scripts automatisch freigegeben. Wenn Sie mssql_free_statement() zusammen mit der Anweisungskennung als Argument aufrufen, wird der damit verbundene Anweisungsspeicher freigegeben.

Siehe auch: mssql_bind(),
mssql_execute() und
mssql_init()

Zurück | Zum Anfang | Nach vorne
mssql_free_result | Nach oben | mssql_get_last_message


mssql_get_last_message

(PHP 3, PHP 4 , PHP 5)

mssql_get_last_message -- Gibt die letzte Meldung des Servers zurück

Beschreibung

string mssql_get_last_message ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mssql_free_statement | Nach oben | mssql_guid_string


mssql_guid_string

(PHP 4 >= 4.1.0, PHP 5)

mssql_guid_string -- Wandelt eine 16 byte binary GUID in eine Zeichenkette um

Beschreibung

string mssql_guid_string ( string binary [, int short_format])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mssql_get_last_message | Nach oben | mssql_init


mssql_init

(PHP 4 >= 4.1.0, PHP 5)

mssql_init -- Initialisiert eine Stored Procedure oder eine Remote Stored Procedure

Beschreibung

int mssql_init ( string sp_name [, resource conn_id])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch: mssql_bind(),
mssql_execute() und
mssql_free_statement().

Zurück | Zum Anfang | Nach vorne
mssql_guid_string | Nach oben | mssql_min_error_severity


mssql_min_error_severity

(PHP 3, PHP 4 , PHP 5)

mssql_min_error_severity -- Setzt die untere Fehlerschwelle

Beschreibung

void mssql_min_error_severity ( int Schwellenwert)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mssql_init | Nach oben | mssql_min_message_severity


mssql_min_message_severity

(PHP 3, PHP 4 , PHP 5)

mssql_min_message_severity -- Setzt die untere Schwelle für Meldungen

Beschreibung

void mssql_min_message_severity ( int Schwellenwert)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mssql_min_error_severity | Nach oben | mssql_next_result


mssql_next_result

(PHP 4 >= 4.0.5, PHP 5)

mssql_next_result -- Bewegt den internen Ergebnis-Zeiger zum nächsten Ergebnis

Beschreibung

bool mssql_next_result ( resource Ergebnis-ID)

Wird mehr als eine SQL-Anweisung an den Server geschickt oder eine Stored Procedure mit mehreren Ergebnissen ausgeführt, dann liefert der Server mehrere Ergebnisse. Diese Funktion prüft, ob vom Server noch weitere Ergebnisse angeboten werden. Wenn es ein weiteres Ergebnis gibt, gibt sie das existierende Ergebnis frei und bereitet das nächste Ergebnis vor. Liegt ein weiteres Ergebnis vor, gibt die Funktion TRUE, andernfalls FALSE zurück.

Beispiel 1. mssql_next_result() Beispiel

<?php
    $link = mssql_connect("localhost", "benutzer", "geheim");
    mssql_select_db("MyDB", $link);
    $SQL = "Select * from table1 select * from table2";
    $rs = mssql_query($SQL, $link);
    do {
        while ($row = mssql_fetch_row($rs)) {
        }
    } while (mssql_next_result($rs));
    mssql_free_result($rs);
    mssql_close($link);
?>

Zurück | Zum Anfang | Nach vorne
mssql_min_message_severity | Nach oben | mssql_num_fields


mssql_num_fields

(PHP 3, PHP 4 , PHP 5)

mssql_num_fields -- Liefert die Anzahl der Felder eines Ergebnisses

Beschreibung

int mssql_num_fields ( resource Ergebnis)

mssql_num_fields() Gibt die Anzahl der Felder eines Ergebnisses zurück.

Siehe auch: mssql_query(),
mssql_fetch_field() und
mssql_num_rows().

Zurück | Zum Anfang | Nach vorne
mssql_next_result | Nach oben | mssql_num_rows


mssql_num_rows

(PHP 3, PHP 4 , PHP 5)

mssql_num_rows -- Liefert die Anzahl der Datensätze eines Ergebnisses

Beschreibung

int mssql_num_rows ( resource Ergebnis)

mssql_num_rows() Gibt die Anzahl der Datensätze eines Ergebnisses zurück.

Siehe auch: mssql_query() und mssql_fetch_row().

Zurück | Zum Anfang | Nach vorne
mssql_num_fields | Nach oben | mssql_pconnect


mssql_pconnect

(PHP 3, PHP 4 , PHP 5)

mssql_pconnect -- Baut eine persistente MS SQL Verbindung auf

Beschreibung

int mssql_pconnect ( [string Servername [, string Benutzername [, string Passwort]]])

Gibt bei Erfolg eine positive persistente MS SQL Verbindungs-Kennung oder, bei Auftreten eines Fehlers, FALSE zurück.

mssql_pconnect() verhält sich, von zwei wesentlichen Unterschieden abgesehen, fast genauso wie mssql_connect().

Erstens: Die Funktion wird beim Verbindungsaufbau zunächst versuchen, eine (persistente) Verbindung zu finden, die unter dem selben Host, Benutzername und Passwort geöffnet wurde. Wenn eine solche gefunden wird, gibt sie deren Kennung zurück, statt eine neue Verbindung aufzubauen.

Zweitens: die Verbindung zum SQL Server wird bei Beendigung des Skripts nicht geschlossen. Stattdessen bleibt die Verbindung für eine spätere Verwendung bestehen (mssql_close() schließt keine Verbindungen, die mittels mssql_pconnect() aufgebaut wurden).

Eine solche Verbindung wird deshalb als 'persistent' bezeichnet.

Zurück | Zum Anfang | Nach vorne
mssql_num_rows | Nach oben | mssql_query


mssql_query

(PHP 3, PHP 4 , PHP 5)

mssql_query -- Sendet eine MS SQL Anfrage

Beschreibung

resource mssql_query ( string Anfrage [, resource Verbindungs-Kennung [, int batch_size]])

Gibt bei Erfolg eine positive Ergebnis-Kennung oder bei Auftreten eines Fehlers FALSE zurück.

mssql_query() sendet eine Anfrage an die gerade aktive Datenbank auf dem Server, die zur angegebenen Verbindungs-Kennung gehört. Wenn keine Verbindungs-Kennung angegeben wird, wird von der zuletzt geöffneten Verbindung ausgegangen. Wenn es keine offene Verbindung gibt, versucht die Funktion eine Verbindung aufzubauen, als wäre mssql_connect() aufgerufen worden, und diese zu benutzen.

Siehe auch: mssql_select_db() und mssql_connect().

Zurück | Zum Anfang | Nach vorne
mssql_pconnect | Nach oben | mssql_result


mssql_result

(PHP 3, PHP 4 , PHP 5)

mssql_result -- Liefert die bei einer Abfrage gefundenen Daten

Beschreibung

string mssql_result ( resource Ergebnis, int Datensatz, mixed Feld)

mssql_result() gibt den Inhalt einer Zelle des angegebenen MS SQL Ergebnisdatensatzes zurück. Das Argument Feld kann der Feld-Offset, der Feldname oder vom Format tabellenname.feldname sein. Wurde ein Alias angegeben ('select foo as bar from...'), wird statt des Feldnamens dieser Alias verwendet.

Wenn Sie mit einer großen Anzahl von Ergebnisdatensätzen arbeiten, sollten Sie in Erwägung ziehen, eine der Funktionen zu verwenden, die komplette Datensätze liefern (siehe unten). Diese Funktionen sind VIEL schneller als mssql_result(), weil sie bei einem Funktionsaufruf den Inhalt mehrerer Datenzellen liefern. Beachten Sie auch, dass die Angabe eines numerischen Offsets als Feldargument viel schneller ist, als die Angabe eines Feldnamens oder des Arguments tabellenname.feldname.

Empfohlene leistungsfähige Alternativen:
mssql_fetch_row(),
mssql_fetch_array() und
mssql_fetch_object().

Zurück | Zum Anfang | Nach vorne
mssql_query | Nach oben | mssql_rows_affected


mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5)

mssql_rows_affected -- Liefert die Anzahl der von einer Anfrage betroffenen Datensätze

Beschreibung

int mssql_rows_affected ( resource conn_id)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mssql_result | Nach oben | mssql_select_db


mssql_select_db

(PHP 3, PHP 4 , PHP 5)

mssql_select_db -- Wählt eine MS SQL Datenbank aus

Beschreibung

bool mssql_select_db ( string Datenbankname [, resource Verbindungs-Kennung])

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

mssql_select_db() setzt auf dem Server die aktuelle Datenbank, auf die sich die angegebene Verbindungs-Kennung bezieht. Wurde keine Verbindungs-Kennung angegeben, wird die zuletzt geöffnete Verbindung angenommen. Wenn es keine offene Verbindung gibt, versucht die Funktion eine Verbindung aufzubauen, als wäre mssql_connect() aufgerufen worden, und diese zu benutzen.

Jeder folgende Aufruf von mssql_query() bezieht sich auf die geöffnete Datenbank.

Um eine Datenbank auszuwählen, die ein Leerzeichen oder einen Bindestrich enthält, müssen Sie den Datenbanknamen, wie im folgenden Beispiel gezeigt, in Klammern setzen:

Beispiel 1. mssql_select_db() Beispiel

<?php
    $verbindung = mssql_connect('MYSQLSERVER', 'sa', 'passwort');
    mssql_select_db('[meine daten-bank]', $verbindung);
?>

Siehe auch:
mssql_connect(),
mssql_pconnect() und
mssql_query().

Zurück | Zum Anfang | Nach vorne
mssql_rows_affected | Nach oben | Ming functions for Flash


Ming functions for Flash

PHP Handbuch
Zurück Nach vorne

LX. Ming functions for Flash

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Einführung

First of all: Ming is not an acronym. Ming is an open-source (LGPL) library which allows you to create SWF ("Flash") format movies. Ming supports almost all of Flash 4's features, including: shapes, gradients, bitmaps (pngs and jpegs), morphs ("shape tweens"), text, buttons, actions, sprites ("movie clips"), streaming mp3, and color transforms --the only thing that's missing is sound events.

Note that all values specifying length, distance, size, etc. are in "twips", twenty units per pixel. That's pretty much arbitrary, though, since the player scales the movie to whatever pixel size is specified in the embed/object tag, or the entire frame if not embedded.

Ming offers a number of advantages over the existing PHP/libswf module. You can use Ming anywhere you can compile the code, whereas libswf is closed-source and only available for a few platforms, Windows not one of them. Ming provides some insulation from the mundane details of the SWF file format, wrapping the movie elements in PHP objects. Also, Ming is still being maintained; if there's a feature that you want to see, just let us know ming@opaque.net.

Ming was added in PHP 4.0.5.

Anforderungen

To use Ming with PHP, you first need to build and install the Ming library. Source code and installation instructions are available at the Ming home page: http://ming.sourceforge.net/ along with examples, a small tutorial, and the latest news.

Download the ming archive. Unpack the archive. Go in the Ming directory. make. make install.

This will build libming.so and install it into /usr/lib/, and copy ming.h into /usr/include/. Edit the PREFIX= line in the Makefile to change the installation directory.

Installation

Beispiel 1. built into PHP (Unix)

mkdir <phpdir>/ext/ming
cp php_ext/* <phpdir>/ext/ming
cd <phpdir>
./buildconf
./configure --with-ming <other config options>

Build and install PHP as usual, restart web server if necessary.

Now either just add extension=php_ming.so to your php.ini file, or put dl('php_ming.so'); at the head of all of your Ming scripts.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SWFBUTTON_HIT (integer)

SWFBUTTON_DOWN (integer)

SWFBUTTON_OVER (integer)

SWFBUTTON_UP (integer)

SWFBUTTON_MOUSEUPOUTSIDE (integer)

SWFBUTTON_DRAGOVER (integer)

SWFBUTTON_DRAGOUT (integer)

SWFBUTTON_MOUSEUP (integer)

SWFBUTTON_MOUSEDOWN (integer)

SWFBUTTON_MOUSEOUT (integer)

SWFBUTTON_MOUSEOVER (integer)

SWFFILL_RADIAL_GRADIENT (integer)

SWFFILL_LINEAR_GRADIENT (integer)

SWFFILL_TILED_BITMAP (integer)

SWFFILL_CLIPPED_BITMAP (integer)

SWFTEXTFIELD_HASLENGTH (integer)

SWFTEXTFIELD_NOEDIT (integer)

SWFTEXTFIELD_PASSWORD (integer)

SWFTEXTFIELD_MULTILINE (integer)

SWFTEXTFIELD_WORDWRAP (integer)

SWFTEXTFIELD_DRAWBOX (integer)

SWFTEXTFIELD_NOSELECT (integer)

SWFTEXTFIELD_HTML (integer)

SWFTEXTFIELD_ALIGN_LEFT (integer)

SWFTEXTFIELD_ALIGN_RIGHT (integer)

SWFTEXTFIELD_ALIGN_CENTER (integer)

SWFTEXTFIELD_ALIGN_JUSTIFY (integer)

SWFACTION_ONLOAD (integer)

SWFACTION_ENTERFRAME (integer)

SWFACTION_UNLOAD (integer)

SWFACTION_MOUSEMOVE (integer)

SWFACTION_MOUSEDOWN (integer)

SWFACTION_MOUSEUP (integer)

SWFACTION_KEYDOWN (integer)

SWFACTION_KEYUP (integer)

SWFACTION_DATA (integer)

Vordefinierte Klassen

Folgende Klassen werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Ming introduces 13 new objects in PHP, all with matching methods and attributes. To use them, you need to know about objects.

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

Inhaltsverzeichnis
ming_setcubicthreshold -- Set cubic threshold (?)
ming_setscale -- Set scale (?)
ming_useswfversion -- Use SWF version (?)
SWFAction -- Creates a new Action.
SWFBitmap->getHeight -- Returns the bitmap's height.
SWFBitmap->getWidth -- Returns the bitmap's width.
SWFBitmap -- Loads Bitmap object
swfbutton_keypress -- Returns the action flag for keyPress(char)
SWFbutton->addAction -- Adds an action
SWFbutton->addShape -- Adds a shape to a button
SWFbutton->setAction -- Sets the action
SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN)
SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)
SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)
SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)
SWFbutton -- Creates a new Button.
SWFDisplayItem->addColor -- Adds the given color to this item's color transform.
SWFDisplayItem->move -- Moves object in relative coordinates.
SWFDisplayItem->moveTo -- Moves object in global coordinates.
SWFDisplayItem->multColor -- Multiplies the item's color transform.
SWFDisplayItem->remove -- Removes the object from the movie
SWFDisplayItem->Rotate -- Rotates in relative coordinates.
SWFDisplayItem->rotateTo -- Rotates the object in global coordinates.
SWFDisplayItem->scale -- Scales the object in relative coordinates.
SWFDisplayItem->scaleTo -- Scales the object in global coordinates.
SWFDisplayItem->setDepth -- Sets z-order
SWFDisplayItem->setName -- Sets the object's name
SWFDisplayItem->setRatio -- Sets the object's ratio.
SWFDisplayItem->skewX -- Sets the X-skew.
SWFDisplayItem->skewXTo -- Sets the X-skew.
SWFDisplayItem->skewY -- Sets the Y-skew.
SWFDisplayItem->skewYTo -- Sets the Y-skew.
SWFDisplayItem -- Creates a new displayitem object.
SWFFill->moveTo -- Moves fill origin
SWFFill->rotateTo -- Sets fill's rotation
SWFFill->scaleTo -- Sets fill's scale
SWFFill->skewXTo -- Sets fill x-skew
SWFFill->skewYTo -- Sets fill y-skew
SWFFill -- Loads SWFFill object
swffont->getwidth -- Returns the string's width
SWFFont -- Loads a font definition
SWFGradient->addEntry -- Adds an entry to the gradient list.
SWFGradient -- Creates a gradient object
SWFMorph->getshape1 -- Gets a handle to the starting shape
SWFMorph->getshape2 -- Gets a handle to the ending shape
SWFMorph -- Creates a new SWFMorph object.
SWFMovie->add -- Adds any type of data to a movie.
SWFMovie->nextframe -- Moves to the next frame of the animation.
SWFMovie->output -- Dumps your lovingly prepared movie out.
swfmovie->remove -- Removes the object instance from the display list.
SWFMovie->save -- Saves your movie in a file.
SWFMovie->setbackground -- Sets the background color.
SWFMovie->setdimension -- Sets the movie's width and height.
SWFMovie->setframes -- Sets the total number of frames in the animation.
SWFMovie->setrate -- Sets the animation's frame rate.
SWFMovie->streammp3 -- Streams a MP3 file.
SWFMovie -- Creates a new movie object, representing an SWF version 4 movie.
SWFShape->addFill -- Adds a solid fill to the shape.
SWFShape->drawCurve -- Draws a curve (relative).
SWFShape->drawCurveTo -- Draws a curve.
SWFShape->drawLine -- Draws a line (relative).
SWFShape->drawLineTo -- Draws a line.
SWFShape->movePen -- Moves the shape's pen (relative).
SWFShape->movePenTo -- Moves the shape's pen.
SWFShape->setLeftFill -- Sets left rasterizing color.
SWFShape->setLine -- Sets the shape's line style.
SWFShape->setRightFill -- Sets right rasterizing color.
SWFShape -- Creates a new shape object.
swfsprite->add -- Adds an object to a sprite
SWFSprite->nextframe -- Moves to the next frame of the animation.
SWFSprite->remove -- Removes an object to a sprite
SWFSprite->setframes -- Sets the total number of frames in the animation.
SWFSprite -- Creates a movie clip (a sprite)
SWFText->addString -- Draws a string
SWFText->getWidth -- Computes string's width
SWFText->moveTo -- Moves the pen
SWFText->setColor -- Sets the current font color
SWFText->setFont -- Sets the current font
SWFText->setHeight -- Sets the current font height
SWFText->setSpacing -- Sets the current font spacing
SWFText -- Creates a new SWFText object.
SWFTextField->addstring -- Concatenates the given string to the text field
SWFTextField->align -- Sets the text field alignment
SWFTextField->setbounds -- Sets the text field width and height
SWFTextField->setcolor -- Sets the color of the text field.
SWFTextField->setFont -- Sets the text field font
SWFTextField->setHeight -- Sets the font height of this text field font.
SWFTextField->setindentation -- Sets the indentation of the first line.
SWFTextField->setLeftMargin -- Sets the left margin width of the text field.
SWFTextField->setLineSpacing -- Sets the line spacing of the text field.
SWFTextField->setMargins -- Sets the margins width of the text field.
SWFTextField->setname -- Sets the variable name
SWFTextField->setrightMargin -- Sets the right margin width of the text field.
SWFTextField -- Creates a text field object

Zurück | Zum Anfang | Nach vorne
mssql_select_db | Nach oben | ming_setcubicthreshold


ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5)

ming_setcubicthreshold -- Set cubic threshold (?)

Description

void ming_setcubicthreshold ( int threshold)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
Ming functions for Flash | Nach oben | ming_setscale


ming_setscale

(PHP 4 >= 4.0.5, PHP 5)

ming_setscale -- Set scale (?)

Description

void ming_setscale ( int scale)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ming_setcubicthreshold | Nach oben | ming_useswfversion


ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5)

ming_useswfversion -- Use SWF version (?)

Description

void ming_useswfversion ( int version)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ming_setscale | Nach oben | SWFAction


SWFAction

(PHP 4 >= 4.0.5)

SWFAction -- Creates a new Action.

Description

new swfaction ( string script)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfaction() creates a new Action, and compiles the given script into an SWFAction object.

The script syntax is based on the C language, but with a lot taken out- the SWF bytecode machine is just too simpleminded to do a lot of things we might like. For instance, we can't implement function calls without a tremendous amount of hackery because the jump bytecode has a hardcoded offset value. No pushing your calling address to the stack and returning- every function would have to know exactly where to return to.

So what's left? The compiler recognises the following tokens:

  • break

  • for

  • continue

  • if

  • else

  • do

  • while

There is no typed data; all values in the SWF action machine are stored as strings. The following functions can be used in expressions:

time()

Returns the number of milliseconds (?) elapsed since the movie started.

random(seed)

Returns a pseudo-random number in the range 0-seed.

length(expr)

Returns the length of the given expression.

int(number)

Returns the given number rounded down to the nearest integer.

concat(expr, expr)

Returns the concatenation of the given expressions.

ord(expr)

Returns the ASCII code for the given character

chr(num)

Returns the character for the given ASCII code

substr(string, location, length)

Returns the substring of length length at location location of the given string string.

Additionally, the following commands may be used:

duplicateClip(clip, name, depth)

Duplicate the named movie clip (aka sprite). The new movie clip has name name and is at depth depth.

removeClip(expr)

Removes the named movie clip.

trace(expr)

Write the given expression to the trace log. Doubtful that the browser plugin does anything with this.

startDrag(target, lock, [left, top, right, bottom])

Start dragging the movie clip target. The lock argument indicates whether to lock the mouse (?)- use 0 (FALSE) or 1 (TRUE). Optional parameters define a bounding area for the dragging.

stopDrag()

Stop dragging my heart around. And this movie clip, too.

callFrame(expr)

Call the named frame as a function.

getURL(url, target, [method])

Load the given URL into the named target. The target argument corresponds to HTML document targets (such as "_top" or "_blank"). The optional method argument can be POST or GET if you want to submit variables back to the server.

loadMovie(url, target)

Load the given URL into the named target. The target argument can be a frame name (I think), or one of the magical values "_level0" (replaces current movie) or "_level1" (loads new movie on top of current movie).

nextFrame()

Go to the next frame.

prevFrame()

Go to the last (or, rather, previous) frame.

play()

Start playing the movie.

stop()

Stop playing the movie.

toggleQuality()

Toggle between high and low quality.

stopSounds()

Stop playing all sounds.

gotoFrame(num)

Go to frame number num. Frame numbers start at 0.

gotoFrame(name)

Go to the frame named name. Which does a lot of good, since I haven't added frame labels yet.

setTarget(expr)

Sets the context for action. Or so they say- I really have no idea what this does.

And there's one weird extra thing. The expression frameLoaded(num) can be used in if statements and while loops to check if the given frame number has been loaded yet. Well, it's supposed to, anyway, but I've never tested it and I seriously doubt it actually works. You can just use /:framesLoaded instead.

Movie clips (all together now- aka sprites) have properties. You can read all of them (or can you?), you can set some of them, and here they are:

  • x

  • y

  • xScale

  • yScale

  • currentFrame - (read-only)

  • totalFrames - (read-only)

  • alpha - transparency level

  • visible - 1=on, 0=off (?)

  • width - (read-only)

  • height - (read-only)

  • rotation

  • target - (read-only) (???)

  • framesLoaded - (read-only)

  • name

  • dropTarget - (read-only) (???)

  • url - (read-only) (???)

  • highQuality - 1=high, 0=low (?)

  • focusRect - (???)

  • soundBufTime - (???)

So, setting a sprite's x position is as simple as /box.x = 100;. Why the slash in front of the box, though? That's how flash keeps track of the sprites in the movie, just like a Unix filesystem- here it shows that box is at the top level. If the sprite named box had another sprite named biff inside of it, you'd set its x position with /box/biff.x = 100;. At least, I think so; correct me if I'm wrong here.

This simple example will move the red square across the window.

Beispiel 1. swfaction() example

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");

  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example tracks down your mouse on the screen.

Beispiel 2. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);

  /* mouse tracking sprite - empty, but follows mouse so we can
     get its x and y coordinates */

  $i = $m->add(new SWFSprite());
  $i->setName('mouse');

  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' means lock sprite to the mouse */
  "));

  /* might as well turn off antialiasing, since these are just squares. */

  $m->add(new SWFAction("
    this.quality = 0;
  "));

  /* morphing box */
  $r = new SWFMorph();
  $s = $r->getShape1();

  /* Note this is backwards from normal shapes.  No idea why. */
  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);

  $s = $r->getShape2();

  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);

  /* sprite container for morphing box -
     this is just a timeline w/ the box morphing */

  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);

  for ($n=0; $n<=20; ++$n) {
    $i->setRatio($n/20);
    $box->nextFrame();
  }

  /* this container sprite allows us to use the same action code many times */

  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');

  $cell->add(new SWFAction("

    setTarget('box');

    /* ...x means the x coordinate of the parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "));

  $cell->nextFrame();
  $cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "));

  $cell->nextFrame();

  /* finally, add a bunch of the cells to the movie */

  for ($x=0; $x<12; ++$x) {
    for ($y=0; $y<8; ++$y) {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }

  $m->nextFrame();

  $m->add(new SWFAction("

    gotoFrame(1);
    play();

  "));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Same as above, but with nice colored balls...

Beispiel 3. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "));

  // mouse tracking sprite
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');

  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);

  // gradient shape thing
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);

  // need to make this a sprite so we can multColor it
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();

  // put the shape in here, each frame a different color
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);

  $i->multColor(1.0, 1.0, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 0.75, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();

  // finally, this one contains the action code
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();

  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();

  $m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if (num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "));

  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
ming_useswfversion | Nach oben | SWFBitmap->getHeight


SWFBitmap->getHeight

(no version information, might be only in CVS)

SWFBitmap->getHeight -- Returns the bitmap's height.

Description

int swfbitmap->getheight ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbitmap->getheight() returns the bitmap's height in pixels.

See also swfbitmap->getwidth().

Zurück | Zum Anfang | Nach vorne
SWFAction | Nach oben | SWFBitmap->getWidth


SWFBitmap->getWidth

(no version information, might be only in CVS)

SWFBitmap->getWidth -- Returns the bitmap's width.

Description

int swfbitmap->getwidth ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbitmap->getwidth() returns the bitmap's width in pixels.

See also swfbitmap->getheight().

Zurück | Zum Anfang | Nach vorne
SWFBitmap->getHeight | Nach oben | SWFBitmap


SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Loads Bitmap object

Description

new swfbitmap ( string filename [, int alphafilename])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbitmap() creates a new SWFBitmap object from the Jpeg or DBL file named filename. alphafilename indicates a MSK file to be used as an alpha mask for a Jpeg image.

Anmerkung: We can only deal with baseline (frame 0) jpegs, no baseline optimized or progressive scan jpegs!

SWFBitmap has the following methods : swfbitmap->getwidth() and swfbitmap->getheight().

You can't import png images directly, though- have to use the png2dbl utility to make a dbl ("define bits lossless") file from the png. The reason for this is that I don't want a dependency on the png library in ming- autoconf should solve this, but that's not set up yet.

Beispiel 1. Import PNG files

<?php
  $s = new SWFShape();
  $f = $s->addFill(new SWFBitmap("png.dbl"));
  $s->setRightFill($f);

  $s->drawLine(32, 0);
  $s->drawLine(0, 32);
  $s->drawLine(-32, 0);
  $s->drawLine(0, -32);

  $m = new SWFMovie();
  $m->setDimension(32, 32);
  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

And you can put an alpha mask on a jpeg fill.

Beispiel 2. swfbitmap() example

<?php

  $s = new SWFShape();

  // .msk file generated with "gif2mask" utility
  $f = $s->addFill(new SWFBitmap("alphafill.jpg", "alphafill.msk"));
  $s->setRightFill($f);

  $s->drawLine(640, 0);
  $s->drawLine(0, 480);
  $s->drawLine(-640, 0);
  $s->drawLine(0, -480);

  $c = new SWFShape();
  $c->setRightFill($c->addFill(0x99, 0x99, 0x99));
  $c->drawLine(40, 0);
  $c->drawLine(0, 40);
  $c->drawLine(-40, 0);
  $c->drawLine(0, -40);

  $m = new SWFMovie();
  $m->setDimension(640, 480);
  $m->setBackground(0xcc, 0xcc, 0xcc);

  // draw checkerboard background
  for ($y=0; $y<480; $y+=40) {
    for ($x=0; $x<640; $x+=80) {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }

    $y+=40;

    for ($x=40; $x<640; $x+=80) {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }
  }

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFBitmap->getWidth | Nach oben | swfbutton_keypress


swfbutton_keypress

(PHP 4 >= 4.0.5)

swfbutton_keypress -- Returns the action flag for keyPress(char)

Description

int swfbutton_keypress ( string str)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
SWFBitmap | Nach oben | SWFbutton->addAction


SWFbutton->addAction

(no version information, might be only in CVS)

SWFbutton->addAction -- Adds an action

Description

void swfbutton->addaction ( resource action, int flags)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbutton->addaction() adds the action action to this button for the given conditions. The following flags are valid: SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT and SWFBUTTON_DRAGOVER.

See also swfbutton->addshape() and swfaction().

Zurück | Zum Anfang | Nach vorne
swfbutton_keypress | Nach oben | SWFbutton->addShape


SWFbutton->addShape

(no version information, might be only in CVS)

SWFbutton->addShape -- Adds a shape to a button

Description

void swfbutton->addshape ( resource shape, int flags)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbutton->addshape() adds the shape shape to this button. The following flags' values are valid: SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN or SWFBUTTON_HIT. SWFBUTTON_HIT isn't ever displayed, it defines the hit region for the button. That is, everywhere the hit shape would be drawn is considered a "touchable" part of the button.

Zurück | Zum Anfang | Nach vorne
SWFbutton->addAction | Nach oben | SWFbutton->setAction


SWFbutton->setAction

(no version information, might be only in CVS)

SWFbutton->setAction -- Sets the action

Description

void swfbutton->setaction ( resource action)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbutton->setaction() sets the action to be performed when the button is clicked. Alias for addAction(shape, SWFBUTTON_MOUSEUP). action is a swfaction().

See also swfbutton->addshape() and swfaction().

Zurück | Zum Anfang | Nach vorne
SWFbutton->addShape | Nach oben | SWFbutton->setdown


SWFbutton->setdown

(no version information, might be only in CVS)

SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN)

Description

void swfbutton->setdown ( resource shape)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbutton->setdown() alias for addShape(shape, SWFBUTTON_DOWN).

See also swfbutton->addshape() and swfaction().

Zurück | Zum Anfang | Nach vorne
SWFbutton->setAction | Nach oben | SWFbutton->setHit


SWFbutton->setHit

(no version information, might be only in CVS)

SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)

Description

void swfbutton->sethit ( resource shape)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbutton->sethit() alias for addShape(shape, SWFBUTTON_HIT).

See also swfbutton->addshape() and swfaction().

Zurück | Zum Anfang | Nach vorne
SWFbutton->setdown | Nach oben | SWFbutton->setOver


SWFbutton->setOver

(no version information, might be only in CVS)

SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)

Description

void swfbutton->setover ( resource shape)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbutton->setover() alias for addShape(shape, SWFBUTTON_OVER).

See also swfbutton->addshape() and swfaction().

Zurück | Zum Anfang | Nach vorne
SWFbutton->setHit | Nach oben | SWFbutton->setUp


SWFbutton->setUp

(no version information, might be only in CVS)

SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)

Description

void swfbutton->setup ( resource shape)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbutton->setup() alias for addShape(shape, SWFBUTTON_UP).

See also swfbutton->addshape() and swfaction().

Zurück | Zum Anfang | Nach vorne
SWFbutton->setOver | Nach oben | SWFbutton


SWFbutton

(PHP 4 >= 4.0.5)

SWFbutton -- Creates a new Button.

Description

new swfbutton ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfbutton() creates a new Button. Roll over it, click it, see it call action code. Swank.

SWFButton has the following methods : swfbutton->addshape(),
swfbutton->setup(), swfbutton->setover()
swfbutton->setdown(), swfbutton->sethit()
swfbutton->setaction() and
swfbutton->addaction().

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Beispiel 1. swfbutton() example

<?php

  $f = new SWFFont("_serif");

  $p = new SWFSprite();

  function label($string)
  {
    global $f;

    $t = new SWFTextField();
    $t->setFont($f);
    $t->addString($string);
    $t->setHeight(200);
    $t->setBounds(3200, 200);
    return $t;
  }

  function addLabel($string)
  {
    global $p;

    $i = $p->add(label($string));
    $p->nextFrame();
    $p->remove($i);
  }

  $p->add(new SWFAction("stop();"));
  addLabel("NO ACTION");
  addLabel("SWFBUTTON_MOUSEUP");
  addLabel("SWFBUTTON_MOUSEDOWN");
  addLabel("SWFBUTTON_MOUSEOVER");
  addLabel("SWFBUTTON_MOUSEOUT");
  addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
  addLabel("SWFBUTTON_DRAGOVER");
  addLabel("SWFBUTTON_DRAGOUT");

  function rect($r, $g, $b)
  {
    $s = new SWFShape();
    $s->setRightFill($s->addFill($r, $g, $b));
    $s->drawLine(600, 0);
    $s->drawLine(0, 600);
    $s->drawLine(-600, 0);
    $s->drawLine(0, -600);

    return $s;
  }

  $b = new SWFButton();
  $b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
  $b->addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
  $b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
            SWFBUTTON_MOUSEUP);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
        SWFBUTTON_MOUSEOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
        SWFBUTTON_MOUSEOUT);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
        SWFBUTTON_MOUSEUPOUTSIDE);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
        SWFBUTTON_DRAGOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
        SWFBUTTON_DRAGOUT);

  $m = new SWFMovie();
  $m->setDimension(4000, 3000);

  $i = $m->add($p);
  $i->setName("label");
  $i->moveTo(400, 1900);

  $i = $m->add($b);
  $i->moveTo(400, 900);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example will enables you to drag draw a big red button on the windows. No drag-and-drop, just moving around.

Beispiel 2. swfbutton->addaction() example

<?php

  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->drawLine(1000,0);
  $s->drawLine(0,1000);
  $s->drawLine(-1000,0);
  $s->drawLine(0,-1000);

  $b = new SWFButton();
  $b->addShape($s, SWFBUTTON_HIT | SWFBUTTON_UP | SWFBUTTON_DOWN | SWFBUTTON_OVER);

  $b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' means don't lock to mouse
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("stopDrag();"),
        SWFBUTTON_MOUSEUP | SWFBUTTON_MOUSEUPOUTSIDE);

  $p = new SWFSprite();
  $p->add($b);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->setName('test');
  $i->moveTo(1000,1000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFbutton->setUp | Nach oben | SWFDisplayItem->addColor


SWFDisplayItem->addColor

(no version information, might be only in CVS)

SWFDisplayItem->addColor -- Adds the given color to this item's color transform.

Description

void swfdisplayitem->addcolor ( [int red [, int green [, int blue [, int a]]]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->addcolor() adds the color to this item's color transform. The color is given in its RGB form.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Zurück | Zum Anfang | Nach vorne
SWFbutton | Nach oben | SWFDisplayItem->move


SWFDisplayItem->move

(no version information, might be only in CVS)

SWFDisplayItem->move -- Moves object in relative coordinates.

Description

void swfdisplayitem->move ( int dx, int dy)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->move() moves the current object by (dx,dy) from its current position.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->moveto().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->addColor | Nach oben | SWFDisplayItem->moveTo


SWFDisplayItem->moveTo

(no version information, might be only in CVS)

SWFDisplayItem->moveTo -- Moves object in global coordinates.

Description

void swfdisplayitem->moveto ( int x, int y)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->moveto() moves the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->move().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->move | Nach oben | SWFDisplayItem->multColor


SWFDisplayItem->multColor

(no version information, might be only in CVS)

SWFDisplayItem->multColor -- Multiplies the item's color transform.

Description

void swfdisplayitem->multcolor ( [int red [, int green [, int blue [, int a]]]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->multcolor() multiplies the item's color transform by the given values.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will modify your picture's atmospher to Halloween (use a landscape or bright picture).

Beispiel 1. swfdisplayitem->multcolor() example

<?php

  $b = new SWFBitmap("backyard.jpg");
  // note use your own picture :-)
  $s = new SWFShape();
  $s->setRightFill($s->addFill($b));
  $s->drawLine($b->getWidth(), 0);
  $s->drawLine(0, $b->getHeight());
  $s->drawLine(-$b->getWidth(), 0);
  $s->drawLine(0, -$b->getHeight());

  $m = new SWFMovie();
  $m->setDimension($b->getWidth(), $b->getHeight());

  $i = $m->add($s);

  for ($n=0; $n<=20; ++$n) {
    $i->multColor(1.0-$n/10, 1.0, 1.0);
    $i->addColor(0xff*$n/20, 0, 0);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->moveTo | Nach oben | SWFDisplayItem->remove


SWFDisplayItem->remove

(no version information, might be only in CVS)

SWFDisplayItem->remove -- Removes the object from the movie

Description

void swfdisplayitem->remove ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->remove() removes this object from the movie's display list.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfmovie->add().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->multColor | Nach oben | SWFDisplayItem->Rotate


SWFDisplayItem->Rotate

(no version information, might be only in CVS)

SWFDisplayItem->Rotate -- Rotates in relative coordinates.

Description

void swfdisplayitem->rotate ( float ddegrees)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->rotate() rotates the current object by ddegrees degrees from its current rotation.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->rotateto().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->remove | Nach oben | SWFDisplayItem->rotateTo


SWFDisplayItem->rotateTo

(no version information, might be only in CVS)

SWFDisplayItem->rotateTo -- Rotates the object in global coordinates.

Description

void swfdisplayitem->rotateto ( float degrees)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->rotateto() set the current object rotation to degrees degrees in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This example bring three rotating string from the background to the foreground. Pretty nice.

Beispiel 1. swfdisplayitem->rotateto() example

<?php
  $thetext =  "ming!";

  $f = new SWFFont("Bauhaus 93.fdb");

  $m = new SWFMovie();
  $m->setRate(24.0);
  $m->setDimension(2400, 1600);
  $m->setBackground(0xff, 0xff, 0xff);

  // functions with huge numbers of arbitrary
  // arguments are always a good idea!  Really!

  function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
  {
    global $f, $m;

    $t = new SWFText();
    $t->setFont($f);
    $t->setColor($r, $g, $b, $a);
    $t->setHeight(960);
    $t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
    $t->addString($string);

    // we can add properties just like a normal PHP var,
    // as long as the names aren't already used.
    // e.g., we can't set $i->scale, because that's a function

    $i = $m->add($t);
    $i->x = $x;
    $i->y = $y;
    $i->rot = $rot;
    $i->s = $scale;
    $i->rotateTo($rot);
    $i->scale($scale, $scale);

    // but the changes are local to the function, so we have to
    // return the changed object.  kinda weird..

    return $i;
}

  function step($i)
  {
    $oldrot = $i->rot;
    $i->rot = 19*$i->rot/20;
    $i->x = (19*$i->x + 1200)/20;
    $i->y = (19*$i->y + 800)/20;
    $i->s = (19*$i->s + 1.0)/20;

    $i->rotateTo($i->rot);
    $i->scaleTo($i->s, $i->s);
    $i->moveTo($i->x, $i->y);

    return $i;
  }

  // see?  it sure paid off in legibility:

  $i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
  $i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
  $i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);

  for ($i=1; $i<=100; ++$i) {
    $i1 = step($i1);
    $i2 = step($i2);
    $i3 = step($i3);

    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

See also swfdisplayitem->rotate().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->Rotate | Nach oben | SWFDisplayItem->scale


SWFDisplayItem->scale

(no version information, might be only in CVS)

SWFDisplayItem->scale -- Scales the object in relative coordinates.

Description

void swfdisplayitem->scale ( int dx, int dy)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->scale() scales the current object by (dx,dy) from its current size.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scaleto().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->rotateTo | Nach oben | SWFDisplayItem->scaleTo


SWFDisplayItem->scaleTo

(no version information, might be only in CVS)

SWFDisplayItem->scaleTo -- Scales the object in global coordinates.

Description

void swfdisplayitem->scaleto ( int x, int y)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->scaleto() scales the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scale().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->scale | Nach oben | SWFDisplayItem->setDepth


SWFDisplayItem->setDepth

(no version information, might be only in CVS)

SWFDisplayItem->setDepth -- Sets z-order

Description

void swfdisplayitem->setdepth ( float depth)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->rotate() sets the object's z-order to depth. Depth defaults to the order in which instances are created (by adding a shape/text to a movie)- newer ones are on top of older ones. If two objects are given the same depth, only the later-defined one can be moved.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->scaleTo | Nach oben | SWFDisplayItem->setName


SWFDisplayItem->setName

(no version information, might be only in CVS)

SWFDisplayItem->setName -- Sets the object's name

Description

void swfdisplayitem->setname ( string name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->setname() sets the object's name to name, for targetting with action script. Only useful on sprites.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->setDepth | Nach oben | SWFDisplayItem->setRatio


SWFDisplayItem->setRatio

(no version information, might be only in CVS)

SWFDisplayItem->setRatio -- Sets the object's ratio.

Description

void swfdisplayitem->setratio ( float ratio)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->setratio() sets the object's ratio to ratio. Obviously only useful for morphs.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will morph nicely three concentric circles.

Beispiel 1. swfdisplayitem->setname() example

<?php

  $p = new SWFMorph();

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0xff, 0xff);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0xff, 0xff, 0xff);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0xff, 0xff, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape1();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0, 0);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0, 0xff, 0);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0, 0, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape2();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $f->skewXTo(1.0);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m = new SWFMovie();
  $m->setDimension(320, 240);
  $i = $m->add($p);
  $i->moveTo(160, 120);

  for ($n=0; $n<=1.001; $n+=0.01) {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->setName | Nach oben | SWFDisplayItem->skewX


SWFDisplayItem->skewX

(no version information, might be only in CVS)

SWFDisplayItem->skewX -- Sets the X-skew.

Description

void swfdisplayitem->skewx ( float ddegrees)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->skewx() adds ddegrees to current x-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->setRatio | Nach oben | SWFDisplayItem->skewXTo


SWFDisplayItem->skewXTo

(no version information, might be only in CVS)

SWFDisplayItem->skewXTo -- Sets the X-skew.

Description

void swfdisplayitem->skewxto ( float degrees)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->skewxto() sets the x-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more forward, less is more backward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->skewX | Nach oben | SWFDisplayItem->skewY


SWFDisplayItem->skewY

(no version information, might be only in CVS)

SWFDisplayItem->skewY -- Sets the Y-skew.

Description

void swfdisplayitem->skewy ( float ddegrees)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->skewy() adds ddegrees to current y-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewyto(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->skewXTo | Nach oben | SWFDisplayItem->skewYTo


SWFDisplayItem->skewYTo

(no version information, might be only in CVS)

SWFDisplayItem->skewYTo -- Sets the Y-skew.

Description

void swfdisplayitem->skewyto ( float degrees)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem->skewyto() sets the y-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more upward, less is more downward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewy(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->skewY | Nach oben | SWFDisplayItem


SWFDisplayItem

(no version information, might be only in CVS)

SWFDisplayItem -- Creates a new displayitem object.

Description

new swfdisplayitem ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfdisplayitem() creates a new swfdisplayitem object.

Here's where all the animation takes place. After you define a shape, a text object, a sprite, or a button, you add it to the movie, then use the returned handle to move, rotate, scale, or skew the thing.

SWFDisplayItem has the following methods : swfdisplayitem->move(),
swfdisplayitem->moveto(), swfdisplayitem->scaleto(),
swfdisplayitem->scale(), swfdisplayitem->rotate(),
swfdisplayitem->rotateto(), swfdisplayitem->skewxto(),
swfdisplayitem->skewx(), swfdisplayitem->skewyto()
swfdisplayitem->skewyto(), swfdisplayitem->setdepth()
swfdisplayitem->remove(), swfdisplayitem->setname()
swfdisplayitem->setratio(), swfdisplayitem->addcolor()
and swfdisplayitem->multcolor().

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem->skewYTo | Nach oben | SWFFill->moveTo


SWFFill->moveTo

(no version information, might be only in CVS)

SWFFill->moveTo -- Moves fill origin

Description

void swffill->moveto ( int x, int y)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swffill->moveto() moves fill's origin to (x,y) in global coordinates.

Zurück | Zum Anfang | Nach vorne
SWFDisplayItem | Nach oben | SWFFill->rotateTo


SWFFill->rotateTo

(no version information, might be only in CVS)

SWFFill->rotateTo -- Sets fill's rotation

Description

void swffill->rotateto ( float degrees)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swffill->rotateto() sets fill's rotation to degrees degrees.

Zurück | Zum Anfang | Nach vorne
SWFFill->moveTo | Nach oben | SWFFill->scaleTo


SWFFill->scaleTo

(no version information, might be only in CVS)

SWFFill->scaleTo -- Sets fill's scale

Description

void swffill->scaleto ( int x, int y)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swffill->scaleto() sets fill's scale to x in the x-direction, y in the y-direction.

Zurück | Zum Anfang | Nach vorne
SWFFill->rotateTo | Nach oben | SWFFill->skewXTo


SWFFill->skewXTo

(no version information, might be only in CVS)

SWFFill->skewXTo -- Sets fill x-skew

Description

void swffill->skewxto ( float x)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swffill->skewxto() sets fill x-skew to x. For x is 1.0, it is a 45-degree forward slant. More is more forward, less is more backward.

Zurück | Zum Anfang | Nach vorne
SWFFill->scaleTo | Nach oben | SWFFill->skewYTo


SWFFill->skewYTo

(no version information, might be only in CVS)

SWFFill->skewYTo -- Sets fill y-skew

Description

void swffill->skewyto ( float y)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swffill->skewyto() sets fill y-skew to y. For y is 1.0, it is a 45-degree upward slant. More is more upward, less is more downward.

Zurück | Zum Anfang | Nach vorne
SWFFill->skewXTo | Nach oben | SWFFill


SWFFill

(PHP 4 >= 4.0.5)

SWFFill -- Loads SWFFill object

Description

new SWFFill ( void )

The swffill() object allows you to transform (scale, skew, rotate) bitmap and gradient fills. swffill() objects are created by the swfshape->addfill() methods.

SWFFill has the following methods : swffill->moveto() and swffill->scaleto(), swffill->rotateto(), swffill->skewxto() and swffill->skewyto().

Zurück | Zum Anfang | Nach vorne
SWFFill->skewYTo | Nach oben | swffont->getwidth


swffont->getwidth

(no version information, might be only in CVS)

swffont->getwidth -- Returns the string's width

Description

int swffont->getwidth ( string string)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swffont->getwidth() returns the string string's width, using font's default scaling. You'll probably want to use the swftext() version of this method which uses the text object's scale.

Zurück | Zum Anfang | Nach vorne
SWFFill | Nach oben | SWFFont


SWFFont

(PHP 4 >= 4.0.5)

SWFFont -- Loads a font definition

Description

new swffont ( string filename)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

If filename is the name of an FDB file (i.e., it ends in ".fdb"), load the font definition found in said file. Otherwise, create a browser-defined font reference.

FDB ("font definition block") is a very simple wrapper for the SWF DefineFont2 block which contains a full description of a font. One may create FDB files from SWT Generator template files with the included makefdb utility- look in the util directory off the main ming distribution directory.

Browser-defined fonts don't contain any information about the font other than its name. It is assumed that the font definition will be provided by the movie player. The fonts _serif, _sans, and _typewriter should always be available. For example:
<?php
$f = newSWFFont("_sans");
?>
will give you the standard sans-serif font, probably the same as what you'd get with <font name="sans-serif"> in HTML.

swffont() returns a reference to the font definition, for use in the swftext->setfont() and the swftextfield->setfont() methods.

SWFFont has the following methods : swffont->getwidth().

Zurück | Zum Anfang | Nach vorne
swffont->getwidth | Nach oben | SWFGradient->addEntry


SWFGradient->addEntry

(no version information, might be only in CVS)

SWFGradient->addEntry -- Adds an entry to the gradient list.

Description

void swfgradient->addentry ( float ratio, int red, int green, int blue [, int a])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfgradient->addentry() adds an entry to the gradient list. ratio is a number between 0 and 1 indicating where in the gradient this color appears. Thou shalt add entries in order of increasing ratio.

red, green, blue is a color (RGB mode). Last parameter a is optional.

Zurück | Zum Anfang | Nach vorne
SWFFont | Nach oben | SWFGradient


SWFGradient

(PHP 4 >= 4.0.5)

SWFGradient -- Creates a gradient object

Description

new swfgradient ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfgradient() creates a new SWFGradient object.

After you've added the entries to your gradient, you can use the gradient in a shape fill with the swfshape->addfill() method.

SWFGradient has the following methods : swfgradient->addentry().

This simple example will draw a big black-to-white gradient as background, and a reddish disc in its center.

Beispiel 1. swfgradient() example

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // first gradient- black to white
  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(1.0, 0xff, 0xff, 0xff);

  $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT);
  $f->scaleTo(0.01);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  $s = new SWFShape();

  // second gradient- radial gradient from red to transparent
  $g = new SWFGradient();
  $g->addEntry(0.0, 0xff, 0, 0, 0xff);
  $g->addEntry(1.0, 0xff, 0, 0, 0);

  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.005);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFGradient->addEntry | Nach oben | SWFMorph->getshape1


SWFMorph->getshape1

(no version information, might be only in CVS)

SWFMorph->getshape1 -- Gets a handle to the starting shape

Description

mixed swfmorph->getshape1 ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmorph->getshape1() gets a handle to the morph's starting shape. swfmorph->getshape1() returns an swfshape() object.

Zurück | Zum Anfang | Nach vorne
SWFGradient | Nach oben | SWFMorph->getshape2


SWFMorph->getshape2

(no version information, might be only in CVS)

SWFMorph->getshape2 -- Gets a handle to the ending shape

Description

mixed swfmorph->getshape2 ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmorph->getshape2() gets a handle to the morph's ending shape. swfmorph->getshape2() returns an swfshape() object.

Zurück | Zum Anfang | Nach vorne
SWFMorph->getshape1 | Nach oben | SWFMorph


SWFMorph

(PHP 4 >= 4.0.5)

SWFMorph -- Creates a new SWFMorph object.

Description

new swfmorph ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmorph() creates a new SWFMorph object.

Also called a "shape tween". This thing lets you make those tacky twisting things that make your computer choke. Oh, joy!

The methods here are sort of weird. It would make more sense to just have newSWFMorph(shape1, shape2);, but as things are now, shape2 needs to know that it's the second part of a morph. (This, because it starts writing its output as soon as it gets drawing commands- if it kept its own description of its shapes and wrote on completion this and some other things would be much easier.)

SWFMorph has the following methods : swfmorph->getshape1() and swfmorph->getshape1().

This simple example will morph a big red square into a smaller blue black-bordered square.

Beispiel 1. swfmorph() example

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0, 0, 0, 0);

  /* Note that this is backwards from normal shapes (left instead of right).
     I have no idea why, but this seems to work.. */

  $s->setLeftFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-1000,-1000);
  $s->drawLine(2000,0);
  $s->drawLine(0,2000);
  $s->drawLine(-2000,0);
  $s->drawLine(0,-2000);

  $s = $p->getShape2();
  $s->setLine(60,0,0,0);
  $s->setLeftFill($s->addFill(0, 0, 0xff));
  $s->movePenTo(0,-1000);
  $s->drawLine(1000,1000);
  $s->drawLine(-1000,1000);
  $s->drawLine(-1000,-1000);
  $s->drawLine(1000,-1000);

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setBackground(0xff, 0xff, 0xff);

  $i = $m->add($p);
  $i->moveTo(1500,1000);

  for ($r=0.0; $r<=1.0; $r+=0.1) {
    $i->setRatio($r);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFMorph->getshape2 | Nach oben | SWFMovie->add


SWFMovie->add

(no version information, might be only in CVS)

SWFMovie->add -- Adds any type of data to a movie.

Description

void swfmovie->add ( resource instance)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->add() adds instance to the current movie. instance is any type of data : Shapes, text, fonts, etc. must all be added to the movie to make this work.

For displayable types (shape, text, button, sprite), this returns an swfdisplayitem(), a handle to the object in a display list. Thus, you can add the same shape to a movie multiple times and get separate handles back for each separate instance.

See also all other objects (adding this later), and swfmovie->remove()

See examples in : swfdisplayitem->rotateto() and swfshape->addfill().

Zurück | Zum Anfang | Nach vorne
SWFMorph | Nach oben | SWFMovie->nextframe


SWFMovie->nextframe

(no version information, might be only in CVS)

SWFMovie->nextframe -- Moves to the next frame of the animation.

Description

void swfmovie->nextframe ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->nextframe() moves to the next frame of the animation.

Zurück | Zum Anfang | Nach vorne
SWFMovie->add | Nach oben | SWFMovie->output


SWFMovie->output

(no version information, might be only in CVS)

SWFMovie->output -- Dumps your lovingly prepared movie out.

Description

void swfmovie->output ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->output() dumps your lovingly prepared movie out. In PHP, preceding this with the command
<?php
header('Content-type: application/x-shockwave-flash');
?>
convinces the browser to display this as a flash movie.

See also swfmovie->save().

See examples in :
swfmovie->streammp3(),
swfdisplayitem->rotateto(),
swfaction()...
Any example will use this method.

Zurück | Zum Anfang | Nach vorne
SWFMovie->nextframe | Nach oben | swfmovie->remove


swfmovie->remove

(no version information, might be only in CVS)

swfmovie->remove -- Removes the object instance from the display list.

Description

void swfmovie->remove ( resource instance)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->remove() removes the object instance instance from the display list.

See also swfmovie->add().

Zurück | Zum Anfang | Nach vorne
SWFMovie->output | Nach oben | SWFMovie->save


SWFMovie->save

(no version information, might be only in CVS)

SWFMovie->save -- Saves your movie in a file.

Description

void swfmovie->save ( string filename)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->save() saves your movie to the file named filename.

See also output().

Zurück | Zum Anfang | Nach vorne
swfmovie->remove | Nach oben | SWFMovie->setbackground


SWFMovie->setbackground

(no version information, might be only in CVS)

SWFMovie->setbackground -- Sets the background color.

Description

void swfmovie->setbackground ( int red, int green, int blue)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->setbackground() sets the background color. Why is there no rgba version? Think about it. (Actually, that's not such a dumb question after all- you might want to let the HTML background show through. There's a way to do that, but it only works on IE4. Search the http://www.macromedia.com/ site for details.)

Zurück | Zum Anfang | Nach vorne
SWFMovie->save | Nach oben | SWFMovie->setdimension


SWFMovie->setdimension

(no version information, might be only in CVS)

SWFMovie->setdimension -- Sets the movie's width and height.

Description

void swfmovie->setdimension ( int width, int height)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->setdimension() sets the movie's width to width and height to height.

Zurück | Zum Anfang | Nach vorne
SWFMovie->setbackground | Nach oben | SWFMovie->setframes


SWFMovie->setframes

(no version information, might be only in CVS)

SWFMovie->setframes -- Sets the total number of frames in the animation.

Description

void swfmovie->setframes ( string numberofframes)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->setframes() sets the total number of frames in the animation to numberofframes.

Zurück | Zum Anfang | Nach vorne
SWFMovie->setdimension | Nach oben | SWFMovie->setrate


SWFMovie->setrate

(no version information, might be only in CVS)

SWFMovie->setrate -- Sets the animation's frame rate.

Description

void swfmovie->setrate ( int rate)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->setrate() sets the frame rate to rate, in frame per seconds. Animation will slow down if the player can't render frames fast enough- unless there's a streaming sound, in which case display frames are sacrificed to keep sound from skipping.

Zurück | Zum Anfang | Nach vorne
SWFMovie->setframes | Nach oben | SWFMovie->streammp3


SWFMovie->streammp3

(no version information, might be only in CVS)

SWFMovie->streammp3 -- Streams a MP3 file.

Description

void swfmovie->streammp3 ( string mp3FileName)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie->streammp3() streams the mp3 file mp3FileName. Not very robust in dealing with oddities (can skip over an initial ID3 tag, but that's about it). Like swfshape->addjpegfill(), this isn't a stable function- we'll probably need to make a separate SWFSound object to contain sound types.

Note that the movie isn't smart enough to put enough frames in to contain the entire mp3 stream- you'll have to add (length of song * frames per second) frames to get the entire stream in.

Yes, now you can use ming to put that rock and roll devil worship music into your SWF files. Just don't tell the RIAA.

Beispiel 1. swfmovie->streammp3() example

<?php
  $m = new SWFMovie();
  $m->setRate(12.0);
  $m->streamMp3("distortobass.mp3");
  // use your own MP3

  // 11.85 seconds at 12.0 fps = 142 frames
  $m->setFrames(142);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFMovie->setrate | Nach oben | SWFMovie


SWFMovie

(PHP 4 >= 4.0.5)

SWFMovie -- Creates a new movie object, representing an SWF version 4 movie.

Description

new swfmovie ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfmovie() creates a new movie object, representing an SWF version 4 movie.

SWFMovie has the following methods :
swfmovie->output(),swfmovie->save(),
swfmovie->add(), swfmovie->remove(),
swfmovie->nextframe(), swfmovie->setbackground(),
swfmovie->setrate(), swfmovie->setdimension(),
swfmovie->setframes() and swfmovie->streammp3().

See examples in : swfdisplayitem->rotateto(), swfshape->setline(), swfshape->addfill()... Any example will use this object.

Zurück | Zum Anfang | Nach vorne
SWFMovie->streammp3 | Nach oben | SWFShape->addFill


SWFShape->addFill

(no version information, might be only in CVS)

SWFShape->addFill -- Adds a solid fill to the shape.

Description

void swfshape->addfill ( int red, int green, int blue [, int a])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

void swfshape->addfill ( SWFbitmap bitmap [, int flags])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

void swfshape->addfill ( SWFGradient gradient [, int flags])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfshape->addfill() adds a solid fill to the shape's list of fill styles. swfshape->addfill() accepts three different types of arguments.

red, green, blue is a color (RGB mode). Last parameter a is optional.

The bitmap argument is an swfbitmap() object. The flags argument can be one of the following values : SWFFILL_CLIPPED_BITMAP or SWFFILL_TILED_BITMAP. Default is SWFFILL_TILED_BITMAP. I think.

The gradient argument is an swfgradient() object. The flags argument can be one of the following values : SWFFILL_RADIAL_GRADIENT or SWFFILL_LINEAR_GRADIENT. Default is SWFFILL_LINEAR_GRADIENT. I'm sure about this one. Really.

swfshape->addfill() returns an swffill()
object for use with the swfshape->setleftfill()
and swfshape->setrightfill() functions
described below.

See also swfshape->setleftfill() and swfshape->setrightfill().

This simple example will draw a frame on a bitmap. Ah, here's another buglet in the flash player- it doesn't seem to care about the second shape's bitmap's transformation in a morph. According to spec, the bitmap should stretch along with the shape in this example..

Beispiel 1. swfshape->addfill() example

<?php

  $p = new SWFMorph();

  $b = new SWFBitmap("alphafill.jpg");
  // use your own bitmap
  $width = $b->getWidth();
  $height = $b->getHeight();

  $s = $p->getShape1();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);
  $f->moveTo(-$width/2, -$height/4);
  $f->scaleTo(1.0, 0.5);
  $s->setLeftFill($f);
  $s->movePenTo(-$width/2, -$height/4);
  $s->drawLine($width, 0);
  $s->drawLine(0, $height/2);
  $s->drawLine(-$width, 0);
  $s->drawLine(0, -$height/2);

  $s = $p->getShape2();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);

  // these two have no effect!
  $f->moveTo(-$width/4, -$height/2);
  $f->scaleTo(0.5, 1.0);

  $s->setLeftFill($f);
  $s->movePenTo(-$width/4, -$height/2);
  $s->drawLine($width/2, 0);
  $s->drawLine(0, $height);
  $s->drawLine(-$width/2, 0);
  $s->drawLine(0, -$height);

  $m = new SWFMovie();
  $m->setDimension($width, $height);
  $i = $m->add($p);
  $i->moveTo($width/2, $height/2);

  for ($n=0; $n<1.001; $n+=0.03) {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFMovie | Nach oben | SWFShape->drawCurve


SWFShape->drawCurve

(no version information, might be only in CVS)

SWFShape->drawCurve -- Draws a curve (relative).

Description

void swfshape->drawcurve ( int controldx, int controldy, int anchordx, int anchordy)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfshape->drawcurve() draws a quadratic curve (using the current line style,set by swfshape->setline()) from the current pen position to the relative position (anchorx,anchory) using relative control point (controlx,controly). That is, head towards the control point, then smoothly turn to the anchor point.

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Zurück | Zum Anfang | Nach vorne
SWFShape->addFill | Nach oben | SWFShape->drawCurveTo


SWFShape->drawCurveTo

(no version information, might be only in CVS)

SWFShape->drawCurveTo -- Draws a curve.

Description

void swfshape->drawcurveto ( int controlx, int controly, int anchorx, int anchory)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfshape->drawcurveto() draws a quadratic curve (using the current line style, set by swfshape->setline()) from the current pen position to (anchorx,anchory) using (controlx,controly) as a control point. That is, head towards the control point, then smoothly turn to the anchor point.

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Zurück | Zum Anfang | Nach vorne
SWFShape->drawCurve | Nach oben | SWFShape->drawLine


SWFShape->drawLine

(no version information, might be only in CVS)

SWFShape->drawLine -- Draws a line (relative).

Description

void swfshape->drawline ( int dx, int dy)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfshape->drawline() draws a line (using the current line style set by swfshape->setline()) from the current pen position to displacement (dx,dy).

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawlineto().

Zurück | Zum Anfang | Nach vorne
SWFShape->drawCurveTo | Nach oben | SWFShape->drawLineTo


SWFShape->drawLineTo

(no version information, might be only in CVS)

SWFShape->drawLineTo -- Draws a line.

Description

void swfshape->drawlineto ( int x, int y)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfshape->setrightfill() draws a line (using the current line style, set by swfshape->setline()) from the current pen position to point (x,y) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawline().

Zurück | Zum Anfang | Nach vorne
SWFShape->drawLine | Nach oben | SWFShape->movePen


SWFShape->movePen

(no version information, might be only in CVS)

SWFShape->movePen -- Moves the shape's pen (relative).

Description

void swfshape->movepen ( int dx, int dy)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfshape->setrightfill() move the shape's pen from coordinates (current x,current y) to (current x + dx, current y + dy) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Zurück | Zum Anfang | Nach vorne
SWFShape->drawLineTo | Nach oben | SWFShape->movePenTo


SWFShape->movePenTo

(no version information, might be only in CVS)

SWFShape->movePenTo -- Moves the shape's pen.

Description

void swfshape->movepento ( int x, int y)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfshape->setrightfill() move the shape's pen to (x,y) in the shape's coordinate space.

See also
swfshape->movepen(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Zurück | Zum Anfang | Nach vorne
SWFShape->movePen | Nach oben | SWFShape->setLeftFill


SWFShape->setLeftFill

(no version information, might be only in CVS)

SWFShape->setLeftFill -- Sets left rasterizing color.

Description

void swfshape->setleftfill ( swfgradient fill)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

void swfshape->setleftfill ( int red, int green, int blue [, int a])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

What this nonsense is about is, every edge segment borders at most two fills. When rasterizing the object, it's pretty handy to know what those fills are ahead of time, so the swf format requires these to be specified.

swfshape->setleftfill() sets the fill on the left side of the edge- that is, on the interior if you're defining the outline of the shape in a counter-clockwise fashion. The fill object is an SWFFill object returned from one of the addFill functions above.

This seems to be reversed when you're defining a shape in a morph, though. If your browser crashes, just try setting the fill on the other side.

Shortcut for swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

See also swfshape->setrightfill().

Zurück | Zum Anfang | Nach vorne
SWFShape->movePenTo | Nach oben | SWFShape->setLine


SWFShape->setLine

(no version information, might be only in CVS)

SWFShape->setLine -- Sets the shape's line style.

Description

void swfshape->setline ( int width [, int red [, int green [, int blue [, int a]]]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfshape->setline() sets the shape's line style. width is the line's width. If width is 0, the line's style is removed (then, all other arguments are ignored). If width > 0, then line's color is set to red, green, blue. Last parameter a is optional.

swfshape->setline() accepts 1, 4 or 5 arguments (not 3 or 2).

You must declare all line styles before you use them (see example).

This simple example will draw a big "!#%*@", in funny colors and gracious style.

Beispiel 1. swfshape->setline() example

<?php
  $s = new SWFShape();
  $f1 = $s->addFill(0xff, 0, 0);
  $f2 = $s->addFill(0xff, 0x7f, 0);
  $f3 = $s->addFill(0xff, 0xff, 0);
  $f4 = $s->addFill(0, 0xff, 0);
  $f5 = $s->addFill(0, 0, 0xff);

  // bug: have to declare all line styles before you use them
  $s->setLine(40, 0x7f, 0, 0);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->setLine(40, 0, 0x7f, 0);
  $s->setLine(40, 0, 0, 0x7f);

  $f = new SWFFont('Techno.fdb');

  $s->setRightFill($f1);
  $s->setLine(40, 0x7f, 0, 0);
  $s->drawGlyph($f, '!');
  $s->movePen($f->getWidth('!'), 0);

  $s->setRightFill($f2);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->drawGlyph($f, '#');
  $s->movePen($f->getWidth('#'), 0);

  $s->setRightFill($f3);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->drawGlyph($f, '%');
  $s->movePen($f->getWidth('%'), 0);

  $s->setRightFill($f4);
  $s->setLine(40, 0, 0x7f, 0);
  $s->drawGlyph($f, '*');
  $s->movePen($f->getWidth('*'), 0);

  $s->setRightFill($f5);
  $s->setLine(40, 0, 0, 0x7f);
  $s->drawGlyph($f, '@');

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setRate(12.0);
  $i = $m->add($s);
  $i->moveTo(1500-$f->getWidth("!#%*@")/2, 1000+$f->getAscent()/2);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFShape->setLeftFill | Nach oben | SWFShape->setRightFill


SWFShape->setRightFill

(no version information, might be only in CVS)

SWFShape->setRightFill -- Sets right rasterizing color.

Description

void swfshape->setrightfill ( swfgradient fill)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

void swfshape->setrightfill ( int red, int green, int blue [, int a])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

See also swfshape->setleftfill().

Shortcut for swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Zurück | Zum Anfang | Nach vorne
SWFShape->setLine | Nach oben | SWFShape


SWFShape

(PHP 4 >= 4.0.5)

SWFShape -- Creates a new shape object.

Description

new swfshape ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfshape() creates a new shape object.

SWFShape has the following methods : swfshape->setline(),
swfshape->addfill(), swfshape->setleftfill(),
swfshape->setrightfill(), swfshape->movepento(),
swfshape->movepen(), swfshape->drawlineto(),
swfshape->drawline(), swfshape->drawcurveto()
and swfshape->drawcurve().

This simple example will draw a big red elliptic quadrant.

Beispiel 1. swfshape() example

<?php
  $s = new SWFShape();
  $s->setLine(40, 0x7f, 0, 0);
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(200, 200);
  $s->drawLineTo(6200, 200);
  $s->drawLineTo(6200, 4600);
  $s->drawCurveTo(200, 4600, 200, 200);

  $m = new SWFMovie();
  $m->setDimension(6400, 4800);
  $m->setRate(12.0);
  $m->add($s);
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFShape->setRightFill | Nach oben | swfsprite->add


swfsprite->add

(no version information, might be only in CVS)

swfsprite->add -- Adds an object to a sprite

Description

void swfsprite->add ( resource object)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfsprite->add() adds a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object.

For displayable types (swfshape(),
swfbutton(), swftext(),
swfaction() or swfsprite()),
this returns a handle  to the object in a display list.

Zurück | Zum Anfang | Nach vorne
SWFShape | Nach oben | SWFSprite->nextframe


SWFSprite->nextframe

(no version information, might be only in CVS)

SWFSprite->nextframe -- Moves to the next frame of the animation.

Description

void swfsprite->nextframe ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfsprite->setframes() moves to the next frame of the animation.

Zurück | Zum Anfang | Nach vorne
swfsprite->add | Nach oben | SWFSprite->remove


SWFSprite->remove

(no version information, might be only in CVS)

SWFSprite->remove -- Removes an object to a sprite

Description

void swfsprite->remove ( resource object)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfsprite->remove() remove a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object
from the sprite.

Zurück | Zum Anfang | Nach vorne
SWFSprite->nextframe | Nach oben | SWFSprite->setframes


SWFSprite->setframes

(no version information, might be only in CVS)

SWFSprite->setframes -- Sets the total number of frames in the animation.

Description

void swfsprite->setframes ( int numberofframes)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfsprite->setframes() sets the total number of frames in the animation to numberofframes.

Zurück | Zum Anfang | Nach vorne
SWFSprite->remove | Nach oben | SWFSprite


SWFSprite

(PHP 4 >= 4.0.5)

SWFSprite -- Creates a movie clip (a sprite)

Description

new swfsprite ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swfsprite() are also known as a "movie clip", this allows one to create objects which are animated in their own timelines. Hence, the sprite has most of the same methods as the movie.

swfsprite() has the following methods :
swfsprite->add(),
swfsprite->remove(), swfsprite->nextframe()
and swfsprite->setframes().

This simple example will spin gracefully a big red square.

Beispiel 1. swfsprite() example

<?php
  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->moveTo(1500, 1000);
  $i->setName("blah");

  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(3000, 2000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFSprite->setframes | Nach oben | SWFText->addString


SWFText->addString

(no version information, might be only in CVS)

SWFText->addString -- Draws a string

Description

void swftext->addstring ( string string)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftext->addstring() draws the string string at the current pen (cursor) location. Pen is at the baseline of the text; i.e., ascending text is in the -y direction.

Zurück | Zum Anfang | Nach vorne
SWFSprite | Nach oben | SWFText->getWidth


SWFText->getWidth

(no version information, might be only in CVS)

SWFText->getWidth -- Computes string's width

Description

void swftext->getwidth ( string string)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftext->addstring() returns the rendered width of the string string at the text object's current font, scale, and spacing settings.

Zurück | Zum Anfang | Nach vorne
SWFText->addString | Nach oben | SWFText->moveTo


SWFText->moveTo

(no version information, might be only in CVS)

SWFText->moveTo -- Moves the pen

Description

void swftext->moveto ( int x, int y)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftext->moveto() moves the pen (or cursor, if that makes more sense) to (x,y) in text object's coordinate space. If either is zero, though, value in that dimension stays the same. Annoying, should be fixed.

Zurück | Zum Anfang | Nach vorne
SWFText->getWidth | Nach oben | SWFText->setColor


SWFText->setColor

(no version information, might be only in CVS)

SWFText->setColor -- Sets the current font color

Description

void swftext->setcolor ( int red, int green, int blue [, int a])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftext->setspacing() changes the current text color. Default is black. I think. Color is represented using the RGB system.

Zurück | Zum Anfang | Nach vorne
SWFText->moveTo | Nach oben | SWFText->setFont


SWFText->setFont

(no version information, might be only in CVS)

SWFText->setFont -- Sets the current font

Description

void swftext->setfont ( string font)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftext->setfont() sets the current font to font.

Zurück | Zum Anfang | Nach vorne
SWFText->setColor | Nach oben | SWFText->setHeight


SWFText->setHeight

(no version information, might be only in CVS)

SWFText->setHeight -- Sets the current font height

Description

void swftext->setheight ( int height)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftext->setheight() sets the current font height to height. Default is 240.

Zurück | Zum Anfang | Nach vorne
SWFText->setFont | Nach oben | SWFText->setSpacing


SWFText->setSpacing

(no version information, might be only in CVS)

SWFText->setSpacing -- Sets the current font spacing

Description

void swftext->setspacing ( float spacing)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftext->setspacing() sets the current font spacing to spacingspacing. Default is 1.0. 0 is all of the letters written at the same point. This doesn't really work that well because it inflates the advance across the letter, doesn't add the same amount of spacing between the letters. I should try and explain that better, prolly. Or just fix the damn thing to do constant spacing. This was really just a way to figure out how letter advances work, anyway.. So nyah.

Zurück | Zum Anfang | Nach vorne
SWFText->setHeight | Nach oben | SWFText


SWFText

(PHP 4 >= 4.0.5)

SWFText -- Creates a new SWFText object.

Description

new swftext ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftext() creates a new SWFText object, fresh for manipulating.

SWFText has the following methods : swftext->setfont(),
swftext->setheight(), swftext->setspacing(),
swftext->setcolor(), swftext->moveto(),
swftext->addstring() and swftext->getwidth().

This simple example will draw a big yellow "PHP generates Flash with Ming" text, on white background.

Beispiel 1. swftext() example

<?php
  $f = new SWFFont("Techno.fdb");
  $t = new SWFText();
  $t->setFont($f);
  $t->moveTo(200, 2400);
  $t->setColor(0xff, 0xff, 0);
  $t->setHeight(1200);
  $t->addString("PHP generates Flash with Ming!!");

  $m = new SWFMovie();
  $m->setDimension(5400, 3600);

  $m->add($t);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Zurück | Zum Anfang | Nach vorne
SWFText->setSpacing | Nach oben | SWFTextField->addstring


SWFTextField->addstring

(no version information, might be only in CVS)

SWFTextField->addstring -- Concatenates the given string to the text field

Description

void swftextfield->addstring ( string string)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setname() concatenates the string string to the text field.

Zurück | Zum Anfang | Nach vorne
SWFText | Nach oben | SWFTextField->align


SWFTextField->align

(no version information, might be only in CVS)

SWFTextField->align -- Sets the text field alignment

Description

void swftextfield->align ( int alignement)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->align() sets the text field alignment to alignement. Valid values for alignement are : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

Zurück | Zum Anfang | Nach vorne
SWFTextField->addstring | Nach oben | SWFTextField->setbounds


SWFTextField->setbounds

(no version information, might be only in CVS)

SWFTextField->setbounds -- Sets the text field width and height

Description

void swftextfield->setbounds ( int width, int height)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setbounds() sets the text field width to width and height to height. If you don't set the bounds yourself, Ming makes a poor guess at what the bounds are.

Zurück | Zum Anfang | Nach vorne
SWFTextField->align | Nach oben | SWFTextField->setcolor


SWFTextField->setcolor

(no version information, might be only in CVS)

SWFTextField->setcolor -- Sets the color of the text field.

Description

void swftextfield->setcolor ( int red, int green, int blue [, int a])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setcolor() sets the color of the text field. Default is fully opaque black. Color is represented using RGB system.

Zurück | Zum Anfang | Nach vorne
SWFTextField->setbounds | Nach oben | SWFTextField->setFont


SWFTextField->setFont

(no version information, might be only in CVS)

SWFTextField->setFont -- Sets the text field font

Description

void swftextfield->setfont ( string font)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setfont() sets the text field font to the [browser-defined?] font font.

Zurück | Zum Anfang | Nach vorne
SWFTextField->setcolor | Nach oben | SWFTextField->setHeight


SWFTextField->setHeight

(no version information, might be only in CVS)

SWFTextField->setHeight -- Sets the font height of this text field font.

Description

void swftextfield->setheight ( int height)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setheight() sets the font height of this text field font to the given height height. Default is 240.

Zurück | Zum Anfang | Nach vorne
SWFTextField->setFont | Nach oben | SWFTextField->setindentation


SWFTextField->setindentation

(no version information, might be only in CVS)

SWFTextField->setindentation -- Sets the indentation of the first line.

Description

void swftextfield->setindentation ( int width)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setindentation() sets the indentation of the first line in the text field, to width.

Zurück | Zum Anfang | Nach vorne
SWFTextField->setHeight | Nach oben | SWFTextField->setLeftMargin


SWFTextField->setLeftMargin

(no version information, might be only in CVS)

SWFTextField->setLeftMargin -- Sets the left margin width of the text field.

Description

void swftextfield->setleftmargin ( int width)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setleftmargin() sets the left margin width of the text field to width. Default is 0.

Zurück | Zum Anfang | Nach vorne
SWFTextField->setindentation | Nach oben | SWFTextField->setLineSpacing


SWFTextField->setLineSpacing

(no version information, might be only in CVS)

SWFTextField->setLineSpacing -- Sets the line spacing of the text field.

Description

void swftextfield->setlinespacing ( int height)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setlinespacing() sets the line spacing of the text field to the height of height. Default is 40.

Zurück | Zum Anfang | Nach vorne
SWFTextField->setLeftMargin | Nach oben | SWFTextField->setMargins


SWFTextField->setMargins

(no version information, might be only in CVS)

SWFTextField->setMargins -- Sets the margins width of the text field.

Description

void swftextfield->setmargins ( int left, int right)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setmargins() set both margins at once, for the man on the go.

Zurück | Zum Anfang | Nach vorne
SWFTextField->setLineSpacing | Nach oben | SWFTextField->setname


SWFTextField->setname

(no version information, might be only in CVS)

SWFTextField->setname -- Sets the variable name

Description

void swftextfield->setname ( string name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setname() sets the variable name of this text field to name, for form posting and action scripting purposes.

Zurück | Zum Anfang | Nach vorne
SWFTextField->setMargins | Nach oben | SWFTextField->setrightMargin


SWFTextField->setrightMargin

(no version information, might be only in CVS)

SWFTextField->setrightMargin -- Sets the right margin width of the text field.

Description

void swftextfield->setrightmargin ( int width)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield->setrightmargin() sets the right margin width of the text field to width. Default is 0.

Zurück | Zum Anfang | Nach vorne
SWFTextField->setname | Nach oben | SWFTextField


SWFTextField

(PHP 4 >= 4.0.5)

SWFTextField -- Creates a text field object

Description

new swftextfield ( [int flags])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

swftextfield() creates a new text field object. Text Fields are less flexible than swftext() objects- they can't be rotated, scaled non-proportionally, or skewed, but they can be used as form entries, and they can use browser-defined fonts.

The optional flags change the text field's behavior. It has the following possibles values :

  • SWFTEXTFIELD_DRAWBOX draws the outline of the textfield

  • SWFTEXTFIELD_HASLENGTH

  • SWFTEXTFIELD_HTML allows text markup using HTML-tags

  • SWFTEXTFIELD_MULTILINE allows multiple lines

  • SWFTEXTFIELD_NOEDIT indicates that the field shouldn't be user-editable

  • SWFTEXTFIELD_NOSELECT makes the field non-selectable

  • SWFTEXTFIELD_PASSWORD obscures the data entry

  • SWFTEXTFIELD_WORDWRAP allows text to wrap

Flags are combined with the bitwise OR operation. For example,
<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>
creates a totally useless non-editable password field.

SWFTextField has the following methods : swftextfield->setfont(),
swftextfield->setbounds(), swftextfield->align(),
swftextfield->setheight(), swftextfield->setleftmargin(),
swftextfield->setrightmargin(), swftextfield->setmargins(),
swftextfield->setindentation(), swftextfield->setlinespacing(),
swftextfield->setcolor(), swftextfield->setname() and
swftextfield->addstring().

Zurück | Zum Anfang | Nach vorne
SWFTextField->setrightMargin | Nach oben | Sonstige Funktionen


Sonstige Funktionen

PHP Handbuch
Zurück Nach vorne

LXI. Sonstige Funktionen

Diese Funktionen stehen hier, weil sie in keine andere Kategorie passen.

Inhaltsverzeichnis
connection_aborted -- Ergibt TRUE, wenn die Client-Verbindung beendet wurde
connection_status -- Ergibt den Verbindungs-Status als Bit-Feld
connection_timeout -- Ergibt TRUE, wenn das Skript seinen Time-Out erreicht hat
constant -- Returns the value of a constant
define -- Definiert eine Konstante
defined -- Prüft, ob eine angegebene Konstante existiert
die -- Gibt eine Nachricht aus und beendet das aktuelle Skript
eval -- Wertet einen String aus, als wäre er PHP-Code
exit -- Beenden des aktuellen Skripts
get_browser -- Ermittelt die Möglichkeiten des Browsers eines Benutzers
highlight_file -- Syntax-Hervorhebung für eine Datei
highlight_string -- Hervorhebung der Syntax eines Strings
ignore_user_abort -- Stellt ein, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll
pack -- Packt Daten in einen Binär-String
show_source -- Syntax-Highlighting einer Datei
sleep -- Programmverzögerung
uniqid -- Erzeugt eine eindeutige ID
unpack -- Entpackt die Daten eines Binär-Strings
usleep -- Programm-Verzögerung in Mikrosekunden

Zurück | Zum Anfang | Nach vorne
SWFTextField | Nach oben | connection_aborted


connection_aborted

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

connection_aborted -- Ergibt TRUE, wenn die Client-Verbindung beendet wurde

Beschreibung:

int connection_aborted ( void )

Gibt TRUE zurück, wenn der Client nicht mehr verbunden ist. Siehe auch die Connection Handling-Beschreibung im Features-Kapitel für weitere Erläuterungen.

Zurück | Zum Anfang | Nach vorne
Sonstige Funktionen | Nach oben | connection_status


connection_status

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

connection_status -- Ergibt den Verbindungs-Status als Bit-Feld

Beschreibung:

int connection_status ( void )

Gibt den Verbindungs-Status als Bit-Feld zurück.Siehe auch die Connection Handling-Beschreibung im Features-Kapitel für weitere Erläuterungen.

Zurück | Zum Anfang | Nach vorne
connection_aborted | Nach oben | connection_timeout


connection_timeout

(PHP 3>= 3.0.7, PHP 4 <= 4.0.4)

connection_timeout -- Ergibt TRUE, wenn das Skript seinen Time-Out erreicht hat

Beschreibung:

int connection_timeout ( void )

Gibt TRUE zurück, wenn der Time-Out des Skripts erreicht ist. Siehe auch die Connection Handling-Beschreibung im Features-Kapitel für weitere Erläuterungen.

Zurück | Zum Anfang | Nach vorne
connection_status | Nach oben | constant


constant

(PHP 4 >= 4.0.4, PHP 5)

constant -- Returns the value of a constant

Description

mixed constant ( string name)

constant() will return the value of the constant indicated by name.

constant() is useful if you need to retrieve the value of a constant, but do not know its name. i.e. It is stored in a variable or returned by a function.

Beispiel 1. constant() example

<?php

define("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // same thing as the previous line

?>

See also define(), defined() and the section on Constants.

Zurück | Zum Anfang | Nach vorne
connection_timeout | Nach oben | define


define

(PHP 3, PHP 4 , PHP 5)

define -- Definiert eine Konstante

Beschreibung:

int define ( string name, mixed value [, int case_insensitive])

Definiert eine Konstante, ähnlich wie bei Variablen, ausser das:

  • Eine Konstante nicht mit einem '$' beginnt;

  • Auf eine Konstante überall zugegriffen werden kann, ohne allerdings den Auswertungsregeln von Variablen zu unterliegen;

  • Eine Konstante nicht umdefiniert oder zurück gesetzt werden kann, wenn sie einmal gesetzt wurde und

  • eine Konstante nur eindimensionale Werte (also keine Arrays) enthalten kann.

Der Konstanten-Name wird durch name angegeben. Der Wert wird durch value gesetzt.

Wenn der optional mögliche dritte Parameter case_insensitive den Wert 1 hat, wird die Konstante zwischen Groß- und Kleinschreibung unterschieden. Das ist auch die Voreinstellung (es wird dann also zwischen KONSTANTE und Konstante unterschieden).

Die Funktionalität des dritten Parameters scheint z.Zt. noch nicht richtig umgesetzt worden zu sein (Stand 03/2000).

Beispiel 1. Definition von Konstanten:

<?php
define ("KONSTANTE", "Hallo Welt.");
echo KONSTANTE; // outputs "Hallo Welt.";
?>

define() gibt bei erfolgreicher Zuweisung TRUE, sonst FALSE zurück.

Siehe auch unter defined() und im Abschnitt Konstanten.

Zurück | Zum Anfang | Nach vorne
constant | Nach oben | defined


defined

(PHP 3, PHP 4 , PHP 5)

defined -- Prüft, ob eine angegebene Konstante existiert

Beschreibung:

int defined ( string name)

Wenn die angegebene Konstante name existiert, wird TRUE zurück gegeben, ansonsten FALSE.

Siehe auch define() und den Abschnitt Konstanten.

Zurück | Zum Anfang | Nach vorne
define | Nach oben | die


die

(no version information, might be only in CVS)

die -- Gibt eine Nachricht aus und beendet das aktuelle Skript

Beschreibung:

void die ( string message)

Dieser Sprach-Konstrukt erzeugt eine Meldung und bricht das Parsing / die Abarbeitung des Skriptes ab (ohne Rückkehrmöglichkeit).

Beispiel 1. "Die"-Beispiel:

<?php
$filename = '/pfad/zu/dateiname';
$file = fopen ($filename, 'r')
    or die ("Kann die Datei ($filename) nicht öffnen.");
?>

Beachten sie auch die Funktion exit().

Zurück | Zum Anfang | Nach vorne
defined | Nach oben | eval


eval

(PHP 3, PHP 4, PHP 5 )

eval -- Wertet einen String aus, als wäre er PHP-Code

Beschreibung:

mixed eval ( string code_str)

eval() versucht, den in code_str enthaltenen String als PHP-Code auszuführen. Abgesehen von anderen Zwecken kann dies nützlich sein, um Code auszuführen, der aus einer Datenbank ausgelesen wird.

Beim Gebrauch von eval() gilt es einige Faktoren zu beachten. Die Zeichenkette code_str muss gültigen PHP-Code enthalten, einschließlich syntaktisch richtiger Begrenzungszeichen (also incl. ";"-Abschluss-Zeichen für einzelne Anweisungen, sonst bricht der PHP-Parser in der folgenden Zeile mit einem Fehler ab.

Beachten sie, dass die innerhalb von eval() vorgenommenen Variablen-Zuweisungen nach Abarbeitung auch im Hauptskript ihre Gültigkeit behalten.

Eine return-Angabe beendet sofort die Auswertung des Strings. Mit PHP4 können sie ein return verwenden, um das Ergebnis der Funktion eval() zu erhalten. In PHP3 ist eval() nämlich vom Typ void und liefert nichts zurück.

Beispiel 1. eval()-Beispiel (einfache Texteinfügung):

<?php
$string = 'Bierglas';
$name = 'Binding-Lager';
$str = 'Das ist mein $string, voll mit $name.<br>';
echo $str;
eval ("\$str = \"$str\";");
echo $str;
?>

Das obige Beispiel gibt aus:
Das ist mein $string, voll mit $name.
Das ist mein Bierglas, voll mit Binding-Lager.

Beachten sie bitte das Setzen des Begrenzungs-Zeichens ";" in code_str sowie den Gebrauch des "\"-Zeichens.

Zurück | Zum Anfang | Nach vorne
die | Nach oben | exit


exit

(PHP 3, PHP 4, PHP 5 )

exit -- Beenden des aktuellen Skripts

Beschreibung:

void exit ( void )

Mit exit() beenden sie - ohne Möglichkeit der Rückkehr - die Skriptausführung.

Beachten sie auch die Funktion die().

Zurück | Zum Anfang | Nach vorne
eval | Nach oben | get_browser


get_browser

(PHP 3, PHP 4 , PHP 5)

get_browser -- Ermittelt die Möglichkeiten des Browsers eines Benutzers

Beschreibung:

object get_browser ( [string user_agent])

get_browser() ermittelt die Möglichkeiten des auf das PHP-Skript zugreifenden Browsers. Dies geschieht durch Auslesen der zum Browser vorhandenen Werte aus der Datei browscap.ini. Per Voreinstellung wird der Wert von $HTTP_USER_AGENT als Browser-Typ benutzt. Dieses Verhalten können sie ändern (so z.B. den Namen der INI-Datei), indem sie den optionalen user_agent-Parameter an die get_browser()-Funktion übergeben.

Die zurück gegebene Information ist ein Objekt, das verschiedene Datenelemente enthält. Dazu gehören z.B. die Haupt- und Unterversions-Nummer des Browsers sowie TRUE / false-Werte für Browser-Fähigkeiten (u.a. Frame-, Java- und Cookies-Unterstützung). Nicht gemeint ist hier die aktuell vorhandene Nutzung. Ist der Browser so konfiguriert, dass er z.Zt. keine Cookies annehmen soll, wird trotzdem TRUE in Bezug auf die Cookie-Fähigkeiten zurückgegeben, wenn in der Datei browscap.ini der entsprechende Wert TRUE ist.

Da in browscap.ini Informationen vieler Browser stehen, obliegt es dem Skript-Schreiber, diese Datei auf dem Laufenden zu halten. Das Format dieser Datei sollte selbsterklärend sein.

Das folgende Beispiel zeigt, wie man alle verfügbaren Informationen zu einem gerade benutzten Browser anzeigen könnte:

Beispiel 1. get_browser()-Beispiel:

<?php
function list_array ($array) {
    while (list ($key, $value) = each ($array)) {
        $str .= "<b>$key:</b> $value<br>\n";
    }
    return $str;
}
echo "$HTTP_USER_AGENT<hr>\n";
$browser = get_browser();
echo list_array ((array) $browser);
?>

Die Ausgabe des obigen Skripts könnte so aussehen:

Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)<hr>
<b>browser_name_pattern:</b> Mozilla/4\.5.*<br>
<b>parent:</b> Netscape 4.0<br>
<b>platform:</b> Unknown<br>
<b>majorver:</b> 4<br>
<b>minorver:</b> 5<br>
<b>browser:</b> Netscape<br>
<b>version:</b> 4<br>
<b>frames:</b> 1<br>
<b>tables:</b> 1<br>
<b>cookies:</b> 1<br>
<b>backgroundsounds:</b> <br>
<b>vbscript:</b> <br>
<b>javascript:</b> 1<br>
<b>javaapplets:</b> 1<br>
<b>activexcontrols:</b> <br>
<b>beta:</b> <br>
<b>crawler:</b> <br>
<b>authenticodeupdate:</b> <br>
<b>msn:</b> <br>

Damit dieses Skript richtig funktioniert, muss die browscap-Einstellung ihrer Konfigurations-Datei auf die richtige browscap.ini-Datei zeigen.

Weitere Informationen (incl. Bezugsquellen für browscap.ini-Dateien) finden sie in der PHP-FAQ unter http://www.php.net/manual/faq.php.

Zurück | Zum Anfang | Nach vorne
exit | Nach oben | highlight_file


highlight_file

(PHP 4 , PHP 5)

highlight_file -- Syntax-Hervorhebung für eine Datei

Beschreibung:

void highlight_file ( string filename)

Die Funktion highlight_file() erzeugt die Ausgabe des Codes der Datei filename mit hervorgehobener Syntax. Dabei werden die Farben des in PHP eingebauten Syntax-Highlighter benutzt.

Beispiel 1. Erzeugung einer hervorgehobenen URL

Zur Erzeugung einer URL, die Code eines ihm übermittelten Skripts hervorgehoben dargestellen kann, machen wir Gebrauch von der "ForceType"-Anweisung des Apachen um eine richtige URL zu erzeugen. Zusätzlich benutzen wir die Funktion highlight_file(), um das Code-Listing wie gewünscht an zu zeigen.

In ihrer httpd.conf sollten sie folgendes hinzu fügen:

<Location /source>
    ForceType application/x-httpd-php
</Location>

Jetzt erzeugen sie eine Datei namens "source" und speichern es in dem Root-Verzeichnis ihrer Web-Seite.

<HTML>
<HEAD>
<TITLE>Source Display</TITLE>
</HEAD>
<BODY BGCOLOR="white">
<?php
    $script = getenv ("PATH_TRANSLATED");
    if(!$script) {
        echo "<BR><B>Fehler: Skript-Name nötig</B><BR>";
    } else {
        if (ereg("(\.php|\.inc)$",$script)) {
            echo "<H1>Source von: $PATH_INFO</H1>\n<HR>\n";
            highlight_file($script);
        } else {
            echo "<H1>ERROR: Nur PHP oder Include-Skripte sind erlaubt</H1>";
        }
    }
    echo "<HR>Erzeugt: ".date("Y/M/d H:i:s",time());
?>
</BODY>
</HTML>

Jetzt können sie die u.a. URL benutzen, um eine farblich hervorgehobene Version des Skriptes "/path/to/script.php" innerhalb ihrer Web-Seite zu zeigen.

http://ihr.server.de/source/pfad/zu/script.php

Siehe auch highlight_string() und show_source().

Zurück | Zum Anfang | Nach vorne
get_browser | Nach oben | highlight_string


highlight_string

(PHP 4 , PHP 5)

highlight_string -- Hervorhebung der Syntax eines Strings

Beschreibung:

void highlight_string ( string str)

Die Funktion highlight_string() gibt den String str mit hervorgehobener Syntax (Syntax highlighting) aus. Dabei werden die Farben des in PHP eingebauten Syntax-Highlighter benutzt.

Siehe auch highlight_file() und show_source().

Zurück | Zum Anfang | Nach vorne
highlight_file | Nach oben | ignore_user_abort


ignore_user_abort

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ignore_user_abort -- Stellt ein, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll

Beschreibung:

int ignore_user_abort ( [int setting])

Mit dieser Funktion wird der Wert dafür gesetzt, ob der Abbruch einer Client-Verbindung die weitere Abarbeitung eines Skripts beenden soll. Es wird der vorherige Wert zurück gegeben. Die Funktion kann auch ohne Argument aufgerufen werden, um nur die aktuelle Einstellung zu erfahren. Die komplette Beschreibung des Verbindungs-Handling von PHP können sie im Abschnitt Connection-Handling des Kapitels Features nachlesen. Dort werden auch die Werte für den optionalen Parameter setting näher erläutert.

Zurück | Zum Anfang | Nach vorne
highlight_string | Nach oben | pack


pack

(PHP 3, PHP 4 , PHP 5)

pack -- Packt Daten in einen Binär-String

Beschreibung:

string pack ( string format [, mixed args])

Diese Funktion packt ein oder mehrere Argumente - unter Beachtung der Argument-Formate - in einen Binär-String. In dem zurück gegebenen Binär-String stehen anschließend die Daten.

Die Idee entstammt Perl. Alle Formatierungs-Anweisungen funktionieren genau wie dort. In PHP fehlen aber einige Format-Codes von Perl (z.B. "u"). Der Format-String besteht aus Format-Codes, gefolgt von einem optionalen Wiederholungs-Argument. Dieses Argument kann ein Integer-Wert oder ein "*" (für Wiederholung bis ans Ende der Daten) sein. Bei "a", "A", "h" und dem "H" Format-Code gibt das Wiederholungs-Argument an, wie viele gleiche Zeichen folgen. Im Zusammenhang mit "@" gibt das Wiederholungs-Argument die absolute Position an, ab der das nächste Zeichen steht. Bei allen anderen steht der Wiederholungs-Zähler für die Anzahl der benutzten Daten-Argumente, die in den Binär-String gepackt werden sollen. Z. Zt. sind folgende Codes implementiert:

  • a mit NUL gefüllte Zeichenkette (String)

  • A mit Leerzeichen (SPACE) gefüllte Zeichenkette (String)

  • h Hex Zeichenkette (String), unterer Halbwert zuerst

  • H Hex Zeichenkette (String), höherer Halbwert zuerst

  • c signed char

  • C unsigned char

  • s Short-Typ mit Vorzeichen (immer 16 Bit, Byte-Folge maschinenabhängig)

  • S Short-Typ ohne Vorzeichen (immer 16 Bit, Byte-Folge maschinenabhängig)

  • n Short-Typ ohne Vorzeichen (immer 16 Bit, big endian byte order)

  • v Short-Typ ohne Vorzeichen (immer 16 Bit, little endian byte order)

  • i Integer mit Vorzeichen (Größe und Byte-Folge maschinenabhängig)

  • I Integer-Typ ohne Vorzeichen (Größe und Byte-Folge maschinenabhängig)

  • l Long-Typ mit Vorzeichen (immer 32 Bit, Byte-Folge maschinenabhängig)

  • L Long-Typ ohne Vorzeichen (immer 32 Bit, Byte-Folge maschinenabhängig)

  • N Long-Typ ohne Vorzeichen (immer 32 Bit, big endian Byte- Folge)

  • V Long-Typ ohne Vorzeichen (immer 32 Bit, little endian Byte- Folge)

  • f Fließkomma-Typ (maschinenabhängige Größe und Wiedergabe)

  • d Double-Typ (maschinenabhängige Größe und Wiedergabe)

  • x NUL Byte

  • X Geht im String ein Byte rückwärts

  • @ NUL-Auffüllung bis zur absoluten Position

Beispiel 1. Mit Pack formatierter String:

$binarydata = pack ("nvc*", 0x1234, 0x5678, 65, 66);

Der sich daraus ergebende Binär-String ist 6 Bytes lang und enthält: 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Bedenken sie, dass der Unterschied zwischen vorzeichen-losen und vorzeichen-behafteten Werten nur Einfluss auf die Funktion unpack() hat, wogegen dies bei der Funktion pack() egal ist.

Beachten sie auch, dass PHP intern Ganzzahl-Werte als vorzeichen-behaftete Werte speichert, deren Umfang vom Maschinen-Typ abhängig ist. Geben sie PHP einen vorzeichen-losen Ganzzahl-Wert, der zu groß ist für diese Art der Speicherung, wird er ins Double-Format umgesetzt, was oft zu unerwünschten Resultaten führt.

Zurück | Zum Anfang | Nach vorne
ignore_user_abort | Nach oben | show_source


show_source

(PHP 4 , PHP 5)

show_source -- Syntax-Highlighting einer Datei

Beschreibung:

void show_source ( string filename)

Die Funktion show_source() erzeugt die Ausgabe des Codes der Datei filename mit hervorgehobener Syntax. Dabei werden die Farben des in PHP eingebauten Syntax-Highlighter benutzt.

Anmerkung: Diese Funktion ist ein Alias der Funktion highlight_file().

Siehe auch highlight_string() und highlight_file().

Zurück | Zum Anfang | Nach vorne
pack | Nach oben | sleep


sleep

(PHP 3, PHP 4 , PHP 5)

sleep -- Programmverzögerung

Beschreibung:

void sleep ( int seconds)

Die sleep()-Funktion unterbricht die weitere Skript-Ausführung für die mit seconds angegebene Anzahl in Sekunden.

Siehe auch usleep().

Zurück | Zum Anfang | Nach vorne
show_source | Nach oben | uniqid


uniqid

(PHP 3, PHP 4 , PHP 5)

uniqid -- Erzeugt eine eindeutige ID

Beschreibung:

string uniqid ( string prefix [, boolean lcg])

uniqid() gibt eine eindeutige ID mit Präfix zurück. Diese basiert auf der aktuellen Zeit in Mikrosekunden. Das Präfix kann hilfreich sein, wenn sie z. B. auf mehreren Servern gleichzeitig ID´s erzeugen, was ja im ungünstigsten Fall zur selben Mikrosekunde geschehen kann. Der prefix-Parameter kann bis zu 114 Zeichen lang sein.

Ist der optionale Parameter lcg TRUE, wird uniqid() am Ende des Rückgabewertes zusätzliche "LCG"-Zustandswerte anfügen, durch die das Ergebnis noch eindeutiger wird.

Bei leerem prefix-Parameter ist der zurück gegebene String 13 Zeichen lang. Ist der Parameter lcg TRUE, sind es 23 Zeichen.

Anmerkung: Der lcg-Parameter ist erst ab PHP 4 bzw. PHP 3.0.13 und später verfügbar.

Wenn sie eindeutige ID´s bzw. eindeutige Token benötigen und beabsichtigen, diese Token über das Netzwerk an den Benutzer weiter zu leiten (z.B. als Session-Cookies), ist es ratsam, wenn sie wie folgt vorgehen:

$token = md5 (uniqid ("")); // kein Zufalls-Anteil = schlecht
$better_token = md5 (uniqid (rand())); // besser, da schwer zu erraten

Hierdurch wird eine 32-Zeichen-ID (128 Bit-Hex-Wert) erzeugt, die nur sehr schwer vorhersehbar ist.

Zurück | Zum Anfang | Nach vorne
sleep | Nach oben | unpack


unpack

(PHP 3, PHP 4 , PHP 5)

unpack -- Entpackt die Daten eines Binär-Strings

Beschreibung:

array unpack ( string format, string data)

unpack() überträgt die Daten eines Binär-Strings in ein Array unter Berücksichtigung des format-Parameters. Das Array wird als Ergebnis des Funktionsaufrufs zurück gegeben.

unpack() funktioniert etwas anders als man es von Perl her kennt, da sich die zurück gegebenen Daten in einem assoziativen Array befinden. Dies erreichen sie nur, wenn sie die verschiedenen Format-Codes benennen und sie mit einem "/" voneinander trennen.

Beispiel 1. unpack() formatierter String

$array = unpack ("c2chars/nint", $binarydata);

Das resultierende Array wird die Einräge "chars1", "chars2" und "int" enthalten.

Die Format-Codes werden unter pack() näher erläutert.

Beachten sie, dass PHP Integer-Werte intern mit Vorzeichen speichert. Wenn sie einen grossen vorzeichen-losen Long-Wert entpacken und er von der selben Grösse ist, die PHP für dessen Speicherung verwendet, wird das Ergebnis ein negativer Wert sein (auch wenn sie dieses als vorzeichen-los zu entpacken angegeben haben).

Zurück | Zum Anfang | Nach vorne
uniqid | Nach oben | usleep


usleep

(PHP 3, PHP 4 , PHP 5)

usleep -- Programm-Verzögerung in Mikrosekunden

Beschreibung:

void usleep ( int micro_seconds)

Mittels der Funktion usleep() verzögern sie die weitere Skript-Ausführung um die gegebene Anzahl an micro_seconds.

Beachten sie auch die Funktion sleep().

Anmerkung: Dies Funktion steht unter Windows-Systemen nicht zur Verfügung.

Zurück | Zum Anfang | Nach vorne
unpack | Nach oben | mnoGoSearch Funktionen


mnoGoSearch Funktionen

PHP Handbuch
Zurück Nach vorne

LXII. mnoGoSearch Funktionen

Diese Funktionen erlauben den Zugriff auf die mnoGoSearch (früher als UdmSearch bekannt) Suchmaschine. Um auf diese Funktionen zugreifen zu können, muss PHP mittels der --with-mnogosearch-Option mit mnoGoSearch-Unterstützung compiliert worden sein. Wird diese Option ohne Pfadangabe zu mnoGoSearch verwendet, wird mnoGoSearch in /usr/local/mnoGoSearch gesucht. Wurde mnoGoSearch unter einem anderen Pfad installiert, kann der Pfad mittels --with-mnogosearch=DIR spezifiziert werden.

mnoGoSearch ist eine vollwertige Suchmaschine für den Intra- und Interneteinsatz, vertrieben unter der GPL. mnoGoSearch hat einige einzigartige Funktionen, die es für weite Einsatzbereiche tauglich machen. Es bietet Volltextindizierung von HTML, PDF und Textdokumenten. mnoGoSearch besteht aus zwei Teilen: Der erste ist der sogenannte indexer, der den Indizierungsmechanismus bereitstellt. Er spidered HTTP, FTP und Newsserver oder lokale Dateisysteme, indiziert die gefundenen Dokumente und speichert Meta-Daten über die Dokumente in einer SQL-Datenbank.

Anmerkung: PHP beinhaltet zwar einen eingebauten MySQL-Support, dieser ist jedoch nicht mit mnoGoSearch kompatibel, deshalb muss PHP gegen die selben generischen MySQL-Bibliotheken wie mnoGoSearch gelinkt werden, also z.B.: --with-mnogosearch --with-mysql=/usr.

Es wird mindestens Version 3.1.10 von mnoGoSearch vorausgesetzt, um die folgenden Funktionen nutzen zu können.

Weitere Informationen über mnoGoSearch können unter http://www.mnogosearch.ru/ abgerufen werden.

Inhaltsverzeichnis
udm_add_search_limit -- Verschiedene Beschränkungen bei der Suche anwenden
udm_alloc_agent_array -- Allocate mnoGoSearch session
udm_alloc_agent -- Allocate mnoGoSearch session
udm_api_version -- Gibt die Version der mnoGoSearch API zurück.
udm_cat_list -- Liefert alle Kategorien auf der selben Ebene wie der aktuellen zurück.
udm_cat_path -- Liefert den Pfad zur aktuellen Kategorie zurück.
udm_check_charset -- Überprüft, ob mnoGoSearch der übergebene Zeichensatz bekannt ist
udm_check_stored -- Check connection to stored
udm_clear_search_limits -- Löscht alle mnoGoSearch Suchrestriktionen
udm_close_stored -- Open connection to stored
udm_crc32 -- Gibt eine CRC32-Prüfsumme eines übergebenen Strings zurück.
udm_errno -- Liefert den mnoGoSearch Fehlercode zurück.
udm_error -- Liefert eine mnoGoSearch Fehlermeldung zurück.
udm_find -- Führe eine Suche durch.
udm_free_agent -- Löscht eine mnoGoSearch Session
udm_free_ispell_data -- Gibt den Speicher frei, der für ISpell alloziiert wurde.
udm_free_res -- Löscht ein mnoGoSearch-Ergebis.
udm_get_doc_count -- Liefert die Anzahl aller Dokumente in der Datenbank zurück.
udm_get_res_field -- Erhalte ein mnoGoSearch Ergebenisfeld
udm_get_res_param -- Liefert die mnoGoSearch Ergbnisparameter zurück.
udm_hash32 -- Return Hash32 checksum of gived string
udm_load_ispell_data -- Lade ISpell-Daten
udm_open_stored -- Open connection to stored
udm_set_agent_param -- Setzt die Parameter der aktuellen mnoGoSearch Session

Zurück | Zum Anfang | Nach vorne
usleep | Nach oben | udm_add_search_limit


udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5)

udm_add_search_limit -- Verschiedene Beschränkungen bei der Suche anwenden

Beschreibung

int udm_add_search_limit ( int agent, int var, string val)

udm_add_search_limit() gibt TRUE bei Erfolg, FALSE bei einem Fehler zurück. Fügt Suchrestritktionen hinzu.

agent - ein Link zu einem Agent, erhalten nach udm_alloc_agent().

var - Definiert den Parameter der die Einschränkung angibt.

val - Definiert den Wert des aktuellen Parameters.

Mögliche Werte für var:

  • UDM_LIMIT_URL - definiert URL Limitationen, um die Suche auf Unterbereiche einzuschränken SQL % und _ LIKE Wildcards werden unterstützt, % entspricht dabei einer beliebigen Anzahl von Zeichen, wobei auch keine Zeichen eingeschlossen werden, _ entspricht genau einem Zeichen. So entspricht also http://my.domain__/catalog sowohl http://my.domain.ru/catalog als auch http://my.domain.ua/catalog.

  • UDM_LIMIT_TAG - definiert TAG Limitationen. In der indexer-conf können bestimmeten Sites und Teilen von Sites sogenannte Tags zugewiesen werden. Auch bei Tags werden % und _ unterstützt. Metasymbole erlauben die Suche über Gruppen von Tags. So werden also die Tags ABCD und ABCE bei einer Einschränkung auf ABC_ eingeschlossen.

  • UDM_LIMIT_LANG - Definiert Sprachlimitationen.

  • UDM_LIMIT_CAT - Definiert Dokumentenkategorielimitationen. Kategorien sind den Tags ähnlich, jedoch im Gegensatz zu diesen verschachtelt. Eine Kategorie kann also Unterkategorie einer anderen sein. Für jede Ebene werden müssen zwei Zeichen verwendendet werden, entweder hexadezimale Zahlen von 0-F oder Zahlen zur Basis 36 von 0-Z. Eine Kategorie der obersten Ebene, z.B. 'Auto' hätte die Zahl 01, die Unterkategorie 'Ford' hätte ebenfalls die 01 als Zahl. Zusammen ergäbe das dann die 0101. Eine weitere Kategorie 'VW' unterhalb der Kategorie 'Auto' hätte dann die Zahl 0102 usw. Wenn 'VW' eine Unterkategorie 'Golf' hätte, wäre desren ID 010201.

  • UDM_LIMIT_DATE - Definiert Einschränkungen in Bezug auf das Datum, wann das Dokument zuletzt verändert wurde.

    Der Wert dieses Parameters ist das kleiner bzw. größer-Zeichen (< oder >) gefolgt von einem Unix-Timestamp, also z.B.

    Udm_Add_Search_Limit($udm,UDM_LIMIT_DATE,"<908012006");

    Wenn das >-Zeichen benutzt wird, wird die Suche auf diejenigen Dokumente eingeschränkt, deren Veränderungsdatum jünger als das eingegebene ist, beim <-Zeichen erfolgt die Einschränkung dementsprechend auf Dokumente, die Älter sind.

Zurück | Zum Anfang | Nach vorne
mnoGoSearch Funktionen | Nach oben | udm_alloc_agent_array


udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5)

udm_alloc_agent_array -- Allocate mnoGoSearch session

Description

resource udm_alloc_agent_array ( array databases)

udm_alloc_agent_array() will create an agent with multiple database connections. The array databases must contain one database URL per element, analog to the first parameter of udm_alloc_agent().

See also: udm_alloc_agent().

Zurück | Zum Anfang | Nach vorne
udm_add_search_limit | Nach oben | udm_alloc_agent


udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5)

udm_alloc_agent -- Allocate mnoGoSearch session

Beschreibung

int udm_alloc_agent ( string dbaddr [, string dbmode])

udm_alloc_agent() Gibt bei Erfolg einen eindeutigen Zeiger auf einen mnoGoSearch-Agenten zurück, bei einem Fehler wird FALSE zurückgegeben. Diese Funktion kreiert eine Sitzung mit Datenbankparametern.

dbaddr - Datenbankadresse im URL-Stil. Wird verwendet, um mit den Daten Datenbanktyp, Datenbankhost, Datenbankname, Datenbankport, Datenbankuser und Datenbankpasswort eine Verbindung zu einer SQL-Datenbank herzustellen. Das Format lautet: DBAddr DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/.

dbmode - Mit dem Parameter dbmode wird der Modus spezifiziert, in dem die Daten in der Datenbank vorliegen. Wird der Modus 'single' gewählt, werden alle Wörter in der selben Tablelle gespeichert. Der Modus 'multi' speichert die Wörter in verschiedenene Tabellen, abhängig von deren Länge. Weitere Modi sind der CRC-Modus und der Multi-CRC-Modus, wobei der CRC-Modus schneller als der Single- und der Multimodus sind, und der Multi-CRC-Modus die Technik des CRC-Modus mit der Speicherstruktur des Multi-Modus verbindet. Format: DBMode single/multi/crc/crc-multi

Anmerkung: dbaddr und dbmode müssen mit den Werten übereinstimmen, die beim Indizieren verwendet wurden.

Anmerkung: Eigentlich öffnet diese Funktion keine Verbindung zur Datenbank, folglich werden auch keine User- und Passwortüberprüfungen durchgeführt. Die Verbindung zur Datenbank wird von der Funktion udm_find() übernommen, hier findet dann auch eine Überprüfung der Logindaten statt.

Zurück | Zum Anfang | Nach vorne
udm_alloc_agent_array | Nach oben | udm_api_version


udm_api_version

(PHP 4 >= 4.0.5, PHP 5)

udm_api_version -- Gibt die Version der mnoGoSearch API zurück.

Beschreibung

int udm_api_version ( void )

udm_api_version() gibt die mnoGoSearch API-Versionsnummer zurück. Wird als z.B. die mnoGoSearch 3.1.10 API benutzt, gibt diese Funktion 30110 zurück.

Diese Funktion erlaubt es dem Benutzer zu erfahren, welche Funktionen der mnoGoSearch-API verfügbar sind. udm_get_doc_count() diese Funktion ist erst ab mnoGoSearch 3.1.11 oder später verfügbar.

Beispiel:

if (udm_api_version() &gt;= 30111) {
   print  "Total number of urls in database: ".udm_get_doc_count($udm)."&lt;br&gt;\n";
   }

Zurück | Zum Anfang | Nach vorne
udm_alloc_agent | Nach oben | udm_cat_list


udm_cat_list

(PHP 4 >= 4.0.6, PHP 5)

udm_cat_list -- Liefert alle Kategorien auf der selben Ebene wie der aktuellen zurück.

Beschreibung

array udm_cat_list ( int agent, string category)

udm_cat_list() Gibt einen Array zurück, der alle Kategorien auf dem selben Level im Kategorienbaum wie die aktuelle Kategorie liegen.

Diese Funktion kann nützlich sein, um einen Kategorienbrowser zu entwickeln.

Gibt einen Array mit dem folgenden Format zurück:

Der Array besteht aus Paaren. Elemente mit geraden Indexnummern beinhalten die Kategoriepfade, die ungeraden Elemente behinhalten die entsprechenden Kategorienamen.

$array[0] beinhaltet '020300'
$array[1] beinhaltet 'Audi'
$array[2] beinhaltet '020301'
$array[3] beinhaltet 'BMW'
$array[4] beinhaltet '020302'
$array[5] beinhaltet 'Opel'
...
usw.

Das folgende Beispiel gibt Links im folgenden Format aus:
Audi
BMW
Opel
...

<?php
   $cat_list_arr=udm_cat_list($udm_agent,$cat);
   $cat_list='';
   for ($i=0; $i&lt;count($cat_list_arr); $i+=2) {
   $path=$cat_list_arr[$i];
   $name=$cat_list_arr[$i+1];
   $cat_list .= "<a href=\"$PHP_SELF?cat=$path\">$name</a><br>";
   }
?>

Zurück | Zum Anfang | Nach vorne
udm_api_version | Nach oben | udm_cat_path


udm_cat_path

(PHP 4 >= 4.0.6, PHP 5)

udm_cat_path -- Liefert den Pfad zur aktuellen Kategorie zurück.

Beschreibung

array udm_cat_path ( int agent, string category)

udm_cat_path() gibt einen Array zurück, der den Pfad im Kategorienbaum von der Wurzel an bis zur aktuellen Kategorie enthält.

agent - Zeiger auf den Agenten.

category - aktuelle Kategorie - diejenige, zu der der Pfad herausgefunden werden soll.

Gibt einen Array mit dem folgenden Format zurück:

Der Array besteht aus Paaren. Elemente mit geraden Indexnummern beinhalten die Kategoriepfade, die ungeraden Elemente behinhalten die entsprechenden Kategorienamen.

So könnte der Aufruf $array=udm_cat_path($agent, '02031D'); folgenden Array zurückliefern:

$array[0] beinhaltet ''
$array[1] beinhaltet 'Root'
$array[2] beinhaltet '02'
$array[3] beinhaltet 'Sport'
$array[4] beinhaltet '0203'
$array[5] beinhaltet 'Auto'
$array[4] beinhaltet '02031D'
$array[5] beinhaltet 'Ferrari'

Beispiel 1. Spezifiziert den Pfad zu der aktuellen Kategorie in folgendem Format: '> Root > Sport > Auto > Ferrari'

<?php
   $cat_path_arr = udm_cat_path($udm_agent,$cat);
   $cat_path='';
   for ($i=0; $i&lt;count($cat_path_arr); $i+=2) {
     $path=$cat_path_arr[$i];
     $name=$cat_path_arr[$i+1];
     $cat_path .= " > <a href=\"$PHP_SELF?cat=$path\">$name</a> ";
   }
?>

Zurück | Zum Anfang | Nach vorne
udm_cat_list | Nach oben | udm_check_charset


udm_check_charset

(PHP 4 >= 4.2.0, PHP 5)

udm_check_charset -- Überprüft, ob mnoGoSearch der übergebene Zeichensatz bekannt ist

Beschreibung

int udm_check_charset ( int agent, string charset)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
udm_cat_path | Nach oben | udm_check_stored


udm_check_stored

(PHP 4 >= 4.2.0, PHP 5)

udm_check_stored -- Check connection to stored

Beschreibung

int udm_check_stored ( int agent, int link, string doc_id)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
udm_check_charset | Nach oben | udm_clear_search_limits


udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5)

udm_clear_search_limits -- Löscht alle mnoGoSearch Suchrestriktionen

Beschreibung

int udm_clear_search_limits ( int agent)

udm_clear_search_limits() setzt definierte Sucheinschränkungen zurück und gibt TRUE zurück.

Zurück | Zum Anfang | Nach vorne
udm_check_stored | Nach oben | udm_close_stored


udm_close_stored

(PHP 4 >= 4.2.0, PHP 5)

udm_close_stored -- Open connection to stored

Beschreibung

int udm_close_stored ( int agent, int link)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
udm_clear_search_limits | Nach oben | udm_crc32


udm_crc32

(PHP 4 >= 4.2.0, PHP 5)

udm_crc32 -- Gibt eine CRC32-Prüfsumme eines übergebenen Strings zurück.

Beschreibung

int udm_crc32 ( int agent, string str)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
udm_close_stored | Nach oben | udm_errno


udm_errno

(PHP 4 >= 4.0.5, PHP 5)

udm_errno -- Liefert den mnoGoSearch Fehlercode zurück.

Beschreibung

int udm_errno ( int agent)

udm_errno() liefert den mnoGoSearch Fehlercode. Null wenn kein Fehler vorliegt..

agent - Zeiger auf einen Agenten, erhalten nach einem Aufruf von udm_alloc_agent().

Enthält einen numerischen Fehlercode.

Zurück | Zum Anfang | Nach vorne
udm_crc32 | Nach oben | udm_error


udm_error

(PHP 4 >= 4.0.5, PHP 5)

udm_error -- Liefert eine mnoGoSearch Fehlermeldung zurück.

Beschreibung

string udm_error ( int agent)

udm_error() gibt eine mnoGoSearch Fehlermeldung zurück, eine leere Zeichenkette, wenn kein Fehler vorlag.

agent - Zeiger auf einen Agenten, erhalten nach einem Aufruf von udm_alloc_agent().

Liefert die Fehlermeldung des Agenten zurück.

Zurück | Zum Anfang | Nach vorne
udm_errno | Nach oben | udm_find


udm_find

(PHP 4 >= 4.0.5, PHP 5)

udm_find -- Führe eine Suche durch.

Beschreibung

int udm_find ( int agent, string query)

udm_find() gibt einen Ergebniszeiger bei Erfolg zurück, FALSE bei einem Fehler.

Die eigentliche Suche. Das erste Argument - die Session, das nächste - die Suche selbst. Um etwas zu finden, einfach die zu suchenden Begriffe in das Suchfeld eintippen und den Submit-Button drücken. Zum Beispiel "mysql odbc". Die doppelten Anführungszeichen " sollten nicht in einer Suche verwendet werden, sie werden hier nur aufgeführt, um die Suchbegriffe vom anderen Text zu unterscheiden. mnoGoSearch wird alle Dokumente finden, die das Wort "mysql" und/oder "odbc" enthalten. Dokumente, die der Suche besser entsprechen als andere werden zuerst angezeigt. Wird der Suchmodus ALL verwendet, werden nur Dokumente gefunden, die alle gesuchten Wörter mindestens einmal enthalten. Wird der Suchmodus ANY verwendet, werden alle Dokumente zurückgliefert, die eines der gesuchten Wörter enthalten. Wenn ausgefeiltere Suchen stattfinden sollen, muss die Suchsprache verwendet werden. In diesem Falle sollte der boolsche Übereinstimmungsmodus gewählt werden.

mnoGoSearch kennt die folgenden boolschen Operatoren:

& - logisches UND. Zum Beispiel "mysql & odbc". mnoGoSearch wird alle Dokumente finden, die sowohl "mysql" als auch "odbc" enthalten.

| - logisches ODER. Zum Beispiel "mysql|odbc". mnoGoSearch wird alle Dokumente zurückliefern die das Wort "mysql" oder das Wort "odbc" enthalten.

~ - logisches NICHT. Zum Beispiel "mysql & ~odbc". mnoGoSearch wird alle Dokumente finden, die das Wort "mysql" enthalten, nicht aber das Wort "odbc" zur gleichen Zeit. Dieser Operator ist jedoch ein rein ausschließender Operator. Die Suche "~odbc" wird keine Ergebnisse zurückliefern!

() - Gruppierung, um komplexe Suchen zu bilden. Zum Beispiel "(mysql | msql) & ~postgres". Die Suchesprache ist simpel und stark zugleich.

Zurück | Zum Anfang | Nach vorne
udm_error | Nach oben | udm_free_agent


udm_free_agent

(PHP 4 >= 4.0.5, PHP 5)

udm_free_agent -- Löscht eine mnoGoSearch Session

Beschreibung

int udm_free_agent ( int agent)

udm_free_agent() gibt TRUE bei Erfolg zurück, FALSE bei einem Fehler.

agent - Zeiger auf einen Agenten, erhalten nach einem Aufruf von udm_alloc_agent().

Gibt den Speicher frei, den eine mnoGoSearch-Session belegt hat.

Zurück | Zum Anfang | Nach vorne
udm_find | Nach oben | udm_free_ispell_data


udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5)

udm_free_ispell_data -- Gibt den Speicher frei, der für ISpell alloziiert wurde.

Beschreibung

int udm_free_ispell_data ( int agent)

udm_free_ispell_data() liefert stets TRUE zurück.

agent - Zeiger auf einen Agenten, erhalten nach einem Aufruf von udm_alloc_agent().

Anmerkung: Diese Funktion wird seit Version 3.1.12 von mnoGoSearch unterstützt. In vorherigen Versionen ist sie ohne Funktion.

Zurück | Zum Anfang | Nach vorne
udm_free_agent | Nach oben | udm_free_res


udm_free_res

(PHP 4 >= 4.0.5, PHP 5)

udm_free_res -- Löscht ein mnoGoSearch-Ergebis.

Beschreibung

int udm_free_res ( int res)

udm_free_res() gibt TRUE bei Erfolg, FALSE bei einem Fehler zurück.

agent - Zeiger auf einen Agenten, erhalten nach einem Aufruf von udm_alloc_agent().

Gibt den Speicher frei, der für Ergebnisse alloziiert wurde.

Zurück | Zum Anfang | Nach vorne
udm_free_ispell_data | Nach oben | udm_get_doc_count


udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5)

udm_get_doc_count -- Liefert die Anzahl aller Dokumente in der Datenbank zurück.

Beschreibung

int udm_get_doc_count ( int agent)

udm_get_doc_count() gibt die Anzahl der Dokumente in der Datenbank zurück.

agent - Zeiger auf einen Agenten, erhalten nach einem Aufruf von udm_alloc_agent().

Anmerkung: Diese Funktion wird seit mnoGoSearch 3.1.11 unterstützt.

Zurück | Zum Anfang | Nach vorne
udm_free_res | Nach oben | udm_get_res_field


udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5)

udm_get_res_field -- Erhalte ein mnoGoSearch Ergebenisfeld

Beschreibung

string udm_get_res_field ( int res, int row, int field)

udm_get_res_field() gibt den Wert eines Ergebnisfeldes bei Erfolg, FALSE bei einem Fehler zurück.

agent - Zeiger auf einen Agenten, erhalten nach einem Aufruf von udm_alloc_agent().

row - Die Zahl des aktuellen Links. Werte können zwischen 0 und UDM_PARAM_NUM_ROWS-1 variieren.

field - Feldzeiger, kann folgende Werte annehmen:

  • UDM_FIELD_URL - URL des Dokumentes

  • UDM_FIELD_CONTENT - Content-Type des Dokumentes (zum Beispiel text/html).

  • UDM_FIELD_CATEGORY - Kategorie des Dokumentes. udm_cat_path() sollte verwendet werden, um den vollen Pfad vom der Wurzel des Kategorienbaumes zur aktuellen Kategorie zu erhalten. (Dieser Parameter ist erst ab PHP Version 4.0.6 verfügbar).

  • UDM_FIELD_TITLE - Titel des Dokumentes.

  • UDM_FIELD_KEYWORDS - Keywords des Dokumentes (aus dem Meta-Tag Keywords).

  • UDM_FIELD_DESC - Dokumentenbeschreibung (aus dem Meta-Tag Description).

  • UDM_FIELD_TEXT - Inhalt des Dokumentes (die ersten Zeilen des Dokumentes).

  • UDM_FIELD_SIZE - Größe des Dokumentes.

  • UDM_FIELD_URLID - Eindeutige ID des Dokumentes.

  • UDM_FIELD_RATING - Dokumentenwertung (von mnoGoSearch berechnet).

  • UDM_FIELD_MODIFIED - Datum der letzten Änderung des Dokumentes als Unix-Timestamp.

  • UDM_FIELD_ORDER - Die Nummer des aktuellen Dokumentes in der Menge der gefundenen Dokumente.

  • UDM_FIELD_CRC - Die Prüfsumme des Dokumentes.

Zurück | Zum Anfang | Nach vorne
udm_get_doc_count | Nach oben | udm_get_res_param


udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5)

udm_get_res_param -- Liefert die mnoGoSearch Ergbnisparameter zurück.

Beschreibung

string udm_get_res_param ( int res, int param)

udm_get_res_param() gibt den Wert des Parameters bei Erfolg. FALSE bei einem Fehler zurüc.

res - ein Ergebniszeiger, erhalten nach einem Aufruf von udm_find().

param - Parameterbezeichner. Kann folgenden Werte annehmen:

  • UDM_PARAM_NUM_ROWS - Anzahl der auf der aktuellen Seite gefundenen Links.

  • UDM_PARAM_FOUND - Anzahl der gefundenen Dokuemnte, die der Suche entsprechen.

  • UDM_PARAM_WORDINFO - Informationen über die gefundenen Wörter. Zum Beispiel könnte eine Suche nach "a good book" die Werte "a: stopword, good:5637, book: 120" ausgeben.

  • UDM_PARAM_SEARCHTIME - Suchzeit in Sekunden.

  • UDM_PARAM_FIRST_DOC - Die Nummer des ersten auf der aktuellen Seite angezeigten Dokumentes.

  • UDM_PARAM_LAST_DOC - Die Nummer des letzten auf der aktuellen Seiten angezeigten Dokumentes.

Zurück | Zum Anfang | Nach vorne
udm_get_res_field | Nach oben | udm_hash32


udm_hash32

(PHP 4 >= 4.3.3, PHP 5)

udm_hash32 -- Return Hash32 checksum of gived string

Description

int udm_hash32 ( resource agent, string str)

udm_hash32() will take a string str and return a quite unique 32-bit hash number from it. Requires an allocated agent.

See also: udm_alloc_agent().

Zurück | Zum Anfang | Nach vorne
udm_get_res_param | Nach oben | udm_load_ispell_data


udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5)

udm_load_ispell_data -- Lade ISpell-Daten

Beschreibung

int udm_load_ispell_data ( int agent, int var, string val1, string val2, int flag)

udm_load_ispell_data() lädt ISpell-Daten. Gibt TRUE bei Erfolg, FALSE bei einem Fehler zurück.

agent - Zeiger auf einen Agenten, erhalten nach einem Aufruf von udm_alloc_agent().

var - Parameter, der die Quelle der ISpell-Daten angibt. Kann folgende Werte annehmen.

Nachdem diese Funktion aufgerufen wurde, sollte nicht vergessen werden, mittels udm_free_ispell_data() den durch ISpell belegten Speicher wieder freizugeben, auch wenn UDM_ISPELL_TYPE_SERVER verwendet wird.

Der schnellste Modus ist UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT ist langsamer, und UDM_ISPELL_TYPE_DB ist der langsamste. Dies gilt zumindest für mnoGoSearch 3.1.10 - 3.1.11, es ist jedoch geplant, den DB-Modus in zukünftigen Versionen schneller als den TEXT-Modus zu machen.

  • UDM_ISPELL_TYPE_DB - Gibt an, dass die ISpell-Daten aus einer SQL-Datenbank gelesen werden sollen. In diesem Fall werden val1 und val2 ignoriert und sollten leer gelassen werden. Der Parameter flag sollte 1 sein.

    Anmerkung: Der Parameter flag gibt an, dass die ISpell-Daten nach dem Laden sortiert werden sollen, dies ist für ein korrektes Arbeiten von ISpell nötig. Werden die ISpell-Daten aus Dateien gelesen, kann es vorkommen, dass mehrere Aufrufe von udm_load_ispell_data() vorkommen, was es wenig Effektiv macht, die Daten nach jedem Aufruf zu sortieren. Der Datenbank-Modus lädt jedoch alle Daten auf einmal, in diesem Fall sollte der Wert also 1 betragen. Sollte ein Fehler auftreten, wird FALSE zurückgegeben, Fehler und Fehlercode sind in diesem Fall über udm_error() und udm_errno() verfügbar.

    Beispiel:

    if (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_DB,'','',1)) {
      printf("Error #%d: '%s'\n",udm_errno($udm),udm_error($udm));
      exit;
    }

  • UDM_ISPELL_TYPE_AFFIX - Gibt an, dass die ISpell-Daten aus einer Datei geladen werden sollen und initiiert das Laden der Anhangsdaten. In diesem Fall gibt der Parameter val1 den zweibuchstabigen Sprachcode an, für den die Anhänge geladen werden sollen, val2 gibt den Dateipfad an. Wird kein absoluter Pfad angeben, werden die Dateien nicht in UDM_CONF_DIR, sondern in im zum aktuellen Pfad relativen gesucht. Kann die Datei nicht geladen werden, gibt die Funktion FALSE zurück, und eine Fehlermeldung wird ausgegeben. Die Fehlercodes können nicht über udm_error() oder udm_errno() ausgelesen werden. Zur Erlärung des Parameters flag schauen Sie bitte bei UDM_ISPELL_TYPE_DB nach.

    Beispiel:

    if ((! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) ||
            (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) ||
            (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) ||
            (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) {
         exit;
         }

    Anmerkung: flag hat nur beim letzten Aufruf den Wert 1.

  • UDM_ISPELL_TYPE_SPELL - Gibt an, dass die ISpell-Daten aus einer Datei gelesen werden sollen, und initiiert das Laden des ISpell-Wörterbuches. In diesem Fall gibt der Parameter val1 den zweibuchstabigen Sprachcode an, für den die Anhänge geladen werden sollen, val2 gibt den Dateipfad an. Wird kein absoluter Pfad angeben, werden die Dateien nicht in UDM_CONF_DIR, sondern in im zum aktuellen Pfad relativen gesucht. Kann die Datei nicht geladen werden, gibt die Funktion FALSE zurück, und eine Fehlermeldung wird ausgegeben. Die Fehlercodes können nicht über udm_error() oder udm_errno() ausgelesen werden. Zur Erklärung des Parameters flag schauen Sie bitte bei UDM_ISPELL_TYPE_DB nach.

    if ((! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) ||
            (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) ||
            (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) ||
            (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) {
          exit;
          }

    Anmerkung: flag hat nur beim letzten Aufruf den Wert1.

  • UDM_ISPELL_TYPE_SERVER - schaltet den Spell-Server support ein. val1 gibt den Host an, auf dem der Spell-Server läuft.. val2 ist noch ohne Funktion, wird in Zukunft aber den Port des Spell-Servers angeben. flag wird nicht benötigt, da die Daten bereits sortiert im Spell-Server vorliegen.

    Der Spell-Server (Spelld) liest die Rechtschreibdaten aus einer seperaten Konfigurationsdatei (Standardmäßig /usr/local/mnogosearch/etc/spelld.conf), sortiert sie und speichert sie im Speicher.

    Die Funktion udm_load_ispell_data() in UDM_ISPELL_TYPE_SERVER lädt eigentlich nicht die ISpell-Daten, sondern legt nur die Serveradresse fest. Eigentlich wird dieser Server automatisch von udm_find() benutzt, wenn eine Suche durchgeführt wird. Sollte ein Fehler auftreten, wird keine Fehlermeldung ausgegeben, eine ISpell-Konvertierung kann dann jedoch natürlich auch nicht stattfinden.

    Anmerkung: Diese Funktion ist seit mnoGoSearch 3.1.12 verfügbar.

    Beispiel:

    if (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SERVER,'','',1)) {
             printf("Error loading ispell data from server&lt;br&gt;\n");
             exit;
         }

Zurück | Zum Anfang | Nach vorne
udm_hash32 | Nach oben | udm_open_stored


udm_open_stored

(PHP 4 >= 4.2.0, PHP 5)

udm_open_stored -- Open connection to stored

Beschreibung

int udm_open_stored ( int agent, string storedaddr)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
udm_load_ispell_data | Nach oben | udm_set_agent_param


udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5)

udm_set_agent_param -- Setzt die Parameter der aktuellen mnoGoSearch Session

Beschreibung

int udm_set_agent_param ( int agent, int var, string val)

udm_set_agent_param() gibt TRUE bei Erfolg, FALSE bei eine, Fehler zurück. Deklariert mnoGoSearch Sessionparameter.

Die folgenden Parameter und deren Werte sind erlaubt:

  • UDM_PARAM_PAGE_NUM - wird genutzt, um eine bestimmte Seite aus den Suchergebnissen auszuwählen. Ergebnissseiten werden von 0 an gezählt.

  • UDM_PARAM_PAGE_SIZE - Anzahl der Suchergebnisse, die pro Seite angezeigt werden.

  • UDM_PARAM_SEARCH_MODE - Suchmodus. Die folgenden Werte sind erlaubt: UDM_MODE_ALL - Logische UND-Verknüpfung; UDM_MODE_ANY - Logische ODER-Verknüpfung; UDM_MODE_BOOL - boolsche Suche. Siehe udm_find() für weitere Details zur boolschen Suche.

  • UDM_PARAM_CACHE_MODE - Schaltet den Ergebnis-Cache an oder aus. Falls eingeschaltet wird die Suchmaschine Suchergebnisse auf der Festplatte zwischenspeichern. Für den Fall, dass später eine ähnliche Suche durchgeführt wird, werden die Ergebnisse für ein schnelleres Ergebnis aus dem Cache gelesen. Werte: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.

  • UDM_PARAM_TRACK_MODE - schaltet den Trackquery-Modus an oder aus. Seit Version 3.1.12 von mnoGoSearch wird eine Verfolgung von Suchanfragen unterstützt. Um die Track-Funktion nutzen zu können, müssen zusätzliche SQL-Tabellen angelegt werden. Für MySQL liegen die Tabellenbeschreibungen in create/mysql/track.txt. Wird eine Suche durchgeführt, werden die Suchwörter in diesen Tabellen zusammen mit der Anzahl der gefundenen Dokumente und dem aktuellen Unix-Timestamp gespeichert. Verfügbare Werte: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.

  • UDM_PARAM_PHRASE_MODE - Gibt an, ob die Index-Datenbank eine Unterstützung für "Phrases" erlaubt. (Muß vor der Indizierung in der indexer.conf eingeschaltet werden. Mögliche Werte: UDM_PHRASE_ENABLED und UDM_PHRASE_DISABLED. Wird der Phrase-Modus verwendet, ist es natürlich nach wie vor möglich, alle anderen Suchmodi zu verwenden. Seit Version 3.1.11 wird auch der Cache-Modus zusammen mit dem Phrase-Modus unterstützt.

    Beispiele:

    "Arizona desert" - Diese Abfrage gibt alle Dokumente zurück, die "Arizona desert" als eine Zeichenkette enthalten. Für eine Suche nach kompletten Zeichenkette müssen diese in doppelte Anführungszeichen gesetzt werden.

  • UDM_PARAM_CHARSET - Legt einen lokalen Zeichensatz wie koi8-r, cp1252 fest.

  • UDM_PARAM_STOPFILE - Legt den Namen und den Pfad einer stopword-Datei fest. Auch hier wird nicht relativ zu UDM_CONF_DIR gesucht sondern relativ zu zu dem Pfad wo das aktuelle PHP-Script läuft.

  • UDM_PARAM_STOPTABLE - Lädt die stopwords aus der angegebenen SQL-Tabelle. Es können mehrere Stopwordtable-Kommandos verwendet werden.

  • UDM_PARAM_WEIGHT_FACTOR - Legt fest, wie bestimmte Teile eines Dokumentes zur Sortierung gewertet werden. Zur Zeit werden Body, Title, Keywords, Description und URL unterstützt. Um dieses Feature nutzen zu können, muss der Grad 2 in den *Weight-Anweisungen in der indexer.conf verwendet werden. Stellen wir uns vor, folgende Werte würden verwendet:

    URLWeight 1
    BodyWeight 2
    TitleWeight 4
    KeywordWeight 8
    DescWeight 16

    Solange der Indexer eine logische bit-ODER Operation verwendet, um das Gewicht einzelner Wörter festzulegen, wenn ein Wort mehrere Male im selben Dokument vorkommt, ist es möglich, zur Zeit der Suche festzustellen, welches Wort in welchem Teil des Dokumentes vorkommt. Wörter, die nur im Body auftauchen, haben das Gewicht 00000010 in binärer Notation. Wörter, die in allen Dokumententeilen vorkommen haben das Gewicht 00011111.

    Der Wert dieses Parameter ist ein String, bestehend aus den hexadezimalen Ziffern ABCDE. Jede Ziffer ist ein Faktor für das korrespondierende Bit. Für die oben angeführte Konfiguration zum Beispiel:

    E ist ein Faktor für das Gewicht 1 (URL Weight bit)
    D ist ein Faktor für das Gewicht 2 (BodyWeight bit)
    C ist ein Faktor für das Gewicht 4 (TitleWeight bit)
    B ist ein Faktor für das Gewicht 8 (KeywordWeight bit)
    A ist ein Faktor für das Gewicht 16 (DescWeight bit)

    Beispiele:

    UDM_PARAM_WEIGHT_FACTOR=00001 wird nur in URLs suchen.

    UDM_PARAM_WEIGHT_FACTOR=00100 wird nur in Titeln suchen.

    UDM_PARAM_WEIGHT_FACTOR=11100 wird in Titel, Keywords, Description aber nicht in URL und Body suchen.

    UDM_PARAM_WEIGHT_FACTOR=F9421 wird folgendermaßen Suchen und Werten:

    Beschreibung mit dem Faktor 15 (F hex)
    Keywords mit dem Faktor 9
    Title mit dem Faktor 4
    Body mit dem Faktor 2
    URL mit dem Faktor 1

    Wenn die Variable UDM_PARAM_WEIGHT_FACTOR übergeben wird, wird das Originalgewicht zur Sortierung verwendet.

  • UDM_PARAM_WORD_MATCH - Wortteilübereinstimmung. Dieser Parameter kann verwendet werden, um festzulegen, welcher Wortteil mit dem gesuchten Wort übereinstimmen muss. Dieses Feature funktioniert nur im "single" oder "multi"-Modus. Im Cachemode und in den CRC-Modi ist eine Verwendung nicht möglich. Erlaubt Werte:

    UDM_MATCH_BEGIN - Der Wortanfang muss übereinstimmen;

    UDM_MATCH_END - Das Wortende muss übereinstimmen;

    UDM_MATCH_WORD - Das gesamte Wort muss übereinstimmen;

    UDM_MATCH_SUBSTR - Teile des Wortes müssen übereinstimmen.

  • UDM_PARAM_MIN_WORD_LEN - Legt die mininmale Wortlänge fest. Jedes Wort, dass kürzer als die angegebene Länge ist, wird als stopword aufgefasst.

  • UDM_PARAM_ISPELL_PREFIXES - Mögliche Werte: UDM_PREFIXES_ENABLED und UDM_PREFIXES_DISABLED, die explizit die Verwendung von ISpell-Prefixen an- oder abschalten. Wird also zum Beispiel das Wort "tested" in einer Suchabfrage verwendet, werden auch Wörter wie "test" oder "testing" gefunden. Nur Endungen werden normalerweise Unterstützt. Prefixe verändern für gewöhnlich die Bedeutung von Wörtern. So werden bei einer Suche nach "tested" z.B. auch Dokumente gefunden, die das Wort "untested" enthalten. Um diese Funktion nutzen zu können, müssen vorher mittels udm_load_ispell_data() ISpell-Daten geladen werden.

  • UDM_PARAM_CROSS_WORDS - Aktiviert oder deaktiviert eine Unterstützung für Crosswords. Mögliche Werte: UDM_CROSS_WORDS_ENABLED und UDM_CROSS_WORDS_DISABLED.

    Das Crosswords-Feature erlaubt es, Wörter zwischen <a href="xxx"> und </a> dem Dokument zuzuordnen, zu dem dieser Link führt.

    Anmerkung: Crosswords werden seit mnoGoSearch 3.1.11 unterstützt.

  • UDM_PARAM_VARDIR - Gibt einen Pfad zu einem Verzeichnis an, in dem der Indexer Daten speichert, wenn der integrierte Datenbank-Modus oder der Cachemodus verwendet wird. Voreingestellt ist das /var-Verzeichnis der mnoGoSearch-Installation verwendet. Es können ausschliesslich Strings verwendet werden. Dieser Parameter ist erst ab PHP 4.1.0 verfügbar.

Zurück | Zum Anfang | Nach vorne
udm_open_stored | Nach oben | mSQL Funktionen


mSQL Funktionen

PHP Handbuch
Zurück Nach vorne

LXIII. mSQL Funktionen

Einführung

Diese Funktionen erlauben Ihnen, auf einen mSQL-Datenbankserver zuzugreifen. Mehr Informationen über mSQL findet man bei http://www.hughes.com.au/.

Installation

Um über diese Funktionen verfügen zu können, müssen Sie PHP mit der mSQL-Unterstützung kompilieren, indem Sie die Option --with-msql[=dir] angeben. Das Standardverzeichnis ist /usr/local/Hughes.

Laufzeit Konfiguration

Resource Typen

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MSQL_ASSOC (integer)

MSQL_NUM (integer)

MSQL_BOTH (integer)

Inhaltsverzeichnis
msql_affected_rows -- Gibt die Anzahl der betroffenen Datensätze zurück
msql_close -- Schliesst eine mSQL-Verbindung
msql_connect -- Öffnet eine mSQL Verbindung
msql_create_db -- Erzeugt eine mSQL Datenbank
msql_createdb -- Erzeugt eine mSQL Datenbank
msql_data_seek -- Bewegt den internen Datensatzzeiger
msql -- Send mSQL query
msql_dbname -- Gibt den Namen der aktuellen mSQL Datenbank zurück
msql_drop_db -- Löscht eine mSQL Datenbank
msql_error -- Gibt die letzte mSQL-Fehlermeldung zurück
msql_fetch_array -- Holt einen Datensatz als Array
msql_fetch_field -- Gibt Feldinformationen in einem Objekt zurück
msql_fetch_object -- Holt einen Datensatz als Objekt
msql_fetch_row -- Holt einen Datensatz als nummerisches Array
msql_field_flags -- Get field flags
msql_field_len -- Get field length
msql_field_name -- Get field name
msql_field_seek -- Setzt den internen Feld-Zeiger auf den angegebenen Feldindex
msql_field_table -- Get table name for field
msql_field_type -- Get field type
msql_fieldflags -- Gibt alle Flags für das angegebene Feld zurück
msql_fieldlen -- Gibt die Länge des angegebenen Feldes zurück
msql_fieldname -- Gibt den Feldnamen zurück
msql_fieldtable -- Gibt den Tabellennamen für ein Feld zurück
msql_fieldtype -- Gibt den Datentyp des angegebenen Feldes zurück
msql_free_result -- Gibt den durch Ergebnisse belegten Speicher frei
msql_list_dbs -- Listet alle mSQL Datenbanken auf dem Server auf
msql_list_fields -- Listet alle Felder einer Tabelle auf
msql_list_tables -- Listet alle Tabellen einer mSQL-Datenbank auf
msql_num_fields -- Gibt die Anzahl der Felder in einem Abfrageergebnis zurück
msql_num_rows -- Gibt die Anzahl der Zeilen eines Abfrageergebnisses zurück
msql_numfields -- Gibt die Anzahl der Felder eines Abfrageergebnisses zurück
msql_numrows -- Gibt die Anzahl der Zeilen eines Abfrageergebnisses zurück
msql_pconnect -- Öffnet eine persistente mSQL Verbindung
msql_query -- Schickt eine mSQL-Abfrage zum Server
msql_regcase -- Übersetzt einen case-sensitiven regulären Ausdruck in einen insensitiven Ausdruck
msql_result -- Holt den Wert eines einzelnen Feldes der übergebenen Zeile
msql_select_db -- Wählt eine mSQL Datenbank aus
msql_tablename -- Gibt den Tabellennamen für ein Feld zurück
msql -- Sendet eine mSQL- Abfrage an den Datenbankserver

Zurück | Zum Anfang | Nach vorne
udm_set_agent_param | Nach oben | msql_affected_rows


msql_affected_rows

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

msql_affected_rows -- Gibt die Anzahl der betroffenen Datensätze zurück

Beschreibung

int msql_affected_rows ( int query_identifier)

Gibt die Anzahl Datensätze zurück, die von der letzten Abfrage betroffen ("berührt") wurden. (z. B. die Anzahl der Zeilen, die von einem SELECT zurückgeliefert wurden, die Anzahl der Zeilen, die durch einen UPDATE geändert wurden oder die Anzahl der Zeilen, die von einem DELETE gelöscht wurden.)

Siehe auch: msql_query().

Zurück | Zum Anfang | Nach vorne
mSQL Funktionen | Nach oben | msql_close


msql_close

(PHP 3, PHP 4 , PHP 5)

msql_close -- Schliesst eine mSQL-Verbindung

Beschreibung

int msql_close ( int link_identifier)

Gibt bei Erfolg TRUE zurück, bei einem Fehler FALSE.

msql_close() schliesst die mit der angegebenen Verbindungskennung verknüpfte Verbindung zum mSQL Datenbankserver. Falls die Verbindungskennung nicht angegeben ist, wird die zuletzt geöffnete Verbindung geschlossen.

Beachten Sie, dass diese Funktion normalerweise nicht notwendig ist, weil geöffnete nicht-persistente Verbindungen automatisch geschlossen werden, wenn die Ausführung des Skripts beendet ist.

msql_close() schliesst keine persistenten Verbindungen, die mit msql_pconnect() geöffnet wurden.

Siehe auch: msql_connect() und msql_pconnect().

Zurück | Zum Anfang | Nach vorne
msql_affected_rows | Nach oben | msql_connect


msql_connect

(PHP 3, PHP 4 , PHP 5)

msql_connect -- Öffnet eine mSQL Verbindung

Beschreibung

int msql_connect ( [string server [, string username [, string password]]])

Gibt bei Erfolg eine positive Zahl als Verbindungskennung zurück oder FALSE bei einem Fehler.

msql_connect() erzeugt eine Verbindung zu einem mSQL Datenbankserver. Die Angabe eines Hostnamens als Argument ist optional. Wenn der Hostname fehlt, wird localhost angenommen.

Falls msql_connect() ein zweites Mal mit denselben Argumenten aufgerufen wird, wird keine neue Verbindung erzeugt, stattdessen wird die Verbindungskennung der aktuell geöffneten Verbindung zurückgegeben.

Die Verbindung zum Server wird geschlossen, sobald die Ausführung des Skripts beendet ist, es sei denn, die Verbindung wurde zuvor durch einen expliziten Aufruf von msql_close() beendet.

Siehe auch msql_pconnect(), msql_close().

Zurück | Zum Anfang | Nach vorne
msql_close | Nach oben | msql_create_db


msql_create_db

(PHP 3, PHP 4 , PHP 5)

msql_create_db -- Erzeugt eine mSQL Datenbank

Beschreibung

int msql_create_db ( string database name [, int link_identifier])

msql_create_db() erzeugt eine neue Datenbank auf dem mSQL-Server, die mit der angegebenen Verbindungskennung verknüpft ist.

Siehe auch: msql_drop_db().

Zurück | Zum Anfang | Nach vorne
msql_connect | Nach oben | msql_createdb


msql_createdb

(PHP 3, PHP 4 , PHP 5)

msql_createdb -- Erzeugt eine mSQL Datenbank

Beschreibung

int msql_createdb ( string database name [, int link_identifier])

Identisch mit msql_create_db().

Zurück | Zum Anfang | Nach vorne
msql_create_db | Nach oben | msql_data_seek


msql_data_seek

(PHP 3, PHP 4 , PHP 5)

msql_data_seek -- Bewegt den internen Datensatzzeiger

Beschreibung

int msql_data_seek ( int query_identifier, int row_number)

Gibt bei Erfolg TRUE zurück, bei Fehler FALSE.

msql_data_seek() bewegt den internen Datensatzzeiger in der mSQL Ergebnismenge, die mit der angegebenen Ergebniskennung verknüpft ist, zu der übergebenen Zeile. Der nächste Aufruf von msql_fetch_row() gibt diese Zeile zurück.

Siehe auch: msql_fetch_row().

Zurück | Zum Anfang | Nach vorne
msql_createdb | Nach oben | msql


msql

(PHP 3, PHP 4 , PHP 5)

msql -- Send mSQL query

Description

resouce msql_db_query ( string database, string query [, resource link_identifier])

Returns a positive mSQL query identifier to the query result, or FALSE on error.

msql_db_query() selects a database and executes a query on it. If the optional link_identifier is not specified, the function will try to find an open link to the mSQL server; if no such link is found it will try to create one as if msql_connect() was called with no arguments.

See also msql_connect().

Zurück | Zum Anfang | Nach vorne
msql_data_seek | Nach oben | msql_dbname


msql_dbname

(PHP 3, PHP 4 , PHP 5)

msql_dbname -- Gibt den Namen der aktuellen mSQL Datenbank zurück

Beschreibung

string msql_dbname ( int query_identifier, int i)

msql_dbname() gibt den Namen der Datenbank zurück, die auf Position i in der Ergebnismenge gespeichert ist, die von der Funktion msql_listdbs() zurückgegeben wird. Die Funktion msql_numrows() kann benutzt werden, um zu sehen, wieviele Datenbanknamen verfügbar sind.

Zurück | Zum Anfang | Nach vorne
msql | Nach oben | msql_drop_db


msql_drop_db

(PHP 3, PHP 4 , PHP 5)

msql_drop_db -- Löscht eine mSQL Datenbank

Beschreibung

int msql_drop_db ( string database_name, int link_identifier)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

msql_drop_db() löscht die Datenbank, die mit der übergebenen Verbindungskennung verknüpft ist, vollständig vom Server.

Siehe auch: msql_create_db().

Zurück | Zum Anfang | Nach vorne
msql_dbname | Nach oben | msql_error


msql_error

(PHP 3, PHP 4 , PHP 5)

msql_error -- Gibt die letzte mSQL-Fehlermeldung zurück

Beschreibung

string msql_error ( )

Fehler, die von mSQL zurückgeliefert werden, geben keine Warnungen mehr aus. Benutzen Sie diese Funktion, um die Fehlermeldungen zu erhalten.

Zurück | Zum Anfang | Nach vorne
msql_drop_db | Nach oben | msql_fetch_array


msql_fetch_array

(PHP 3, PHP 4 , PHP 5)

msql_fetch_array -- Holt einen Datensatz als Array

Beschreibung

int msql_fetch_array ( int query_identifier [, int result_type])

Gibt die Inhalte des gelesenen Datensatzes in einem Array zurück oder FALSE, falls kein Datensatz mehr gelesen werden kann.

msql_fetch_array() ist eine erweiterte Version von msql_fetch_row(). Zusätzlich zur Speicherung der Daten in einem nummerischen Array speichert diese Funktion den Datensatz auch mit assoziativen Indizes, indem sie die Feldnamen als Schlüssel benutzt.

Das zweite, optionale Argument result_type in msql_fetch_array() ist eine Konstante, die die folgenden Werte annehmen kann: MSQL_ASSOC, MSQL_NUM, und MYSQL_BOTH.

Seien Sie vorsichtig, wenn Sie ein Abfrageergebnis haben, das einen Datensatz zurückliefert, das nur ein Feld enthält, welches den Wert 0 (oder einen leeren String oder NULL) enthält.

Wichtig zu bemerken ist, dass msql_fetch_array() NICHT wesentlich langsamer als msql_fetch_row() ist, obwohl es einen zusätzlichen, wichtigen Ergebniswert zurückgibt.

Für weitere Einzelheiten siehe auch msql_fetch_row().

Zurück | Zum Anfang | Nach vorne
msql_error | Nach oben | msql_fetch_field


msql_fetch_field

(PHP 3, PHP 4 , PHP 5)

msql_fetch_field -- Gibt Feldinformationen in einem Objekt zurück

Beschreibung

object msql_fetch_field ( int query_identifier, int field_offset)

Gibt ein Objekt mit Feldinformationen zurück

msql_fetch_field() kann benutzt werden, um Informationen über Felder in einem bestimmten Abfrageergebnis zu erhalten. Falls der Feldname nicht angegeben wurde, wird ein Objekt mit Informationen über das nächste, noch nicht mit msql_fetch_field() geholte Feld zurückgegeben.

Die Eigenschaften dieses Objekts sind:

  • name - Spaltenname

  • table - Tabellenname, zu der die Spalte gehört

  • not_null - 1 falls die Spalte keine NULL-Werte erlaubt

  • primary_key - 1 falls das Feld ein Primärschlüssel ist

  • unique - 1 falls die Spalte ein eindeutiger Schlüssel ist

  • type - der Typ der Spalteninhalte

Siehe auch msql_field_seek().

Zurück | Zum Anfang | Nach vorne
msql_fetch_array | Nach oben | msql_fetch_object


msql_fetch_object

(PHP 3, PHP 4 , PHP 5)

msql_fetch_object -- Holt einen Datensatz als Objekt

Beschreibung

int msql_fetch_object ( int query_identifier [, int result_type])

Gibt ein Objekt zurück, dessen Eigenschaften mit den Spalten der geholten Zeile korrespondieren oder FALSE, falls keine Zeilen mehr geholt werden können.

msql_fetch_object() ist ähnlich wie msql_fetch_array(), mit einem Unterschied - dass ein Objekt anstelle eines Arrays zurückgegeben wird. Indirekt bdeutet das, dass man auf die Daten nur über die Feldnamen zugreifen kann, und nicht über ihre Feldnummern. (Ziffern sind unzulässige Namen für Eigenschaften.)

Das optionale zweite Argument result_type in msql_fetch_array() ist eine Konstante, die die folgenden Werte annehmen kann: MSQL_ASSOC, MSQL_NUM, und MSQL_BOTH.

Von der Geschwindigkeit her ist die Funktion identisch zu msql_fetch_array(), und fast so schnell wie msql_fetch_row() (der Unterschied ist unerheblich).

Siehe auch: msql_fetch_array() und msql_fetch_row().

Zurück | Zum Anfang | Nach vorne
msql_fetch_field | Nach oben | msql_fetch_row


msql_fetch_row

(PHP 3, PHP 4 , PHP 5)

msql_fetch_row -- Holt einen Datensatz als nummerisches Array

Beschreibung

array msql_fetch_row ( int query_identifier)

Gibt ein Array mit einem Element für jede Spalte des Datensatzes zurück, oder FALSE, falls kein Datensatz mehr geholt werden kann.

msql_fetch_row() holt einen Datensatz des Abfrageergebnisses, das mit dem Ergebnisbezeichner verknüpft ist. Der Datensatz wird als Array zurückgegeben. Alle Spalteninhalte des Ergebnisses werden unter einem nummerischen Index, der bei 0 beginnt, gespeichert.

Aufeinanderfolgende Aufrufe von msql_fetch_row() geben jeweils die nächste Zeile des Abfrageergebnisses zurück, oder FALSE, wenn keine Datensätze mehr gelesen werden können.

Siehe auch: msql_fetch_array(),
msql_fetch_object(),
msql_data_seek() und
msql_result().

Zurück | Zum Anfang | Nach vorne
msql_fetch_object | Nach oben | msql_field_flags


msql_field_flags

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_flags -- Get field flags

Description

string msql_field_flags ( resource query_identifier, int field_offset)

msql_field_flags() returns the field flags of the specified field. Currently this is either, "not NULL", "primary key", a combination of the two or "" (an empty string).

Zurück | Zum Anfang | Nach vorne
msql_fetch_row | Nach oben | msql_field_len


msql_field_len

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_len -- Get field length

Description

int msql_field_len ( resource query_identifier, int field_offset)

msql_field_len() returns the length of the specified field or FALSE on error.

Zurück | Zum Anfang | Nach vorne
msql_field_flags | Nach oben | msql_field_name


msql_field_name

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_name -- Get field name

Description

string msql_field_name ( resource query_identifier, int field)

msql_field_name() returns the name of the specified field from the result resource query_identifier. msql_field_name($result, 2); will return the name of the second field in the result set associated with the result identifier.

Zurück | Zum Anfang | Nach vorne
msql_field_len | Nach oben | msql_field_seek


msql_field_seek

(PHP 3, PHP 4 , PHP 5)

msql_field_seek -- Setzt den internen Feld-Zeiger auf den angegebenen Feldindex

Beschreibung

int msql_field_seek ( int query_identifier, int field_offset)

Setzt den internen Feld-Zeiger auf das angegebenen Feld. Falls der nächste Aufruf von msql_fetch_field() keinen Index enthält, wird dieses Feld zurückgegeben.

Siehe auch: msql_fetch_field().

Zurück | Zum Anfang | Nach vorne
msql_field_name | Nach oben | msql_field_table


msql_field_table

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_table -- Get table name for field

Description

int msql_field_table ( int query_identifier, int field)

Returns the name of the table field was fetched from.

This function returns FALSE on failure.

Zurück | Zum Anfang | Nach vorne
msql_field_seek | Nach oben | msql_field_type


msql_field_type

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_type -- Get field type

Description

string msql_field_type ( resource query_identifier, int field_offset)

msql_field_type() is similar to the msql_field_name() function. The arguments are identical, but the field type is returned. This will be one of "int", "char" or "real".

This function returns FALSE on failure.

Zurück | Zum Anfang | Nach vorne
msql_field_table | Nach oben | msql_fieldflags


msql_fieldflags

(PHP 3, PHP 4 , PHP 5)

msql_fieldflags -- Gibt alle Flags für das angegebene Feld zurück

Beschreibung

string msql_fieldflags ( int query_identifier, int i)

msql_fieldflags() gibt die Flags für das angegebene Feld zurück. Im Moment ist das entweder "not NULL", "primary key", eine Kombination der beiden Flags oder "" (ein leerer String).

Zurück | Zum Anfang | Nach vorne
msql_field_type | Nach oben | msql_fieldlen


msql_fieldlen

(PHP 3, PHP 4 , PHP 5)

msql_fieldlen -- Gibt die Länge des angegebenen Feldes zurück

Beschreibung

int msql_fieldlen ( int query_identifier, int i)

msql_fieldlen() gibt die Länge des angegebenen Feldes zurück.

Zurück | Zum Anfang | Nach vorne
msql_fieldflags | Nach oben | msql_fieldname


msql_fieldname

(PHP 3, PHP 4 , PHP 5)

msql_fieldname -- Gibt den Feldnamen zurück

Beschreibung

string msql_fieldname ( int query_identifier, int field)

msql_fieldname() Gibt den Namen des bezeichneten Feldes zurück. query_identifier ist die Ergebniskennung und field ist der Index des Feldes. msql_fieldname($result, 2); gibt den Namen des dritten Feldes des Abfrageergebnisses zurück, das mit der Ergebniskennung verknüpft ist.

Zurück | Zum Anfang | Nach vorne
msql_fieldlen | Nach oben | msql_fieldtable


msql_fieldtable

(PHP 3, PHP 4 , PHP 5)

msql_fieldtable -- Gibt den Tabellennamen für ein Feld zurück

Beschreibung

int msql_fieldtable ( int query_identifier, int field)

Gibt den Namen der Tabelle zurück, aus welcher das Feld field einer Ergebnismenge stammt.

Zurück | Zum Anfang | Nach vorne
msql_fieldname | Nach oben | msql_fieldtype


msql_fieldtype

(PHP 3, PHP 4 , PHP 5)

msql_fieldtype -- Gibt den Datentyp des angegebenen Feldes zurück

Beschreibung

string msql_fieldtype ( int query_identifier, int i)

msql_fieldtype() ist ähnlich wie die Funktion msql_fieldname(). Die Argumente sind identisch, nur wird hier der Typ des Feldes zurückgegeben. Das kann "int", "char" oder "real" sein.

Zurück | Zum Anfang | Nach vorne
msql_fieldtable | Nach oben | msql_free_result


msql_free_result

(PHP 3, PHP 4 , PHP 5)

msql_free_result -- Gibt den durch Ergebnisse belegten Speicher frei

Beschreibung

int msql_free_result ( int query_identifier)

msql_free_result() gibt den Speicher, den das mit query_identifier verknüpfte Ergebnis belegt hat, frei. Wenn PHP ein Skript beendet, wird dieser Speicher automatisch freigegeben, so dass man diese Funktion nur aufrufen muss, um sicher zu sein, nicht zuviel Speicherplatz während der Laufzeit des Skripts zu belegen.

Zurück | Zum Anfang | Nach vorne
msql_fieldtype | Nach oben | msql_list_dbs


msql_list_dbs

(PHP 3, PHP 4 , PHP 5)

msql_list_dbs -- Listet alle mSQL Datenbanken auf dem Server auf

Beschreibung

int msql_list_dbs ( void )

msql_list_dbs() gibt einen Ergebnisbezeichner zurück, der die Namen aller Datenbanken, die auf dem mSQL-Server liegen, enthält. Mit der Funktion msql_dbname() kann dieser Ergebnisbezeichner durchlaufen werden.

Zurück | Zum Anfang | Nach vorne
msql_free_result | Nach oben | msql_list_fields


msql_list_fields

(PHP 3, PHP 4 , PHP 5)

msql_list_fields -- Listet alle Felder einer Tabelle auf

Beschreibung

int msql_list_fields ( string database, string tablename)

msql_list_fields() liefert Informationen über die angegebene Tabelle. Argumente sind der Name der Datenbank und der Tabellenname. Ein Ergebnisbezeichner wird zurückgegeben, der mit msql_fieldflags(), msql_fieldlen(), msql_fieldname() und msql_fieldtype() benutzt werden kann. Ein Ergebnisbezeichner ist eine positive Ganzzahl. Die Funktion gibt -1 zurück, falls ein Fehler auftritt. Ein String, der den Fehler beschreibt, wird in $phperrmsg geschrieben und auf dem Bildschirm ausgegeben, es sei denn, die Funktion wurde als @msql_list_fields() aufgerufen.

Siehe auch msql_error().

Zurück | Zum Anfang | Nach vorne
msql_list_dbs | Nach oben | msql_list_tables


msql_list_tables

(PHP 3, PHP 4 , PHP 5)

msql_list_tables -- Listet alle Tabellen einer mSQL-Datenbank auf

Beschreibung

int msql_list_tables ( string database)

msql_list_tables() hat als Argumente einen Datenbanknamen und liefert einen Ergebnisbezeichner, fast genauso, wie die Funktion msql(). Die Funktion msql_tablename() sollte benutzt werden, um die aktuellen Tabellennamen aus dem Ergebnisbezeichner zu erhalten.

Zurück | Zum Anfang | Nach vorne
msql_list_fields | Nach oben | msql_num_fields


msql_num_fields

(PHP 3, PHP 4 , PHP 5)

msql_num_fields -- Gibt die Anzahl der Felder in einem Abfrageergebnis zurück

Beschreibung

int msql_num_fields ( int query_identifier)

msql_num_fields() Gibt die Anzahl der Felder in einem Abfrageergebnis zurück.

Siehe auch: msql(),
msql_query(),
msql_fetch_field() und
msql_num_rows().

Zurück | Zum Anfang | Nach vorne
msql_list_tables | Nach oben | msql_num_rows


msql_num_rows

(PHP 3, PHP 4 , PHP 5)

msql_num_rows -- Gibt die Anzahl der Zeilen eines Abfrageergebnisses zurück

Beschreibung

int msql_num_rows ( int query_identifier)

msql_num_rows() Gibt die Anzahl der Zeilen eines Abfrageergebnisses zurück.

Siehe auch: msql(),
msql_query() und
msql_fetch_row().

Zurück | Zum Anfang | Nach vorne
msql_num_fields | Nach oben | msql_numfields


msql_numfields

(PHP 3, PHP 4 , PHP 5)

msql_numfields -- Gibt die Anzahl der Felder eines Abfrageergebnisses zurück

Beschreibung

int msql_numfields ( int query_identifier)

Identisch zu msql_num_fields().

Zurück | Zum Anfang | Nach vorne
msql_num_rows | Nach oben | msql_numrows


msql_numrows

(PHP 3, PHP 4 , PHP 5)

msql_numrows -- Gibt die Anzahl der Zeilen eines Abfrageergebnisses zurück

Beschreibung

int msql_numrows ( void )

Identisch zu msql_num_rows().

Zurück | Zum Anfang | Nach vorne
msql_numfields | Nach oben | msql_pconnect


msql_pconnect

(PHP 3, PHP 4 , PHP 5)

msql_pconnect -- Öffnet eine persistente mSQL Verbindung

Beschreibung

int msql_pconnect ( [string server [, string username [, string password]]])

Gibt bei Erfolg eine positive Zahl als mSQL Verbindungskennung für die persistente Verbindung zurück, oder FALSE bei einem Fehler.

msql_pconnect() verhält sich sehr ähnlich wie msql_connect(), mit zwei grossen Unterschieden.

Erstens, wenn die Verbindung aufgebaut wird, prüft die Funktion zuerst, ob eine geöffnete persistente Verbindung zu demselben Host besteht. Wird eine Verbindung gefunden, wird deren Verbindungskennung zurückgegeben anstatt eine neue Verbindung aufzubauen.

Zweitens, die Verbindung zum mSQL-Server wird nicht geschlossen, wenn die Ausführung des Skripts beendet ist. Stattdessen bleibt die Verbindung für den späteren Gebrauch offen. (msql_close() schliesst keine Verbindungen, die mit msql_pconnect() erzeugt wurden).

Darum wird diese Verbindungsart als 'persistent' bezeichnet.

Zurück | Zum Anfang | Nach vorne
msql_numrows | Nach oben | msql_query


msql_query

(PHP 3, PHP 4 , PHP 5)

msql_query -- Schickt eine mSQL-Abfrage zum Server

Beschreibung

int msql_query ( string query, int link_identifier)

msql_query() schickt eine Datenbankabfrage an die aktuelle Datenbank auf dem Server, die mit der angegebenen Verbindungskennung verknüpft ist. Wenn keine Verbindungskennung angegeben ist, wird die zuletzt geöffnete Verbindung angenommen. Falls keine Verbindung geöffnet ist, versucht die Funktion, eine Verbindung aufzubauen, die sie so benutzt, als wäre msql_connect() aufgerufen worden.

Gibt bei Erfolg eine positive Zahl als mSQL Verbindungskennung zurück oder FALSE bei einem Fehler.

Beispiel 1. msql_query()

<?php
$link = msql_connect("dbserver")
   or die("Kann nicht zum msql Server verbinden: ".msql_error());
msql_select_db("db", $link)
   or die("Kann Datenbank 'db' nicht auswählen: ".msql_error());

$result = msql_query("SELECT * FROM table WHERE id=1", $link);
if (!$result) {
   die("Abfrage fehlgeschlagen: ".msql_error());
}

while ($row = msql_fetch_array($result)) {
    echo $row["id"];
}
?>

Siehe auch: msql(),
msql_select_db() und
msql_connect().

Zurück | Zum Anfang | Nach vorne
msql_pconnect | Nach oben | msql_regcase


msql_regcase

msql_regcase -- Übersetzt einen case-sensitiven regulären Ausdruck in einen insensitiven Ausdruck

Beschreibung

Siehe sql_regcase().

Zurück | Zum Anfang | Nach vorne
msql_query | Nach oben | msql_result


msql_result

(PHP 3, PHP 4 , PHP 5)

msql_result -- Holt den Wert eines einzelnen Feldes der übergebenen Zeile

Beschreibung

int msql_result ( int query_identifier, int i, mixed field)

Gibt den Wert zurück, der in der übergebenen Zeile und Spalte des bezeichneten mSQL-Abfrageergebnisses steht.

msql_result() gibt den Inhalt einer Tabellenzelle des mSQL-Abfrageergebnisses zurück. Das field Argument kann sowohl der Index als auch der Feldname des Feldes sein, oder, ein mit dem Tabellennamen qualifizierter Feldname (Tabellenname.Feldname). Falls der Spaltenname ein Alias ist ('select foo as bar from ...'), wird der Aliasname anstatt des Feldnamens angegeben.

Wenn man mit grossen Abfrageergebnissen arbeitet, sollte man die Benutzung der Funktionen in Betracht ziehen, die ganze Zeilen aus der Tabelle auslesen (siehe unten). Weil diese Funktionen die Inhalte von verschiedene Tabellenzellen in einem Funktionsaufruf holen, sind sie VIEL schneller als msql_result(). Beachten Sie auch, dass die Angabe eines nummerischen Index für das field Argument viel schneller ist, als die Angabe eines Feldnamens oder eines Tabellenname.Feldname Arguments.

Empfohlene Alternativen mit hoher Ausführungsgeschwindigkeit:
msql_fetch_row(),
msql_fetch_array() und
msql_fetch_object().

Zurück | Zum Anfang | Nach vorne
msql_regcase | Nach oben | msql_select_db


msql_select_db

(PHP 3, PHP 4 , PHP 5)

msql_select_db -- Wählt eine mSQL Datenbank aus

Beschreibung

int msql_select_db ( string database_name, int link_identifier)

Gibt bei Erfolg TRUE zurück, FALSE bei einem Fehler.

msql_select_db() wählt die aktuell aktive Datenbank, die mit der übergebenen Verbindungskennung verknüpft ist, auf dem Server aus. Falls keine Verbindungskennung angegeben wurde, wird die zuletzt geöffnete Verbindung angenommen. Falls keine Verbindung geöffnet ist, versucht die Funktion eine Verbindung aufzubauen und zu benutzen, so als wäre msql_connect() aufgerufen worden.

Jeder nachfolgende Aufruf von msql_query() bezieht sich auf die aktive Datenbank.

Siehe auch: msql_connect(),
msql_pconnect() und
msql_query().

Zurück | Zum Anfang | Nach vorne
msql_result | Nach oben | msql_tablename


msql_tablename

(PHP 3, PHP 4 , PHP 5)

msql_tablename -- Gibt den Tabellennamen für ein Feld zurück

Beschreibung

string msql_tablename ( int query_identifier, int field)

msql_tablename() hat als Argumente einen Ergebnisbezeichner, der von der Funktion msql_list_tables() zurückgegeben wurde, und einen Integerwert und gibt den Namen einer Tabelle zurück. Die Funktion msql_numrows() kann benutzt werden, um die Anzahl der Tabellen in dem Ergebnisbezeichner festzustellen.

Beispiel 1. msql_tablename() example

<?php
msql_connect ("localhost");
$result = msql_list_tables ("wisconsin");
$i = 0;
while ($i < msql_numrows ($result)) {
    $tb_names[$i] = msql_tablename ($result, $i);
    echo $tb_names[$i] . "<BR>";
    $i++;
}
?>

Zurück | Zum Anfang | Nach vorne
msql_select_db | Nach oben | msql


msql

(PHP 3, PHP 4 , PHP 5)

msql -- Sendet eine mSQL- Abfrage an den Datenbankserver

Beschreibung

int msql ( string database, string query [, int link_identifier])

Gibt eine positive Zahl als mSQL Ergebniskennung für diese Abfrage zurück oder FALSE bei einem Fehler

msql() wählt eine Datenbank aus und führt auf ihr eine Abfrage aus. Falls die optionale Verbindungskennung nicht angegeben ist, versucht die Funktion, eine offene Verbindung zum Datenbankserver zu finden. Wenn keine Verbindung gefunden wird, wird versucht, eine zu erzeugen, so als würde msql_connect() ohne Argumente aufgerufen. (siehe msql_connect()).

Zurück | Zum Anfang | Nach vorne
msql_tablename | Nach oben | MySQL Funktionen


MySQL Funktionen

PHP Handbuch
Zurück Nach vorne

LXIV. MySQL Funktionen

Einführung

Diese Funktionen erlauben den Zugriff auf einen MySQL Datenbank-Server. Weitere Information zu MySQL sind unter http://www.mysql.com/ erhältlich.

Die Dokumentation zu MySQL ist unter http://dev.mysql.com/doc/ zu finden.

Anforderungen

Um diese Funktionen nutzen zu können, müssen Sie PHP mit MySQL-Unterstützung übersetzen.

Installation

Durch die Angabe der Konfigurationsoption --with-mysql[=DIR] ermöglichen Sie PHPden Zugriff auf MySQL Datenbanken.

Seit PHP 4 ist --with-mysql im Standard aktiviert. Um PHP ohne MySQL Unterstützung zu kompilieren müssen Sie --without-mysql verwenden. Ebenfalls für PHP 4 gilt: falls Sie mit MySQL Unterstützung kompilieren und den Pfad zum Quellverzeichnis von MySQL (DIR) nicht angeben, verwendet PHP die internen MySQL-Client Bibliotheken. Unter Windows gibt es keine DLL, die Unterstützung für MySQL ist in PHP 4 enthalten. Verwenden Sie andere Anwendungen, die MySQL ebenfalls nutzen (zum Beispiel auth-mysql) sollten Sie nicht die interne Bibliothek benutzen, sondern den Pfad zum MySQL Quellverzeuchnis wie folgt angeben: --with-mysql=/pfad/zu/mysql. Diese Angabe zwingt PHP die Client-Bibliotheken zu nutzen, die von MySQL installiert wurden. Diese Vorgehensweise vermeidet jegliche Konflikte.

In PHP 5 ist MySQL weder standardmäßig aktiviert, noch ist die MySQL Client Bibliothek in PHP enthalten. Die Gründe und weitere Details lesen Sie bitte in der FAQ nach.

Diese MySQL Erweiterung arbeitet nicht mit MySQL Versionen größer als 4.1.0 zusammen. Für diese müssen Sie MySQLi benutzen.

Warnung

Abstürze und Startprobleme von PHP können auftreten, wenn Sie diese Extension zusammen mit der recode-Extension laden. Für weitere Informationen schauen Sie bitte bei der recode Extension nach.

Anmerkung: Falls Sie andere Zeichensätze als latin (Standard) benötigen, müssen Sie die externe (nicht die mitgelieferte) libmysql mit den benötigten einkompilierten Zeichensätzen installieren und verwenden.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. MySQL Konfigurations-Optionen

Name | Standard | Veränderbar
mysql.allow_persistent | "On" | PHP_INI_SYSTEM
mysql.max_persistent | "-1" | PHP_INI_SYSTEM
mysql.max_links | "-1" | PHP_INI_SYSTEM
mysql.default_port | NULL | PHP_INI_ALL
mysql.default_socket | NULL | PHP_INI_ALL
mysql.default_host | NULL | PHP_INI_ALL
mysql.default_user | NULL | PHP_INI_ALL
mysql.default_password | NULL | PHP_INI_ALL
mysql.connect_timeout | "0" | PHP_INI_SYSTEM
Weitere Details und die Definition der PHP_INI_* Konstanten sind unter ini_set() zu finden.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysql.allow_persistent boolean

gibt an, ob persistente Verbindungen zu MySQL gestattet werden sollen.

mysql.max_persistent integer

Die maximale Anzahl von persistenten MySQL Verbindungen pro Prozess.

mysql.max_links integer

Die maximale Anzahl von MySQL Verbindungen, einschließlich persistenter, pro Prozess.

mysql.default_port string

Gibt die Portnummer an, über den die Verbindung zum MySQL-Server aufgebaut werden soll, wenn kein Port als Verbindungsparameter übergeben wurde. Wird die Portnummer nicht angegeben, wird der Port über die MYSQL_TCP_PORT Umgebungsvariable, dem mysql-tcp Eintrag aus der Datei /etc/services oder der Konstanten MYSQL_PORT festgelegt, in dieser Reihenfolge. Win32 Systeme verwenden nur die Konstante MYSQL_PORT.

mysql.default_socket string

Legt den Socketnamen fest, der bei der Verbindung zu einem lokalen Datenbankserver bennutzt werden soll, wenn kein anderer Name angegeben wurde.

mysql.default_host string

Legt den Datenbankserver fest, zu dem eine Verbindung aufgebaut werden soll, wenn kein Server angegeben wurde. Diese Option hat im safe mode keine Auswirkungen.

mysql.default_user string

Legt den Benutzernamen fest, der bei einer Verbindung zu einer Datenbank verwendet werden soll, wenn kein Benutzer angegeben wurde. Diese Option hat im safe mode keine Auswirkungen.

mysql.default_password string

Legt das Passwort fest, das bei einer Verbindung zu einer Datenbank verwendet werden soll, wenn kein Passwort angegeben wurde. Diese Option hat im safe mode keine Auswirkungen.

mysql.connect_timeout integer

Verbindungstimeout in Sekunden. Auf Linuxsystemen wird dieser Timeout auch für die erste Antwort des Servers benutzt.

Resource Typen

Innerhalb des MySQL-Moduls werden zwei Resourcetypen benutzt. Der erste ist die Verbindungskennung für eine Verbindung zum Datenbankserver, der zweite Typ ist eine Resource die auf das Ergebnis einer Anfrage/Abfrage verweist.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Ab PHP 4.3.0 ist es möglich zusätzliche Client-Flags bei den Funktionen mysql_connect() und mysql_pconnect() anzugeben. Die folgenden Konstanten sind definiert:

Tabelle 2. MySQL-Client Konstanten

Konstante | Beschreibung
MYSQL_CLIENT_COMPRESS | Benutze das Kompression Protokoll
MYSQL_CLIENT_IGNORE_SPACE | Erlaubt Leerzeichen nach Funktionsnamen
MYSQL_CLIENT_INTERACTIVE | Erlaubt Inaktivität von interactive_timeout Sekunden (anstatt wait_timeout) bevor die Verbindung geschlossen wird.

Die Funktion mysql_fetch_array() verwendet eine Konstante für die verschiedenen Arten der Ergebnisarrays. Die folgenden Konstanten sind definiert:

Tabelle 3. MySQL fetch Konstanten

Konstante | Beschreibung
MYSQL_ASSOC | Spalten werden in einem assoziativen Array zurückgegeben.
MYSQL_BOTH | Spalten werden sowohl als assoziatives als auch als numerisches Array zurückgegeben.
MYSQL_NUM | Spalten werden als numerisches Array zurückgegeben. Der Index beginnt bei 0, dieser entspricht dem ersten Feld des Ergebnisses.

Begriffserläuterung

In diesem Dokument wird eine Reihe von Begriffen benutzt, die hier kurz erläutert werden sollen.

Anfrageergebnis, Ergebnis

Die Rückgabe auf eine Anfrage an den Datenbankserver. Anfragen können sowohl Datenbankanfragen sein, die Teile des Datenbankinhalts umfassen oder Informationen über eine Datenbank oder den Datenbankserver liefern. Ist das Ergebnis eine Datenbankanfrage kann man es sich als Tabelle vorstellen, in der die Zeilen die Datensätze sind und die Felder den Spalten ensprechen. Ein Ergebnis besteht aus 0 oder beliebig vielen Datensätzen.

Ergebnis-Kennung

Eine Referenz auf ein Ergebnis. Über diese Kennung erfolgt grundsätzlich der Zugriff auf das Ergebnis.

Datensatz

Eine Zeile aus einem Anfrageergebnis bestehend aus den Werten der einzelnen Felder.

Datensatzzeiger

Ein interner Zeiger auf einen Datensatz in einem Anfrageergebnis. Dieser Zeiger bestimmt auf welchen Datensatz zugegriffen wird. Der Zeiger kann sowohl implizit als auch explizit verändert werden.

Feld

Entspricht einer Spalte im Anfrageergebnis.

Feldzeiger

Wie Datensatzzeiger bei Zugriffen auf Felder eines Anfrageergebnisses.

Verbindungs-Kennung

Eine Referenz auf eine Verbindung zum Datenbank-Server. Mit dieser Verbindung ist beispielsweise die Datenbank, der Benutzer, der Rechnername auf dem die Datenbank läuft und weiteres verknüpft. Jeder Zugriff auf den Server nutzt diese Kennung. Wenn die Kennung beim Aufruf einer Funktion nicht angegeben wird, so wird die aktuelle Verbindungs-Kennung verwendet, die intern von PHP verwaltet wird.

Beispiele

Folgendes einfache Beispiel zeigt Ihnen, wie Sie sich mit einer MySQL- Datenbank verbinden, eine Anfrage ausführen, die Ergebnisse ausgeben und die Verbindung wieder trennen.

Beispiel 1. MySQL Erweiterung: ein Überblicks Beispiel

<?php
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("Meine_Datenbank") or die("Auswahl der Datenbank fehlgeschlagen");

/* ausführen einer SQL Anfrage */
$query = "SELECT * FROM Meine_Tabelle";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

/* Ausgabe der Ergebnisse in HTML */
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

/* Freigeben des Resultsets */
mysql_free_result($result);

/* schliessen der Verbinung */
mysql_close($link);
?>

Inhaltsverzeichnis
mysql_affected_rows -- Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation
mysql_change_user -- Ändert den zur Zeit angemeldeten Benutzer der aktiven Verbindung
mysql_client_encoding -- Liefert den Namen des Zeichensatzes
mysql_close -- Schließt eine Verbindung zu MySQL
mysql_connect -- Öffnet eine Verbindung zu einem MySQL-Server
mysql_create_db -- Anlegen einer MySQL-Datenbank
mysql_data_seek -- Bewegt den internen Ergebnis-Zeiger
mysql_db_name -- Liefert Ergebnisdaten
mysql_db_query -- Absetzen einer Anfrage an die Datenbank
mysql_drop_db -- Löschen einer Datenbank
mysql_errno -- Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL Operation
mysql_error -- Liefert den Fehlertext der zuvor ausgeführten MySQL Operation
mysql_escape_string -- Maskiert einen String zur Benutzung in mysql_query.
mysql_fetch_array -- Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
mysql_fetch_assoc -- Liefert einen Datensatz als assoziatives Array
mysql_fetch_field -- Liefert ein Objekt mit Feldinformationen aus einem Anfrageergebnis
mysql_fetch_lengths -- Liefert die Länge eines jeden Feldes in einem Ergebnis
mysql_fetch_object -- Liefert eine Ergebniszeile als Objekt
mysql_fetch_row -- Liefert einen Datensatz als indiziertes Array
mysql_field_flags -- Liefert die Flags eines Feldes in einem Anfrageergebnis
mysql_field_len -- Liefert die Länge des angegebenen Feldes
mysql_field_name -- Liefert den Namen eines Feldes in einem Ergebnis
mysql_field_seek -- Setzt den Ergebniszeiger auf ein bestimmtes Feldoffset
mysql_field_table -- Liefert den Namen der Tabelle, die das genannte Feld enthält
mysql_field_type -- Liefert den Typ eines Feldes in einem Ergebnis
mysql_free_result -- Gibt belegten Speicher wieder frei
mysql_get_client_info -- Liefert MySQL Clientinformationen
mysql_get_host_info -- Liefert MySQL Host Informationen
mysql_get_proto_info -- Liefert MySQL Protokollinformationen
mysql_get_server_info -- Liefert MySQL Server Informationen
mysql_info -- liefert Informationen über die zuletzt ausgeführte Anfrage zurück
mysql_insert_id -- Liefert die ID einer vorherigen INSERT-Operation
mysql_list_dbs -- Auflistung der verfügbaren Datenbanken auf einem MySQL Server
mysql_list_fields -- Listet MySQL Ergebnisfelder auf
mysql_list_processes -- Zeigt die MySQL Prozesse an
mysql_list_tables -- Listet Tabellen in einer MySQL Datenbank auf
mysql_num_fields -- Liefert die Anzahl der Felder in einem Ergebnis
mysql_num_rows -- Liefert die Anzahl der Datensätze im Ergebnis
mysql_pconnect -- Öffnet eine persistente Verbindung zum MySQL Server
mysql_ping -- Ping a server connection or reconnect if there is no connection
mysql_query -- Sendet eine Anfrage an MySQL
mysql_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection.
mysql_result -- Liefert Ergebnis
mysql_select_db -- Auswahl einer MySQL Datenbank
mysql_stat -- Zeigt den momentanen Serverstatus an
mysql_tablename -- Liefert den Namen einer Tabelle
mysql_thread_id -- Zeigt die aktuelle Thread ID an
mysql_unbuffered_query -- Sendet eine SQL Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern.

Zurück | Zum Anfang | Nach vorne
msql | Nach oben | mysql_affected_rows


mysql_affected_rows

(PHP 3, PHP 4 , PHP 5)

mysql_affected_rows -- Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation

Beschreibung

int mysql_affected_rows ( [resource Verbindungs-Kennung])

mysql_affected_rows() liefert die Anzahl betroffener Datensätze durch die letzte INSERT, UPDATE oder DELETE Anfrage an den Server, die mit der angegebenen Verbindungs-Kennung assoziiert wird. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen.

Anmerkung: Falls Sie Transaktionen verwenden, müssen Sie mysql_affected_rows() unmittelbar nach Ihrer INSERT, UPDATE, oder DELETE Anfrage aufrufen, nicht nach dem Commit.

War die letzte Anfrage ein DELETE-Anweisung ohne WHERE Bedingung, wurden alle Datensätze aus der Tabelle gelöscht. Diese Funktion wird aber trotzdem Null (0) zurückliefern.

Anmerkung: Benutzen Sie UPDATE wird MySQL keine Spalten aktualisieren, bei denen der neue dem alten Wert entpspricht. Das kann dazu führen, dass mysql_affected_rows() nicht die tatsächliche Anzahl der betroffenen Zeilen liefert, sondern nur die, die wörtlich durch die Anfrage betroffen sind.

Diese Funktion arbeitet nicht in Verbindung mit SELECT-Anfragen, sondern nur bei Anweisungen, die Datensätze verändern. Um die Anzahl der gelieferten Datensätze einer SELECT-Anfrage zu erhalten, benutzen Sie die Funktion mysql_num_rows().

Falls die letze Anfrage fehlschlägt, liefert diese Funktion -1 zurück.

Beispiel 1. Delete-Query

<?php
/* Verbindung zur Datenabank */
mysql_pconnect("localhost", "mysql_user", "mysql_password")
    or die ("Keine Verbindung möglich: " : . mysql_error());
mysql_select_db("mydb");

/* Das sollte die korrekte Anzahl gelöschter Datensätze liefern */
mysql_query("DELETE FROM mytable WHERE id < 10");
printf ("Datensätze gelöscht: %d\n", mysql_affected_rows());

/* Ohne where Bedingung in einer Delete-Anweisung sollte 0 zurückgegeben werden */
mysql_query("DELETE FROM mytable");
printf ("Datensätze gelöscht: %d\n", mysql_affected_rows());
?>

Das obige Beispiel gibt folgendes aus:

Datensätze gelöscht: 10
Datensätze gelöscht: 0

Beispiel 2. Update-Query

<?php
/* Verbindung zur Datenabank */
mysql_pconnect("localhost", "mysql_user", "mysql_password")
    or die ("Keine Verbindung möglich: " : . mysql_error());
mysql_select_db("mydb");

/* Update von Datensätzen */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Veränderte Datensätze: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

Das obige Beispiel gibt folgendes aus:

Veränderte Datensätze: 10

Siehe auch: mysql_num_rows(), mysql_info().

Zurück | Zum Anfang | Nach vorne
MySQL Funktionen | Nach oben | mysql_change_user


mysql_change_user

(PHP 3>= 3.0.13)

mysql_change_user -- Ändert den zur Zeit angemeldeten Benutzer der aktiven Verbindung

Beschreibung

int mysql_change_user ( string Benutzername, string Benutzerkennwort [, string Datenbank [, resource Verbindungs-Kennung]])

mysql_change_user() ändert den angemeldeten Benutzer der aktuellen, aktiven Datenbank-Verbindung, oder für die Verbindung, die mit dem optionalen Parameter Verbindungs-Kennung bestimmt wurde. Wurde eine Datenbank angegeben, wird diese zur aktiven Datenbank, nachdem der Benutzer gewechselt hat.

Anmerkung: Diese Funktion wurde mit PHP 3.0.13 eingeführt und erfordert MySQL 3.23.3 oder höher. In PHP 4 steht diese Funktion nicht zur Verfügung.

Zurück | Zum Anfang | Nach vorne
mysql_affected_rows | Nach oben | mysql_client_encoding


mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding -- Liefert den Namen des Zeichensatzes

Beschreibung

string mysql_client_encoding ( [resource Verbindungs-Kennung])

mysql_client_encoding() gibt den Standardzeichensatz fÃ¼r die aktuelle Verbindung zurÃ¼ck.

Beispiel 1. mysql_client_encoding() Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);
printf("Benutzer Zeichensatz ist %s\n", $charset);
?>

Das Beispiel gibt folgendes aus:

Benutzer Zeichensatz ist latin1

Siehe auch mysql_real_escape_string().

Zurück | Zum Anfang | Nach vorne
mysql_change_user | Nach oben | mysql_close


mysql_close

(PHP 3, PHP 4 , PHP 5)

mysql_close -- Schließt eine Verbindung zu MySQL

Beschreibung

bool mysql_close ( [resource Verbindungs-Kennung])

Rückgabewert: Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

mysql_close() schließt die Verbindung zum MySQL-Server, die mit der angegebenen Verbindungs-Kennung verknüpft ist. Wird die Verbindungs-Kennung nicht angegeben, wird die zuletzt geöffnete Verbindung geschlossen.

Die Verwendung von mysql_close() ist für gewöhnlich nicht notwendig, weil offene, nicht persistente Verbindungen automatisch mit Beendigung des PHP-Skripts geschlossen werden. Siehe auch Freigabe von Resourcen.

Anmerkung: mysql_close() schließt keine persistenten Verbindungen, die mit mysql_pconnect() geöffnet wurden.

Beispiel 1. Verbindung zum Datenbankserver schließen

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("keine Verbindung möglich: " .mysql_error());
echo "Verbindung erfolgreich";
mysql_close ($link);
?>

Siehe auch: mysql_connect() und mysql_pconnect().

Zurück | Zum Anfang | Nach vorne
mysql_client_encoding | Nach oben | mysql_connect


mysql_connect

(PHP 3, PHP 4 , PHP 5)

mysql_connect -- Öffnet eine Verbindung zu einem MySQL-Server

Beschreibung

resource mysql_connect ( [string Server [, string Benutzername [, string Benutzerkennwort [, bool neue_Verbindung [, int client_flags]]]]])

Rückgabewert: Eine MySQL Verbindungs-Kennung im Erfolgsfall oder FALSE im Fehlerfall.

mysql_connect() öffnet eine Verbindung zu einem MySQL Server. Für fehlende optionale Parameter werden folgende Standardwerte angenommen: Server = 'localhost:3306', Benutzername = Name des Benutzers dem der Server-Prozess gehört und Benutzerkennwort = leeres Kennwort.

Der Parameter Server kann zudem die Portnummer enthalten, z.B. "hostname:port" oder den Pfad zu einem lokalen Socket z.B. ":/pfad/zum/socket" für Zugriffe auf dem lokalen Rechner (localhost).

Anmerkung: Immer, wenn Sie als Server "localhost" oder "localhost:port" angeben, wird die MySQL Client Bibiliothek diese Angabe überschreiben und versuchen eine Verbindung zu einem lokalen Socket (named pipe für Windows) aufzubauen. Wenn Sie TCP/IP benutzen wollen, müssen Sie die Angabe "127.0.0.1" statt "localhost" benutzen. Falls die MySQL client Bibliothek versucht die Verbindung zu einem falschen Socket aufzubauen, sollten Sie den korrekten Pfad als mysql_default_host in Ihrer PHP Konfiguration angeben und die Angabe für Server leer lassen.

Unterstützung für ":port" wurde in PHP PHP 3.0B4 hinzugefügt.

Unterstützung für ":/pfad/zum/socket" wurde in PHP 3.0.10 hinzugefügt.

Eine Fehlermeldung beim Verbindungsaufbau kann unterdrückt werden, wenn dem Funktionsnamen ein @ voran gestellt wird.

Für den Fall, dass ein zweiter Aufruf von mysql_connect() mit den gleichen Argumenten erfolgt, wird keine neue Verbindung aufgebaut, sondern die Verbindungs-Kennung der schon bestehenden Verbindung zurückgeliefert. Der Parameter neue_Verbindung beeinflusst dieses Verhalten und mysql_connect() öffnet immer eine neue Verbindung, sogar dann, wenn mysql_connect() zu einem früheren Zeitpunkt mit den gleichen Parametern aufgerufen wurde. Der Parameter client_flags kann eine Kombination der Konstanten MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE oder MYSQL_CLIENT_INTERACTIVE sein.

Anmerkung: Der Parameter neue_Verbindung steht seit PHP 4.2.0 zur Verfügung.

Der Parameter client_flags steht seit PHP 4.3.0 zur Verfügung.

Die Verbindung zum Datenbank-Server wird geschlossen, sobald die Ausführung des PHP-Skripts beendet ist oder vorher explizit die Funktion mysql_close() aufgerufen wird.

Beispiel 1. Verbindung zum Datenbanksserver öffnen

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("keine Verbindung möglich: " .mysql_error());
echo "Verbindung erfolgreich";
mysql_close($link);
?>

Siehe auch mysql_pconnect() und mysql_close().

Zurück | Zum Anfang | Nach vorne
mysql_close | Nach oben | mysql_create_db


mysql_create_db

(PHP 3, PHP 4 , PHP 5)

mysql_create_db -- Anlegen einer MySQL-Datenbank

Beschreibung

bool mysql_create_db ( string Datenbankname [, resource Verbindungs-Kennung])

mysql_create_db() versucht eine neue Datenbank auf dem Server anzulegen, der mit der angegebenen Verbindungs-Kennung assoziiert wird.

Rückgabewert: Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. Anlegen einer Datenbank

<?php
$link = mysql_connect ("localhost", "mysql_user", "mysql_password")
    or die("keine Verbindung möglich: ". mysql_error());

if (mysql_create_db("meine_db")) {
    echo "Datenbank erfolgreich angelegt\n";
} else {
    echo "Fehler beim Anlegen der Datenbank: " . mysql_error() . "\n";
}
?>

Für Abwärtskompatibilität kann auch mysql_createdb() verwendet werden. Diese Funktion ist jedoch veraltet.

Anmerkung: Die Funktion mysql_create_db() ist veraltet. Stattdessen sollte mit der Funktion mysql_query() der SQL-Befehl CREATE DATABASE ausgeführt werden.

Warnung

Diese Funktion steht nicht zur Verfügung, wenn das MySQL Modul gegen eine MySQL 4.x Client-Bibliothek gelinkt wurde.

Siehe auch: mysql_query().

Zurück | Zum Anfang | Nach vorne
mysql_connect | Nach oben | mysql_data_seek


mysql_data_seek

(PHP 3, PHP 4 , PHP 5)

mysql_data_seek -- Bewegt den internen Ergebnis-Zeiger

Beschreibung

bool mysql_data_seek ( resource Ergebnis-Kennung, int Datensatznummer)

Rückgabewert: Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

mysql_data_seek() bewegt den internen Datensatz-Zeiger eines Anfrageergebnisses zum Datensatz mit der übergebenen Nummer. Der nächste Aufruf von mysql_fetch_row() liefert den entsprechenden Datensatz.

Die Datensatznummer beginnt bei 0. Die Datensatznummer sollte ein Wert im Bereich zwischen 0 und mysql_num_rows - 1 sein. Falls die Ergebnismenge jedoch Null sein sollte (mysql_num_rows == 0) wird eine Suche nach Datensatznummer 0 mit einem E_WARNING fehlschlagen und mysql_data_seek() gibt FALSE zurück.

Anmerkung: Die Funktion mysql_data_seek() kann nur zusammen mit mysql_query() benutzt werden und nicht mit mysql_unbuffered_query().

Beispiel 1. mysql_data_seek() Beispiel

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());

mysql_select_db("samp_db")
    or die("Auswahl der Datenbank nicht möglich: " . mysql_error());

$query = "SELECT nach_name, vor_name FROM freunde";
$result = mysql_query($query)
    or die("Anfrage fehlgeschlagen");

/* holen der Zeilen in umgekehrter Reihenfolge */
for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
    if (!mysql_data_seek($result, $i)) {
        echo "Cannot seek to row $i: " . mysql_error() . "\n";
        continue;
    }

    if (!($row = mysql_fetch_object($result)))
        continue;

        echo "$row->nach_name $row->vor_name<br />\n";
}

mysql_free_result ($result);
?>

Siehe auch: mysql_query() und mysql_num_rows().

Zurück | Zum Anfang | Nach vorne
mysql_create_db | Nach oben | mysql_db_name


mysql_db_name

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mysql_db_name -- Liefert Ergebnisdaten

Beschreibung

string mysql_db_name ( resource Ergebnis-Kennung, int Datensatz [, mixed Feld])

mysql_db_name() erwartet als ersten Parameter eine Ergebnis-Kennung eines vorhergehenden Aufrufs der Funktion mysql_list_dbs(). Der Parameter Datensatz ist ein Index innerhalb der Ergebnismenge.

Falls ein Fehler auftritt ist der Rückgabewert FALSE. Um die Art des Fehlers zu bestimmen, benutzen Sie die Funktionen mysql_errno() und mysql_error().

Beispiel 1. mysql_db_name() Beispiel

<?php
error_reporting(E_ALL);

mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs();

$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i < $cnt) {
    echo mysql_db_name($db_list, $i) . "\n";
    $i++;
}
?>

Für Abwärtskompatibilität kann auch mysql_dbname() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_data_seek | Nach oben | mysql_db_query


mysql_db_query

(PHP 3, PHP 4 , PHP 5)

mysql_db_query -- Absetzen einer Anfrage an die Datenbank

Beschreibung

resource mysql_db_query ( string Datenbank, string Anfrage [, resource Verbindungs-Kennung])

Rückgabewert: Eine positive MySQL Ergebnis-Resource für das Anfrageergebnis, oder FALSE im Fehlerfall. Diese Funktion gibt für INSERT/UPDATE/DELETE Queries ebenfalls TRUE/FALSE zurück, um Erfolg/Misserfolg anzuzeigen.

mysql_db_query() bestimmt eine Datenbank und führt eine Anfrage an diese aus. Falls der optionale Parameter Verbindungs-Kennung nicht angegeben ist, wird versucht, eine offene Verbindung zum MySQL Server zu finden und zu nutzen. Wenn dies fehlschlägt, wird versucht eine Verbindung aufzubauen, auf die gleiche Art und Weise wie beim Aufruf von mysql_connect() ohne Angabe von Argumenten.

Beachten Sie, dass diese Funktion NICHT zu der Datenbank zurückwechselt, mit der Sie sich zuvor verbunden hatten. In anderen Worten ausgedrückt: Sie können diese Funktion nicht benutzen, um temporär eine SQL-Query auf einer anderen Datenbank auszuführen. Sie müssen selbst (manuell) sicherstellen, dass Sie wieder Ihre vorherige Datenbank benutzen. Sie sollten sich angewöhnen in Ihren SQL-Queries die Schreibweise datenbank.tabelle zu verwenden statt diese Funktion zu benutzen.

Siehe auch: mysql_connect() und mysql_query().

Anmerkung: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.

Zurück | Zum Anfang | Nach vorne
mysql_db_name | Nach oben | mysql_drop_db


mysql_drop_db

(PHP 3, PHP 4 , PHP 5)

mysql_drop_db -- Löschen einer Datenbank

Beschreibung

bool mysql_drop_db ( string Datenbankname [, resource Verbindungs-Kennung])

mysql_drop_db() versucht eine komplette Datenbank vom Server, der mit der übergebenen Verbindungs-Kennung assoziiert wird, zu löschen.

Rückgabewert: Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zur Abwärtskompatibilität kann auch die Funktion mysql_dropdb() verwendet werden. Diese Funktion ist jedoch veraltet.

Anmerkung: Die Funktion mysql_drop_db() ist veraltet. Stattdessen sollte mit der Funktion mysql_query() der SQL-Befehl DROP DATABASE ausgeführt werden.

Warnung

Diese Funktion steht nicht zur Verfügung, wenn das MySQL Modul gegen eine MySQL 4.x Client-Bibliothek gelinkt wurde.

Siehe auch mysql_query().

Zurück | Zum Anfang | Nach vorne
mysql_db_query | Nach oben | mysql_errno


mysql_errno

(PHP 3, PHP 4 , PHP 5)

mysql_errno -- Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL Operation

Beschreibung

int mysql_errno ( [resource Verbindungs-Kennung])

Liefert die Fehlernummer der letzten MySQL Funktion, oder 0 (Null) falls kein Fehler aufgetreten ist.

Fehler, die vom MySQL Server kommen, führen nicht mehr zu einer Ausgabe von Warnungen. Stattdessen sollten Sie die Funktion mysql_errno() verwenden, um die Fehlernummer zu erhalten. Beachten Sie, dass diese Funktion nur die Fehlernummer der zuletzt ausgeführten MySQL Funktion liefert (ausgeschlossen sind die Funktionen mysql_error() und mysql_errno()). Wenn Sie diese Funktion verwenden wollen, sollten Sie den Wert überprüfen, bevor Sie eine weitere MySQL Funktion aufrufen.

Beispiel 1. mysql_errno() Beispiel

<?php
mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("db_nicht_vorhanden");
echo mysql_errno() . ": " . mysql_error(). "\n";

mysql_select_db("kossu");
mysql_query("SELECT * FROM nicht_vorhandene_tabelle");
echo mysql_errno() . ": " . mysql_error() . "\n";

?>

Das obige Beispiel führt zu dieser Ausgabe:

1049: Unknown database 'db_nicht_vorhanden'
1146: Table 'kossu.nicht_vorhandene_tabelle' doesn't exist

Anmerkung: Bei Angabe des optionalen Parameters wird die angegebene Verbindung benutzt um den Fehlercode zu erhalten. Fehlt diese Angabe, wird die zuletzt geöffnete Verbindung genutzt.

Siehe auch mysql_error().

Zurück | Zum Anfang | Nach vorne
mysql_drop_db | Nach oben | mysql_error


mysql_error

(PHP 3, PHP 4 , PHP 5)

mysql_error -- Liefert den Fehlertext der zuvor ausgeführten MySQL Operation

Beschreibung

string mysql_error ( [resource Verbindungs-Kennung])

Rückgabewert: Liefert den Fehlertext der letzten MySQL Funktion, oder '' (eine leere Zeichenkette), falls kein Fehler aufgetreten ist. Wird nicht explizit eine Verbindungs-Kennung angegeben, wird die zuletzt erfolgreich geöffnete Verbindung benutzt um die Fehlermeldung vom MySQL Server zu bekommen.

Fehler, die vom MySQL Server kommen, führen nicht mehr zu einer Ausgabe von Warnungen. Stattdessen sollten Sie die Funktion mysql_error() verwenden, um den Fehlertext zu erhalten. Beachten Sie, dass diese Funktion nur den Fehlertext der zuletzt ausgeführten MySQL Funktion liefert (ausgeschlossen sind die Funktionen mysql_error() und mysql_errno()). Wenn Sie diese Funktion verwenden wollen, sollten Sie den Wert überprüfen, bevor Sie eine weitere MySQL Funktion aufrufen.

Beispiel 1. mysql_error() Beispiel

<?php
mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("db_nicht_vorhanden");
echo mysql_errno() . ": " . mysql_error(). "\n";

mysql_select_db("kossu");
mysql_query("SELECT * FROM nicht_vorhandene_tabelle");
echo mysql_errno() . ": " . mysql_error() . "\n";
?>

Das Beispiel oben führt zu dieser Ausgabe:

1049: Unknown database 'db_nicht_vorhanden'
1146: Table 'kossu.nicht_vorhandene_tabelle' doesn't exist

Siehe auch: mysql_errno().

Zurück | Zum Anfang | Nach vorne
mysql_errno | Nach oben | mysql_escape_string


mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string -- Maskiert einen String zur Benutzung in mysql_query.

Beschreibung

string mysql_escape_string ( string unescaped_string)

Diese Funktion maskiert unescaped_string zur sicheren Benutzung in mysql_query().

Anmerkung: Die Zeichen % und _ werden von mysql_escape_string() nicht maskiert.

Diese Funktion ist identisch zur Funktion mysql_real_escape_string() ausgenommen, dass mysql_real_escape_string() eine Verbindungs-Kennung benötigt und den String entsprechend zum aktuellen Zeichensatz maskiert. Der Funktion mysql_escape_string() kann keine Verbindungs-Kennung übergeben werden und der aktuelle Zeichensatz wird nicht berücksichtigt.

Beispiel 1. mysql_escape_string() Beispiel

<?php
$item = "Zak's Laptop";
$escaped_item = mysql_escape_string($item);
printf ("Escaped string: %s\n", $escaped_item);
?>

Das Beispiel oben führt zu dieser Ausgabe:

Escaped string: Zak\'s Laptop

Siehe auch: mysql_real_escape_string(), addslashes() und die Einstellung magic_quotes_gpc.

Zurück | Zum Anfang | Nach vorne
mysql_error | Nach oben | mysql_fetch_array


mysql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_array -- Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides

Beschreibung

array mysql_fetch_array ( resource Ergebnis-Kennung [, int Ergebnistyp])

Liefert ein Array das dem aktuellen Datensatz entspricht oder FALSE, wenn keine weiteren Datensätze vorliegen.

mysql_fetch_array() ist eine erweiterte Version von mysql_fetch_row(). Die Daten werden sowohl unter numerischen Indizes des Ergebnis-Arrays abgelegt, als auch unter assoziativen Indizes. Als Schlüssel für die assoziativen Indizes werden die Feldnamen benutzt.

Falls zwei oder mehrere Spalten des Ergebnisses den gleichen Feldnamen haben, dann wird nur der Wert der letzten Spalte im Array unter diesem Feldnamen abgelegt. Um auch auf die anderen gleichnamigen Spalten zugreifen zu können, müssen Sie den numerischen Index der Spalte verwenden oder einen Alias für die Spalte vergeben. Falls Sie Aliase für Spalten verwenden, können Sie auf die Inhalte dieser Spalten nicht über ihren ursprünglichen Namen zugreifen. (In folgendem Beispiel können Sie 'field' nicht benutzen).

Beispiel 1. Abfrage mit identischen Feldnamen

select table1.field as foo, table2.field as bar from table1, table2

Zu betonen ist, dass der Gebrauch von mysql_fetch_array() nicht signifikant langsamer ist als mysql_fetch_row(), obwohl die Funktion einen sichtlichen Mehrwert bietet.

Das optionale zweite Argument Ergebnistyp in mysql_fetch_array() ist eine Konstante und kann die folgenden Werte annehmen: MYSQL_ASSOC, MYSQL_NUM und MYSQL_BOTH. Diese Eigenschaft steht seit PHP 3.0.7 zur Verfügung. MYSQL_BOTH ist der Standard für diesen Paramater.

Verwenden Sie MYSQL_BOTH, erhalten Sie ein Array mit assoziativen und numerischen Indizes. Bei MYSQL_ASSOC erhalten Sie nur asoziative Indizes (genau wie bei mysql_fetch_assoc()). Verwenden Sie MYSQL_NUM erhalten Sie nur numerische Indizes (genau wie bei mysql_fetch_row()).

Anmerkung: Field names returned by this function are case-sensitive.

Beispiel 2. mysql_fetch_array() mit MYSQL_NUM

<?php
mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf ("ID: %s  Name: %s", $row[0], $row[1]);
}

mysql_free_result($result);
?>

Beispiel 3. mysql_fetch_array() mit MYSQL_ASSOC

<?php
mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf ("ID: %s  Name: %s", $row["id"], $row["name"]);
}

    mysql_free_result($result);
?>

Beispiel 4. mysql_fetch_array() mit MYSQL_BOTH

<?php
mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
    printf ("ID: %s  Name: %s", $row[0], $row["name"]);
}

mysql_free_result($result);
?>

Siehe auch mysql_fetch_row() und mysql_fetch_assoc()

Zurück | Zum Anfang | Nach vorne
mysql_escape_string | Nach oben | mysql_fetch_assoc


mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc -- Liefert einen Datensatz als assoziatives Array

Beschreibung

array mysql_fetch_assoc ( resource Ergebnis)

Liefert ein assoziatives Array, das den geholten entprechenden Datensatz enthält. Sind keine weiteren Datensätze vorhanden gibt diese Funktion FALSE zurück.

mysql_fetch_assoc() entspricht in der Funktionsweise exakt dem Aufruf von mysql_fetch_array() mit Angabe von MYSQL_ASSOC als optionalen zweiten Parameter. Diese Funktion liefert Ihnen nur ein assoziatives Array. Das war das ursprüngliche Verhalten von mysql_fetch_array(). Falls Sie sowohl numerische, als auch assoziative Indizes benötigen, verwenden Sie mysql_fetch_array().

Falls zwei oder mehrere Felder des Ergebnisses den gleichen Feldnamen haben, dann wird nur der Wert des letzten Felds im Array unter diesem Feldnamen abgelegt. Um auch auf die anderen, gleichnamigen, Felder zugreifen zu können, müssen Sie entweder numerische Indizes und damit mysql_fetch_row() benutzen, oder Aliase für Ihre Felder anlegen. Zur Verwendung von Aliasen schauen Sie sich das Beispiel unter der Beschreibung von mysql_fetch_array() an.

Zu betonen ist, dass der Gebrauch von mysql_fetch_assoc() nicht signifikant langsamer ist als mysql_fetch_row(), obwohl die Funktion einen sichtlichen Mehrwert bietet.

Anmerkung: Field names returned by this function are case-sensitive.

Beispiel 1. Ein ausführliches Beispiel zumysql_fetch_assoc()

<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
    echo "Keine Verbindung zur DB: " . mysql_error();
    exit;
}

if (!mysql_select_db("mydbname")) {
    echo "Kann  mydbname nicht auswählen: " . mysql_error();
    exit;
}

$sql = "SELECT id as userid, fullname, userstatus
        FROM   sometable
        WHERE  userstatus = 1";

$result = mysql_query($sql);

if (!$result) {
    echo "Anfrage ($sql) konnte nicht ausgeführt werden : " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "Keine Zeilen gefunden, nichts auszugeben, daher Abbruch";
    exit;
}

// Solange eine Zeile mit Daten existiert, wird dies in dem assoziativen Array
// $row abgelegt.
// Anmerkung: Wenn Sie nur eine Zeile erwarten, brauchen Sie keine Schleife.
// Anmerkung: Wenn Sie extract($row) innerhalb der folgenden Schleife
//            verwenden, können Sie damit die Variablen
//            $userid, $fullname und $userstatus erzeugen.

while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}

mysql_free_result($result);

?>

Siehe auch
mysql_fetch_row(),
mysql_fetch_array(),
mysql_query() und
mysql_error()

Zurück | Zum Anfang | Nach vorne
mysql_fetch_array | Nach oben | mysql_fetch_field


mysql_fetch_field

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_field -- Liefert ein Objekt mit Feldinformationen aus einem Anfrageergebnis

Beschreibung

object mysql_fetch_field ( resource Ergebnis-Kennung [, int Feld-Offset])

Rückgabe: Ein Objekt mit Feldinformationen.

mysql_fetch_field() kann benutzt werden, um Informationen über Felder in einem bestimmten Anfrageergebnis zu erhalten. Wenn der Feld-Offset nicht angegeben wird, werden die Information des nächsten, noch nicht mit mysql_fetch_field() erfragten Feldes geliefert.

Die Eigenschaften des Objekts sind:

  • name - Feldname

  • table - Name der Tabelle zu der das Feld gehört

  • max_length - maximale Länge des Feldes

  • not_null - 1, wenn das Feld nicht NULL sein kann

  • primary_key - 1, wenn das Feld ein primary key ist

  • unique_key - 1, wenn das Feld ein unique key ist

  • multiple_key - 1, wenn das Feld ein non-unique key ist

  • numeric - 1, wenn das Feld vom Typ 'numeric' ist

  • blob - 1, wenn das Feld vom Typ 'BLOB' ist

  • type - der Typ des Feldes

  • unsigned - 1, wenn das Feld vorzeichenlos ist

  • zerofill - 1, wenn das Feld zero-filled ist

Anmerkung: Field names returned by this function are case-sensitive.

Beispiel 1. mysql_fetch_field() Beispiel

<?php
mysql_connect('localhost:3306', $user, $password)
    or die ("Keine Verbindung möglich: ". mysql_error());
mysql_select_db("database");
$result = mysql_query("select * from table")
    or die("Anfrage fehlgeschlagen: " . mysql_error());
/* Metadaten der Felder */
$i = 0;
while ($i < mysql_num_fields($result)) {
    echo "Information für Feld $i:<br />\n";
    $meta = mysql_fetch_field($result, $i);
    if (!$meta) {
        echo "Keine Information vorhanden <br />\n";
    }
    echo "<pre>
blob:         $meta->blob
max_length:   $meta->max_length
multiple_key: $meta->multiple_key
name:         $meta->name
not_null:     $meta->not_null
numeric:      $meta->numeric
primary_key:  $meta->primary_key
table:        $meta->table
type:         $meta->type
unique_key:   $meta->unique_key
unsigned:     $meta->unsigned
zerofill:     $meta->zerofill
</pre>";
    $i++;
}
mysql_free_result($result);
?>

Siehe auch mysql_field_seek().

Zurück | Zum Anfang | Nach vorne
mysql_fetch_assoc | Nach oben | mysql_fetch_lengths


mysql_fetch_lengths

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_lengths -- Liefert die Länge eines jeden Feldes in einem Ergebnis

Beschreibung

array mysql_fetch_lengths ( resource Ergebnis-Kennung)

Liefert ein Array, das die Länge eines jeden Feldes in dem zuletzt mit mysql_fetch_row() geholten Datensatz enthält, oder FALSE im Fehlerfall.

mysql_fetch_lengths() speichert die Länge jedes
Ergebnisfelds in dem mit
mysql_fetch_row(),
mysql_fetch_array() und
mysql_fetch_object() zuletzt geholten
Datensatz in einem Array, dessen Offset bei 0 beginnt.

Siehe auch: mysql_fetch_row().

Zurück | Zum Anfang | Nach vorne
mysql_fetch_field | Nach oben | mysql_fetch_object


mysql_fetch_object

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_object -- Liefert eine Ergebniszeile als Objekt

Beschreibung

object mysql_fetch_object ( resource Ergebnis-Kennung)

Liefert ein Objekt mit Eigenschaften, die den Feldern des geholten Datensatzes entsprechen, oder FALSE wenn keine weiteren Datensätze vorhanden sind.

mysql_fetch_object() ähnelt mysql_fetch_array(), mit einem Unterschied - ein Objekt wird zurück geliefert anstatt eines Arrays. Indirekt bedeutet dies, dass Sie die Daten nur mit ihren Feldnamen und nicht mit dem Offset ansprechen können (Nummern sind ungültige Namen für Eigenschaften).

Anmerkung: Field names returned by this function are case-sensitive.

<?php

/* das ist gültig */
echo $row->field;
/* das ist ungültig*/
echo $row->0;

?>

Unter Berücksichtigung der Ausführungsgeschwindigkeit ist diese Funktion identisch zu mysql_fetch_array() und fast so schnell wie mysql_fetch_row() (der Unterschied ist unwesentlich).

Beispiel 1. mysql_fetch_object() Beispiel

<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
mysql_free_result($result);
?>

Siehe auch: mysql_fetch_array(),
mysql_fetch_assoc() und
mysql_fetch_row().

Zurück | Zum Anfang | Nach vorne
mysql_fetch_lengths | Nach oben | mysql_fetch_row


mysql_fetch_row

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_row -- Liefert einen Datensatz als indiziertes Array

Beschreibung

array mysql_fetch_row ( resource Ergebnis-Kennung)

Rückgabewert: Ein Array das der Ergebniszeile entspricht oder FALSE wenn keine weiteren Zeilen verfügbar sind.

mysql_fetch_row() liefert einen Datensatz aus dem Anfrageergebnis mit der übergebenen Kennung. Der Datensatz wird als Array geliefert. Jedes Feld wird in einem Array-Offset abgelegt, der Offset beginnt bei 0.

Wiederholtes Aufrufen von mysql_fetch_row() liefert den nächsten Datensatz des Anfrageergebnisses oder FALSE, wenn keine weiteren Datensätze verfügbar sind.

Siehe auch:
mysql_fetch_array(),
mysql_fetch_assoc(),
mysql_fetch_object(),
mysql_data_seek(),
mysql_fetch_lengths() und
mysql_result().

Zurück | Zum Anfang | Nach vorne
mysql_fetch_object | Nach oben | mysql_field_flags


mysql_field_flags

(PHP 3, PHP 4 , PHP 5)

mysql_field_flags -- Liefert die Flags eines Feldes in einem Anfrageergebnis

Beschreibung

string mysql_field_flags ( resource Ergebnis, int Feldoffset)

mysql_field_flags() liefert die Flags des Feldes mit dem übergebenen Offset. Die Flags werden als einzelne Worte pro Flag und durch ein einziges Leerzeichen getrennt geliefert, so dass sie leicht mit explode() getrennt werden können.

Die folgenden Flags werden geliefert, wenn Ihre Version von MySQL diese unterstützt: "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".

Für Abwärtskompatibilität kann mysql_fieldflags() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_fetch_row | Nach oben | mysql_field_len


mysql_field_len

(PHP 3, PHP 4 , PHP 5)

mysql_field_len -- Liefert die Länge des angegebenen Feldes

Beschreibung

int mysql_field_len ( resource Ergebnis, int Feldoffset)

mysql_field_len() liefert die Länge des angegebenen Feldes.

Für Abwärtskompatibilität kann mysql_fieldlen() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_field_flags | Nach oben | mysql_field_name


mysql_field_name

(PHP 3, PHP 4 , PHP 5)

mysql_field_name -- Liefert den Namen eines Feldes in einem Ergebnis

Beschreibung

string mysql_field_name ( resource Ergebnis-Kennung, int Feldindex)

mysql_field_name() liefert den Namen des Feldes, der dem angegeben Feldindex entspricht. Der Paramater Ergebnis-Kennung muss eine gültige Ergebnis-Kennung sein und Feldindex bestimmt den numerischen Offset des Feldes.

Anmerkung: Der Feldindex beginnt bei 0.

Zur Verdeutlichung: Der Index des dritten Feldes ist demnach 2, der Index des vierten Feldes 3 und so weiter.

Anmerkung: Field names returned by this function are case-sensitive.

Beispiel 1. mysql_field_name() Beispiel

<?php
/* Die Tabelle users enthält drei Felder:
     user_id
     username
     password
*/
$link = mysql_connect('localhost', "mysql_user", "mysql_password");
$dbname = "mydb";
mysql_select_db($dbname, $link)
    or die("Auswahl der Datenabnk $dbname fehlgeschlagen: " . mysql_error());
$res = mysql_query("select * from users", $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
    ?>

Das oben angeführte Beispiel liefert die folgende Ausgabe:

user_id
password

Für Abwärtskompatibilität kann mysql_fieldname() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_field_len | Nach oben | mysql_field_seek


mysql_field_seek

(PHP 3, PHP 4 , PHP 5)

mysql_field_seek -- Setzt den Ergebniszeiger auf ein bestimmtes Feldoffset

Beschreibung

int mysql_field_seek ( resource Ergebnis, int Feldoffset)

Setzt den Feldzeiger auf den angegeben Feldoffset. Wird beim nächsten Aufruf von mysql_fetch_field() kein Feldoffset übergeben, wird der Feldoffset zurückgeliefert, der bei mysql_field_seek() angegeben wurde.

Siehe auch: mysql_fetch_field().

Zurück | Zum Anfang | Nach vorne
mysql_field_name | Nach oben | mysql_field_table


mysql_field_table

(PHP 3, PHP 4 , PHP 5)

mysql_field_table -- Liefert den Namen der Tabelle, die das genannte Feld enthält

Beschreibung

string mysql_field_table ( resource Ergebnis-Kennung, int Feldoffset)

Liefert den Namen der Tabelle, die das genannte Feld enthält.

Für Abwärtskompatibilität kann mysql_fieldtable() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_field_seek | Nach oben | mysql_field_type


mysql_field_type

(PHP 3, PHP 4 , PHP 5)

mysql_field_type -- Liefert den Typ eines Feldes in einem Ergebnis

Beschreibung

string mysql_field_type ( resource Ergebnis, int Feldoffset)

mysql_field_type() ist ähnlich zu mysql_field_name(). Die Argumente sind identisch, aber stattdessen wird der Typ des Feldes zurückgegeben. Dieser kann "int", "real", "string", "blob", oder ein anderer Typ sein. Eine ausführliche Beschreibung aller Typen finden Sie in der MySQL Dokumentation.

Beispiel 1. mysql_field_type() Beispiel

<?php
mysql_connect("localhost", "mysql_username", "mysql_password");
mysql_select_db("mysql");
$result = mysql_query("SELECT * FROM func");
$fields = mysql_num_fields($result);
$rows   = mysql_num_rows($result);
$table = mysql_field_table($result, 0);
echo "Die Tabelle '".$table."'hat ".$fields." Felder und ".$rows." Datensätze:\n";
echo "Die Tabelle hat folgende Felder:\n";
for ($i=0; $i < $fields; $i++) {
    $type  = mysql_field_type($result, $i);
    $name  = mysql_field_name($result, $i);
    $len   = mysql_field_len($result, $i);
    $flags = mysql_field_flags($result, $i);
    echo $type." ".$name." ".$len." ".$flags."\n";
}
mysql_free_result($result);
mysql_close();
?>

Das oben angeführte Beispiel führt zu dieser Ausgabe:

Die Tabelle 'func' hat 4 Felder und 1 Datensätze
Die Tabelle hat folgende Felder:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Für Abwärtskompatibilität kann mysql_fieldtype() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_field_table | Nach oben | mysql_free_result


mysql_free_result

(PHP 3, PHP 4 , PHP 5)

mysql_free_result -- Gibt belegten Speicher wieder frei

Beschreibung

bool mysql_free_result ( resource Ergebnis-Kennung)

mysql_free_result() gibt den Speicher frei, der mit der Ergebnis-Kennung assoziert ist.

Die Funktion muss nur dann aufgerufen werden, wenn Sie sich bei Anfragen, die große Ergebnismengen liefern, Sorgen über den Speicherverbrauch zur Laufzeit des PHP-Skripts machen. Nach Ablauf des PHP-Skripts wird der Speicher ohnehin freigegeben.

Rückgabewert: Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Für Abwärtskompatibilität kann mysql_freeresult() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_field_type | Nach oben | mysql_get_client_info


mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info -- Liefert MySQL Clientinformationen

Beschreibung

string mysql_get_client_info ( void )

mysql_get_client_info() liefert eine Zeichenkette mit der Version der Client-Bibliothek.

Beispiel 1. mysql_get_client_info() Beispiel

<?php
printf("MySQL client info: %s\n", mysql_get_client_info());
?>

Das obige Beispiel gibt folgendes aus:

MySQL client info: 3.23.39

Siehe auch: mysql_get_host_info(),
          mysql_get_proto_info() und
          mysql_get_server_info().

Zurück | Zum Anfang | Nach vorne
mysql_free_result | Nach oben | mysql_get_host_info


mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info -- Liefert MySQL Host Informationen

Beschreibung

string mysql_get_host_info ( [resource Verbindungs-Kennung])

mysql_get_host_info() liefert eine Zeichenkette, die den Typ der benutzten Verbindung Verbindungs-Kennung beschreibt. Der Hostname des Servers ist ebenfalls enthalten. Fehlt der Parameter Verbindungs-Kennung, wird die zuletzt hergestellte Verbindung benutzt.

Beispiel 1. mysql_get_host_info() Beispiel

<?php
mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());
printf("MySQL host info: %s\n", mysql_get_host_info());
?>

Das obige Beispiel gibt folgendes aus:

MySQL host info: Localhost via UNIX socket

See auch: mysql_get_client_info(),
          mysql_get_proto_info() und
          mysql_get_server_info().

Zurück | Zum Anfang | Nach vorne
mysql_get_client_info | Nach oben | mysql_get_proto_info


mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info -- Liefert MySQL Protokollinformationen

Beschreibung

int mysql_get_proto_info ( [resource Verbindungs-Kennung])

mysql_get_proto_info() liefert die Protokollversion, die die Vebindung Verbindungs-Kennung nutzt. Fehlt der Parameter Verbindungs-Kennung, wird die zuletzt hergestellte Verbindung benutzt.

Beispiel 1. mysql_get_proto_info() Beispiel

<?php
mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());
printf ("MySQL protocol version: %s\n", mysql_get_proto_info());
?>

Das obige Beispiel gibt folgendes aus:

MySQL protocol version: 10

Siehe auch
mysql_get_client_info(),
mysql_get_host_info() und
mysql_get_server_info().

Zurück | Zum Anfang | Nach vorne
mysql_get_host_info | Nach oben | mysql_get_server_info


mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info -- Liefert MySQL Server Informationen

Beschreibung

string mysql_get_server_info ( [resource Verbindungs-Kennung])

mysql_get_server_info() liefert die Serverversion, die die Vebindung mit der Verbindungs-Kennung nutzt. Fehlt die Verbindungs-Kennung, wird die zuletzt hergestellte Verbindung benutzt.

Beispiel 1. mysql_get_server_info() Beispiel

<?php
mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());
printf("MySQL server version: %s\n", mysql_get_server_info());
?>

Das obige Beispiel gibt folgendes aus:

MySQL server version: 4.0.1-alpha

Siehe auch: mysql_get_client_info(),
          mysql_get_host_info() und
          mysql_get_proto_info().

Zurück | Zum Anfang | Nach vorne
mysql_get_proto_info | Nach oben | mysql_info


mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info -- liefert Informationen über die zuletzt ausgeführte Anfrage zurück

Beschreibung

string mysql_info ( [resource Verbindungs-Kennung])

mysql_info() gibt genaue Informationen über die zuletzt ausgeführte Abfrage zurück, die über den Parameter Verbindungs-Kennung ausgeführt wurde. Wird der optionale Parameter Verbindungs-Kennung nicht angegeben, so wird die letzte offene Verbindung benutzt.

mysql_info() gibt für alle unten aufgeführten Befehle einen String zurück, für alles andere liefert die Funktion FALSE. Das Zeichenformat hängt von der gegebenen Anweisung ab.

Beispiel 1. MySQL-Befehle mit mysql_info()

INSERT INTO ... SELECT ...
String format: Records: 23 Duplicates: 0 Warnings: 0

INSERT INTO ... VALUES (...),(...),(...)...
String format: Records: 37 Duplicates: 0 Warnings: 0

LOAD DATA INFILE ...
String format: Records: 42 Deleted: 0 Skipped: 0 Warnings: 0

ALTER TABLE
String format: Records: 60 Duplicates: 0 Warnings: 0

UPDATE
String format: Rows matched: 65 Changed: 65 Warnings: 0
Die Nummern dienen nur zur Illustration; die tatsächlichen Werte entsprechen der jeweiligen Abfrage.

Anmerkung: mysql_info() liefert bei INSERT...VALUES Befehlen nur dann einen gültigen (nicht-FALSE) Wert, wenn mehrfache Werte angegeben wurden.

Siehe auch: mysql_affected_rows()

Zurück | Zum Anfang | Nach vorne
mysql_get_server_info | Nach oben | mysql_insert_id


mysql_insert_id

(PHP 3, PHP 4 , PHP 5)

mysql_insert_id -- Liefert die ID einer vorherigen INSERT-Operation

Beschreibung

int mysql_insert_id ( [resource Verbindungs-Kennung])

mysql_insert_id() liefert die ID, die bei der letzten INSERT-Operation für ein Feld vom Typ AUTO_INCREMENT vergeben wurde. Wenn die Verbindungs-Kennung nicht angegeben wird, wird die zuletzt geöffnete Verbindung angenommen.

mysql_insert_id() liefert 0, wenn die vorhergehende Abfrage keinen AUTO_INCREMENT Wert erzeugt hat. Falls Sie den Wert zur späteren Verwendung speichern möchten, stellen Sie sicher, dass Sie mysql_insert_id() direkt nach der Abfrage aufrufen, die einen Wert erzeugt hat.

Anmerkung: Der Wert der MySQL SQL Funktion LAST_INSERT_ID() liefert immer den zuletzt erzeugten AUTO_INCREMENT Wert. Dieser wird zwischen Abfragen nicht zurückgesetzt.

Warnung

mysql_insert_id() konvertiert den Typ der Rückgabe der nativen MySQL C API Funktion mysql_insert_id() in den Typ long (als int in PHP bezeichnet). Falls Ihre AUTO_INCREMENT Spalte vom Typ BIGINT ist, ist der Wert den mysql_insert_id() liefert, nicht korrekt. Verwenden Sie in diesem Fall stattdessen die MySQL interne SQL Funktion LAST_INSERT_ID() in einer SQL-Abfrage.

Beispiel 1. mysql_insert_id() Beispiel

<?php
mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf ("Der letzte eingefügte Datensatz hat die ID %d\n", mysql_insert_id());
?>

Siehe auch: mysql_query().

Zurück | Zum Anfang | Nach vorne
mysql_info | Nach oben | mysql_list_dbs


mysql_list_dbs

(PHP 3, PHP 4 , PHP 5)

mysql_list_dbs -- Auflistung der verfügbaren Datenbanken auf einem MySQL Server

Beschreibung

resource mysql_list_dbs ( [resource Verbindungs-Kennung])

mysql_list_dbs() liefert eine Ergebnis-Kennung, die alle Datenbanken auf dem Datenbankserver enthält. Um diese Ergebnis-Kennung zu durchlaufen benutzen Sie die Funktion mysql_tablename(), oder irgendeine der Funktionen, die mit Ergebnistabellen umgehen kann, wie zum Beispiel mysql_fetch_array().

Beispiel 1. mysql_list_dbs() Beispiel

<?php
$link    = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}
?>

Das oben gezeigte Beispiel liefert die folgende Ausgabe:

database1
database2
database3

Anmerkung: Dieser Code funktioniert genauso leicht mit mysql_fetch_row() oder anderen, ähnlichen Funktionen.

Für Abwärtskompatibilität kann mysql_listdbs() verwendet werden. Diese Funktion ist jedoch veraltet.

Siehe auch mysql_db_name().

Zurück | Zum Anfang | Nach vorne
mysql_insert_id | Nach oben | mysql_list_fields


mysql_list_fields

(PHP 3, PHP 4 , PHP 5)

mysql_list_fields -- Listet MySQL Ergebnisfelder auf

Beschreibung

resource mysql_list_fields ( string Datenbankname, string Tabellenname [, resource Verbindungs-Kennung])

mysql_list_fields() fordert Information über
den angegebenen Tabellennamen an. Argumente sind der Datenbankname und der
Tabellenname. Die zurückgelieferte Ergebnis-Kennung kann von den
Funktionen
mysql_field_flags(),
mysql_field_len(),
mysql_field_name() und
mysql_field_type() verwendet werden.

Beispiel 1. mysql_list_fields() Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$fields = mysql_list_fields("database1", "table1", $link);
$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo mysql_field_name($fields, $i) . "\n";;
}
?>

Das oben gezeigte Beispiel liefert die folgende Ausgabe:

field1
field2
field3
...

Für Abwärtskompatibilität kann mysql_listfields() verwendet werden. Diese Funktion ist jedoch veraltet.

Anmerkung: Die Funktion mysql_list_fields() ist veraltet. Stattdessen ist es vorzuziehen mit der Funktion mysql_query() den SQL-Befehl SHOW COLUMNS FROM table [LIKE 'name'] auszuführen.

Zurück | Zum Anfang | Nach vorne
mysql_list_dbs | Nach oben | mysql_list_processes


mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes -- Zeigt die MySQL Prozesse an

Beschreibung

resource mysql_list_processes ( [resource Verbindungs-Kennung])

mysql_list_processes() liefert eine Ergebniskennung, die alle laufenden MySQL-Prozesse enthält.

Beispiel 1. mysql_list_processes() Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
    printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
       $row["Command"], $row["Time"]);
}
mysql_free_result($result);
?>

Das oben gezeigte Beispiel liefert folgende Ausgabe:

1 localhost test Processlist 0
4 localhost mysql sleep 5

Siehe auch mysql_thread_id().

Zurück | Zum Anfang | Nach vorne
mysql_list_fields | Nach oben | mysql_list_tables


mysql_list_tables

(PHP 3, PHP 4 , PHP 5)

mysql_list_tables -- Listet Tabellen in einer MySQL Datenbank auf

Beschreibung

resource mysql_list_tables ( string Datenbankname [, resource Verbindungs-Kennung])

mysql_list_tables() benötigt die Angabe eines Datenbanknamens und liefert eine Ergebniskennung ähnlich wie die Funktion mysql_query(). Um den aktuellen Tabellennamen aus der Ergebniskennung zu erhalten, können Sie die Funktion mysql_tablename() benutzen, oder irgendeine andere Funktion, die mit Ergebnistabellen umgehen kann, wie zum Beispiel mysql_fetch_array().

Der Parameter Datenbankname ist der Name der Datenbank, von der die Liste der Tabellen angefordert wird. Tritt ein Fehler auf, gibt mysql_list_tables()returns FALSE zurück.

Für Abwärtskompatibilität kann mysql_listtables() verwendet werden. Diese Funktion ist jedoch veraltet.

Anmerkung: Diese Function ist veraltet und sollte nicht mehr benutzt werden. Verwenden Sie stattdessen den SQL Befehl SHOW TABLES FROM DATABASE.

Beispiel 1. mysql_list_tables() Beispiel

<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Keine Verbindung zur Datenbank möglich';
    exit;
    }

$result = mysql_list_tables($dbname);

if (!$result) {
    echo "DB Fehler, Tabellen können nicht angezeigt werden\n";
    echo 'MySQL Fehler: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_row($result)) {
    echo "Tabelle: $row[0]\n";
}

mysql_free_result($result);
?>

Siehe auch mysql_list_dbs() und mysql_tablename().

Zurück | Zum Anfang | Nach vorne
mysql_list_processes | Nach oben | mysql_num_fields


mysql_num_fields

(PHP 3, PHP 4 , PHP 5)

mysql_num_fields -- Liefert die Anzahl der Felder in einem Ergebnis

Beschreibung

int mysql_num_fields ( resource Ergebnis-Kennung)

mysql_num_fields() liefert die Anzahl der Felder in der Ergebnismenge, die mit dem Parameter Ergebnis-Kennung angegeben wurde.

Siehe auch
mysql_select_db(),
mysql_query(),
mysql_fetch_field() und
mysql_num_rows().

Für Abwärtskompatibilität kann mysql_numfields() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_list_tables | Nach oben | mysql_num_rows


mysql_num_rows

(PHP 3, PHP 4 , PHP 5)

mysql_num_rows -- Liefert die Anzahl der Datensätze im Ergebnis

Beschreibung

int mysql_num_rows ( resource Ergebnis-Kennung)

mysql_num_rows() liefert die Anzahl der Datensätze einer Ergebnismenge. Diese Funktion ist nur gültig für SELECT Befehle. Haben Sie eine INSERT, UPDATE oder DELETE Abfrage ausgeführt und möchten die Anzahl der betroffenen Datensätze ermitteln, verwenden Sie die Funktion mysql_affected_rows().

Beispiel 1. mysql_num_rows() Beispiel

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>

Anmerkung: Wenn Sie mysql_unbuffered_query() verwenden, liefert mysql_num_rows() solange nicht den korrekten Wert, bis Sie alle Zeilen der Ergebnismenge erhalten haben.

Siehe auch
mysql_affected_rows(),
mysql_connect(),
mysql_data_seek(),
mysql_select_db() und
mysql_query().

Für Abwärtskompatibilität kann mysql_numrows() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_num_fields | Nach oben | mysql_pconnect


mysql_pconnect

(PHP 3, PHP 4 , PHP 5)

mysql_pconnect -- Öffnet eine persistente Verbindung zum MySQL Server

Beschreibung

resource mysql_pconnect ( [string Server [, string Benutztername [, string Benutzerkennwort [, int client_flags]]]])

Rückgabewert: Eine positive, MySQL-persistente Verbindungs-Kennung im Erfolgsfall oder FALSE im Fehlerfall.

mysql_pconnect() baut eine Verbindung zu einem MySQL Server auf. Für fehlende optionale Parameter werden folgende Standardwerte angenommen: Server = 'localhost:3306', Benutzername = Name des Benutzers dem der Server-Prozess gehört und Benutzerkennwort = leeres Kennwort. Der Parameter client_flags kann eine Kombination der Konstanten MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE oder MYSQL_CLIENT_INTERACTIVE sein.

Der Parameter Server kann ausserdem eine Portnummer enthalten, z.B. "hostname:port" oder den Pfad zu einem Socket z.B. ":/pfad/zu/socket" für Zugriffe auf dem lokalen Rechner (localhost).

Anmerkung: Unterstützung für ":port" wurde in PHP 3.0B4 hinzugefügt.

Unterstützung für ":/pfad/zum/socket" wurde in PHP 3.0.10 hinzugefügt.

mysql_pconnect() verhält sich sehr ähnlich zu mysql_connect(), weist aber zwei wesentliche Unterschiede auf.

Erstens: vor dem Verbindungsaufbau wird zunächst versucht eine offene (persistente) Verbindung zum gleichen Host, mit dem gleichen Benutzernamen und Benutzerkennwort zu finden. Wenn das gelingt, wird die Verbindungskennung dieser Verbindung zurückgeliefert anstatt eine neue Verbindung aufzubauen.

Zweitens: die Verbindung zum SQL Server wird beim Beenden des PHP-Skripts nicht geschlossen. Sie bleibt zur zukünftigen Verwendung bestehen. (mysql_close() schließt keine von mysql_pconnect() geöffneten Verbindungen).

Der optionale Parameter client_flags steht seit PHP 4.3.0 zur Verfügung.

Deshalb wird dieser Verbindungstyp 'persistent' genannt.

Anmerkung: Beachten Sie, dass diese Art der Verbindung nur funktioniert. wenn Sie PHP als Modul-Version benutzen. Für mehr Informationen schauen Sie unter Persistente Datenbankverbindungen nach.

Warnung

Die Verwendung von persistenten Verbindungen verlangt unter Umständen eine feinere Abstimmung der Konfiguration von Apache und MySQL. Dadurch sollten Sie sicherstellen, dass Sie die Anzahl der Verbindungen, die MySQL maximal erlaubt, nicht überschreiten.

Zurück | Zum Anfang | Nach vorne
mysql_num_rows | Nach oben | mysql_ping


mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping -- Ping a server connection or reconnect if there is no connection

Beschreibung

bool mysql_ping ( [resource Verbindungs-Kennung])

mysql_ping() überprüft, ob die Verbindung zum Server funktioniert oder nicht. Ist die Verbindung abgebrochen wird ein automatischer Reconnect versucht. Diese Funktion können Sie in PHP-Skripts benutzen, die längere Zeit untätig bleiben, um zu prüfen, ob der Server die Verbindung abgebaut hat oder nicht und im Bedarfsfall wird versucht die Verbindung wieder herzustellen. Rückgabewert: mysql_ping() gibt TRUE zurück, wenn die Verbindung zum Server funktioniert, ansonsten FALSE.

Siehe auch: mysql_thread_id(), mysql_list_processes().

Zurück | Zum Anfang | Nach vorne
mysql_pconnect | Nach oben | mysql_query


mysql_query

(PHP 3, PHP 4 , PHP 5)

mysql_query -- Sendet eine Anfrage an MySQL

Beschreibung

resource mysql_query ( string Anfrage [, resource Verbindungs-Kennung])

mysql_query() sendet eine Anfrage an die zur Zeit aktiven Datenbank, die mit der angegebenen Verbindungs-Kennung assoziiert wird. Wird die Verbindungs-Kennung nicht angegeben, wird die zuletzt geöffnete Verbindung angenommen. Wenn keine offene Verbindung besteht, wird versucht eine Verbindung aufzubauen, wie beim Aufruf von mysql_connect() ohne Argumente und diese wird dann benutzt. Das Ergebnis der Anfrage wird gepuffert.

Anmerkung: Die Anfrage sollte nicht mit einem Semikolon enden.

Nur für SELECT, EXPLAIN, SHOW oder DESCRIBE Anweisungen liefert mysql_query() eine Ressourcen-Kennung oder FALSE, falls die Anfrage nicht korrekt ausgeführt wurde. Für alle anderen SQL Anweisungen ist der Rückgabewert von mysql_query() im Erfolgsfall TRUE, im Fehlerfall FALSE. Ein Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war und vom Server ausgeführt werden konnte. Das alleine sagt jedoch überhaupt nichts über die Anzahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich war, ohne einen einzigen Datensatz zur verändern oder zu liefern.

Die folgende Anfrage ist syntaktisch falsch, deshalb liefert mysql_query() FALSE zurück:

Beispiel 1. mysql_query() Beispiel

<php
$result = mysql_query ("SELECT * WHERE 1=1")
    or die ("Ungültige Abfrage: " . mysql_error());
?>

Die folgende Anfrage ist semantisch falsch, wenn my_col kein Feld in der Tabelle my_tbl ist. Deshalb schlägt mysql_query() fehl und liefert FALSE:

Beispiel 2. mysql_query()

<?php
$result = mysql_query ("SELECT my_col FROM my_tbl")
    or die ("Ungültige Abfrage: " . mysql_error());
?>

mysql_query() schlägt ebenso fehl und liefert FALSE, wenn Sie keine Berechtigung zum Zugriff auf die verwiesene(n) Tabelle(n) haben.

Angenommen eine Anfrage ist erfolgreich, dann können Sie für eine SELECT Anweisung mit mysql_num_rows() die Anzahl der gelieferten Datensätze herausfinden. Falls Sie DELETE, INSERT, REPLACE, oder UPDATE benutzt haben, können Sie die Anzahl der betroffenen Datensätze mit mysql_affected_rows() feststellen.

Nur bei SELECT, EXPLAIN, SHOW oder DESCRIBE Anweisungen liefert mysql_query() eine neue Ergebnis-Kennung, die Sie an die Funktion mysql_fetch_array() und andere Funktionen, die mit Ergebnistabellen umgehen können, übergeben können. Sind sie mit der Bearbeitung Ihrer Ergebnisse fertig, können Sie die belegten Resourcen durch den Aufruf von mysql_free_result() freigeben. Ist die Ausführung des Skripts abgeschlossen, wird der belegte Speicher automatisch freigegeben.

Siehe auch:
mysql_num_rows()
mysql_affected_rows(),
mysql_unbuffered_query(),
mysql_free_result(),
mysql_fetch_array(),
mysql_fetch_row(),
mysql_fetch_assoc(),
mysql_result(),
mysql_select_db() und
mysql_connect().

Zurück | Zum Anfang | Nach vorne
mysql_ping | Nach oben | mysql_real_escape_string


mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection.

Description

string mysql_real_escape_string ( string unescaped_string [, resource Ergebnis-Kennung])

Diese Funktion maskiert spezielle Zeichen in unescaped_string, unter Berücksichtigung des aktuellen Zeichensatzes der Verbindung, zur sicheren Benutzung in mysql_query().

Anmerkung: Die Zeichen % und _ werden von mysql_real_escape_string() nicht maskiert.

Beispiel 1. mysql_real_escape_string() Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$item = "Zak's und Derick's Laptop";
$escaped_item = mysql_real_escape_string($item, $link);
printf ("Escaped string: %s\n", $escaped_item);
?>

Das Beispiel oben führt zu dieser Ausgabe:

Escaped string: Zak\'s und Derick\'s Laptop

Siehe auch: mysql_escape_string(), mysql_client_encoding().

Zurück | Zum Anfang | Nach vorne
mysql_query | Nach oben | mysql_result


mysql_result

(PHP 3, PHP 4 , PHP 5)

mysql_result -- Liefert Ergebnis

Beschreibung

mixed mysql_result ( resource Ergebnis-Kennung, int Datensatz [, mixed Feld])

mysql_result() liefert den Inhalt eines Felds aus einem Anfrageergebnis. Das Argument Feld kann der Feldname, der Feldoffset ein Bezeichner in der Form 'Tabellenname.Feldname.' sein. Wenn das Feld einen Alias besitzt ('select foo as bar from...') muss der Alias anstatt des Feldnamens verwendet werden.

Wenn auf Anfrageergebnisse mit vielen Datensätzen zugegriffen werden soll, sollten Sie Funktionen, die auf ganze Datensätze zugreifen,in Betracht ziehen (siehe unten). Diese Funktionen liefern bei einem einzigen Aufruf den Inhalt mehrerer Felder und sind aus diesem Grund SEHR viel schneller als mysql_result(). Beachten Sie auch, dass die Angabe eines numerischen Offsets für ein Feld sehr viel schneller ist als die Angabe eines Feldnamens oder tabellenname.feldname.

Aufrufe von mysql_result() sollten nicht mit Aufrufen anderer Funktionen verschachtelt werden, die auch auf das Ergebnis zugreifen.

Beispiel 1. mysql_result() example

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());

$result = mysql_query("SELECT name FROM work.employee")
    or die("Abfrage fehlgeschlagen:" . mysql_error());

echo mysql_result($result, 2); // gibt den Namen des dritten Angestellten aus

mysql_close($link);
?>

Empfohlende, leistungsfähigere Alternativen:
mysql_fetch_row(),
mysql_fetch_array(),
mysql_fetch_assoc() und
mysql_fetch_object().

Zurück | Zum Anfang | Nach vorne
mysql_real_escape_string | Nach oben | mysql_select_db


mysql_select_db

(PHP 3, PHP 4 , PHP 5)

mysql_select_db -- Auswahl einer MySQL Datenbank

Beschreibung

bool mysql_select_db ( string Datenbankname [, resource Verbindungs-Kennung])

Rückgabewert: Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

mysql_select_db() aktiviert die Datenbank auf dem Server zu dem die Verbindung mit der übergegebenen Verbindungs-Kennung besteht. Fehlt die Verbindungs-Kennung wird die zuletzt geöffnete Verbindung verwendet. Wenn keine Verbindung existiert, wird versucht eine Verbindung aufzubauen, wie beim Aufruf von mysql_connect() ohne Angabe von Argumenten.

Jeder weitere Aufruf von mysql_query() benutzt diese aktive Datenbank.

Beispiel 1. mysql_select_db() example

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password')
    or die('Verbindung nicht möglich : ' . mysql_error());

// benutze Datenbank foo
mysql_select_db('foo', $link)
    or die ('Kann foo nicht benutzen : ' . mysql_error());
?>

Siehe auch:
mysql_connect(),
mysql_pconnect() und
mysql_query().

Für Abwärtskompatibilität kann mysql_selectdb() verwendet werden. Diese Funktion ist jedoch veraltet.

Zurück | Zum Anfang | Nach vorne
mysql_result | Nach oben | mysql_stat


mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat -- Zeigt den momentanen Serverstatus an

Beschreibung

string mysql_stat ( [resource Verbindungs-Kennung])

mysql_stat() liefert den momentanen Serverstatus zurück.

Anmerkung: mysql_stat() liefert nur die Werte uptime, threads, queries, open tables, flush tables und queries pro sec. Für eine komplette Liste der anderen Statusvariablen sollte der SQL-Befehl SHOW STATUS verwendet werden.

Beispiel 1. mysql_stat() Beispiel

<?php
$link = mysql_connect('localhost', "mysql_user", "mysql_password");
$status = explode('  ', mysql_stat($link));
print_r($status);
?>

Das oben gezeigte Beispiel liefert die folgende Ausgabe:

Array
(
    [0] => Uptime: 5380
    [1] => Threads: 2
    [2] => Questions: 1321299
    [3] => Slow queries: 0
    [4] => Opens: 26
    [5] => Flush tables: 1
    [6] => Open tables: 17
    [7] => Queries per second avg: 245.595
)

Zurück | Zum Anfang | Nach vorne
mysql_select_db | Nach oben | mysql_tablename


mysql_tablename

(PHP 3, PHP 4 , PHP 5)

mysql_tablename -- Liefert den Namen einer Tabelle

Beschreibung

string mysql_tablename ( resource Ergebnis-Kennung, int i)

mysql_tablename() ermittelt aus einer Ergebnis-Kennung, die von mysql_list_tables() geliefert wurde, sowie einem Index vom Typ integer, den Namen der Tabelle Die Funktion mysql_num_rows() kann verwendet werden, um die Anzahl der Tabellen in der Ergebnis-Kennung zu ermitteln. Benutzen Sie die Funktion mysql_tablename() um diese Ergebnis-Kennung zu durchlaufen, oder irgendeine andere Funktion, die mit Ergebnistabellen umgehen kann, wie zum Beispiel mysql_fetch_array().

Beispiel 1. mysql_tablename() Bespiel

<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
$result = mysql_list_tables("mydb");

for ($i = 0; $i < mysql_num_rows($result); $i++)
    echo "Table: ", mysql_tablename($result, $i), "\n";

mysql_free_result($result);
?>
?>

Siehe auch mysql_list_tables().

Zurück | Zum Anfang | Nach vorne
mysql_stat | Nach oben | mysql_thread_id


mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id -- Zeigt die aktuelle Thread ID an

Beschreibung

int mysql_thread_id ( [resource Verbindungs-Kennung])

mysql_thread_id() liefert die aktuelle Thread ID. Ist die Verbindung abgerissen und Sie bauen diese wieder mit mysql_ping() auf, wechselt die Thread ID. Das bedeutet, Sie sollten die Thread ID nicht abfragen und für eine spätere Verwendung speichern. Sie sollten diese zu einem Zeitpunkt abfragen an dem Sie die Thread ID verwenden möchten.

Beispiel 1. mysql_thread_id() Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
    printf("Aktuelle Thread ID ist %d\n", $thread_id);
}
?>

Das obige Beispiel gibt folgendes aus:

Aktuelle Thread ID ist 73

See auch: mysql_ping(), mysql_list_processes().

Zurück | Zum Anfang | Nach vorne
mysql_tablename | Nach oben | mysql_unbuffered_query


mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query -- Sendet eine SQL Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern.

Beschreibung

resource mysql_unbuffered_query ( string Anfrage [, resource Verbindungs-Kennung])

mysql_unbuffered_query() sendet eine SQL Anfrage an MySQL, ohne dass die Datensätze des Ergebnisses automatisch geholt und gepuffert werden, wie es bei der Verwendung von mysql_query() der Fall ist. Einerseits spart dieses Vorgehen eine erhebliche Menge an Speicher bei SQL Anfragen ein, die große Ergebnismengen liefern. Andererseits können Sie unmittelbar mit dem Anfrageergebnis arbeiten, sobald der erste Datensatz gefunden wurde: Sie müssen nicht darauf warten, bis die gesamte SQL Anfrage abgeschlossen ist. Wird auf verschiedene Datenbanken gleichzeitig zugegriffen, muss der optionale Parameter Verbindungs-Kennung angegeben werden.

Anmerkung: Die Vorteile von mysql_unbuffered_query() haben ihren Preis: Auf ein Ergebnis von mysql_unbuffered_query() können die Funktionen mysql_num_rows() und mysql_data_seek() nicht angewendet werden. Ausserdem müssen Sie sicherstellen, dass Sie alle Datensätze des Ergebnisses einer ungepufferteten SQL Anfrage abgeholt haben. Erst dann können Sie eine neue SQL Anfrage an MySQL absetzen.

Siehe auch: mysql_query().

Zurück | Zum Anfang | Nach vorne
mysql_thread_id | Nach oben | Verbesserte MySQL Erweiterung


Verbesserte MySQL Erweiterung

PHP Handbuch
Zurück Nach vorne

LXV. Verbesserte MySQL Erweiterung

Einführung

Die mysqli-Erweiterung ermöglicht Ihnen den Zugriff auf Funktionalitäten von MySQL 4.1 und höher. Weitere Informationen über den MySQL Datenbankserver finden Sie unter http://www.mysql.com/

Die Dokumentation von MySQL finden Sie unter http://dev.mysql.com/doc/

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Anforderungen

Um die Funktionalitäten dieser Erweiterung nutzen zu können, müssen Sie PHP mit Unterstützung für mysqli kompilieren.

Anmerkung: Die mysqli-Erweiterung wurde erstellt, um mit den MySQL-Versionen >= 4.1 zu arbeiten. Wenn Sie eine ältere Version verwenden, sollten Sie einen Blick auf die Dokumentation der mysql-Erweiterung werfen.

Installation

Um die mysqli-Erweiterung für PHP zu installieren, benutzen Sie den Schalter --with-mysqli=mysql_config_path wobei mysql_config_path auf das Verzeichnis des mysql_config-Programms verweist, welches bei MySQL-Versionen größer als 4.1 vorhanden ist. Darüber hinaus müssen Sie die Standard- MySQL-Erweiterung deaktivieren, da diese standardmäßig aktiviert ist. Dazu verwenden Sie den Schalter --without-mysql. Wenn Sie die Standard-MySQL-Erweiterung zusammen mit der verbesserten mysqli-Erweiterung installieren möchten, können sie die mit PHP mitgelieferte und integrierte libmysql-Bibliothek nicht benutzen. Stattdessen müssen Sie Client-Bibliotheken verwenden, welche bei MySQL-Version < 4.1 installiert werden. Damit zwingen Sie PHP diese Client-Bibliotheken zu benutzen und vermeiden so Konflikte.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. MySQLi Konfigurations-Optionen

Name | Standard | änderbar
mysqli.max_links | "-1" | PHP_INI_SYSTEM
mysqli.default_port | NULL | PHP_INI_ALL
mysqli.default_socket | NULL | PHP_INI_ALL
mysqli.default_host | NULL | PHP_INI_ALL
mysqli.default_user | NULL | PHP_INI_ALL
mysqli.default_pw | NULL | PHP_INI_ALL

Für weitere, detailierte Informationen über die oben genannten PHP_INI_*-Konstanten sehen Sie im Kapitel über Konfigurations-Änderungen nach.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysqli.max_links integer

Maximale Anzahl von MySQL-Verbindungen pro Prozess inklusive persistenter Verbindungen.

mysqli.default_port string

Standard TCP-Port der benutzt werden soll, wenn eine Verbindung zum Datenbankserver aufgenommen werden soll und kein anderer Port explizit angegeben wurde. Wenn hier kein Standardport angegeben wird, wird der Port aus der MYSQL_TCP_PORT Umgebungs-Variable, Dem mysql-tcp Eintrag in der /etc/services oder der compile-time MYSQL_PORT Konstante in dieser Reihenfolge verwendet. Unter Win32 wird nur die Konstante MYSQL_PORT verwendet.

mysqli.default_socket string

Standard-Socketname der bei der Verbindungsaufnahme zu einem lokalen Datenbankserver verwendet wird, wenn kein anderer Socketname explizit angegegben wurde.

mysqli.default_host string

Standard Serverhost der bei der Verbindungsaufnahme zu einem Datenbankserver verwendet wird, wenn kein anderer Hostname explizit angegeben wurde. Funktioniert nicht im safe mode.

mysqli.default_user string

Standard Benutzername der bei der Verbindungsaufnahme zu einem Datenbankserver verwendet wird, wenn kein anderer Benutzername explizit angegeben wurde. Funktioniert nicht im safe mode.

mysqli.default_password string

Standard Passwort das bei der Verbindungsaufnahme zu einem Datenbankserver verwendet wird, wenn kein anderes Passwort explizit angegeben wurde. Funktioniert nicht im safe mode.

Resource Typen

mysqli_link

Stellt eine Verbindung zwischen PHP und einer MySQL-Datenbank dar.

mysqli_stmt

Stellt eine vorbereitete Anfrage dar.

mysqli_result

Stellt den Ergebnissatz einer zuvor ausgeführten Anfrage an die Datenbank dar.

Vordefinierte Konstanten

Tabelle 2. MySQLi Konstanten

Name | Beschreibung
MYSQLI_READ_DEFAULT_GROUP (integer) |
MYSQLI_READ_DEFAULT_FILE (integer) |
MYSQLI_OPT_CONNECT_TIMEOUT (integer) |
MYSQLI_OPT_LOCAL_INFILE (integer) |
MYSQLI_INIT_COMMAND (integer) |
MYSQLI_CLIENT_SSL (integer) |
MYSQLI_CLIENT_COMPRESS (integer) |
MYSQLI_CLIENT_INTERACTIVE (integer) |
MYSQLI_CLIENT_IGNORE_SPACE (integer) |
MYSQLI_CLIENT_NO_SCHEMA (integer) |
MYSQLI_CLIENT_MULTI_QUERIES (integer) |
MYSQLI_STORE_RESULT (integer) |
MYSQLI_USE_RESULT (integer) |
MYSQLI_ASSOC (integer) |
MYSQLI_NUM (integer) |
MYSQLI_BOTH (integer) |
MYSQLI_NOT_NULL_FLAG (integer) |
MYSQLI_PRI_KEY_FLAG (integer) |
MYSQLI_UNIQUE_KEY_FLAG (integer) |
MYSQLI_MULTIPLE_KEY_FLAG (integer) |
MYSQLI_BLOB_FLAG (integer) |
MYSQLI_UNSIGNED_FLAG (integer) |
MYSQLI_ZEROFILL_FLAG (integer) |
MYSQLI_AUTO_INCREMENT_FLAG (integer) |
MYSQLI_TIMESTAMP_FLAG (integer) |
MYSQLI_SET_FLAG (integer) |
MYSQLI_NUM_FLAG (integer) |
MYSQLI_PART_KEY_FLAG (integer) |
MYSQLI_GROUP_FLAG (integer) |
MYSQLI_TYPE_DECIMAL (integer) |
MYSQLI_TYPE_TINY (integer) |
MYSQLI_TYPE_SHORT (integer) |
MYSQLI_TYPE_LONG (integer) |
MYSQLI_TYPE_FLOAD (integer) |
MYSQLI_TYPE_DOUBLE (integer) |
MYSQLI_TYPE_NULL (integer) |
MYSQLI_TYPE_TIMESTAMP (integer) |
MYSQLI_TYPE_LONGLONG (integer) |
MYSQLI_TYPE_INT24 (integer) |
MYSQLI_TYPE_DATE (integer) |
MYSQLI_TYPE_TIME (integer) |
MYSQLI_TYPE_DATETIME (integer) |
MYSQLI_TYPE_YEAR (integer) |
MYSQLI_TYPE_NEWDATE (integer) |
MYSQLI_TYPE_ENUM (integer) |
MYSQLI_TYPE_SET (integer) |
MYSQLI_TYPE_TINY_BLOB (integer) |
MYSQLI_TYPE_MEDIUM_BLOB (integer) |
MYSQLI_TYPE_LONG_BLOB (integer) |
MYSQLI_TYPE_BLOB (integer) |
MYSQLI_TYPE_VAR_STRING (integer) |
MYSQLI_TYPE_STRING (integer) |
MYSQLI_TYPE_CHAR (integer) |
MYSQLI_TYPE_INTERVAL (integer) |
MYSQLI_TYPE_GEOMETRY (integer) |
MYSQLI_BIND_STRING (integer) |
MYSQLI_BIND_INT (integer) |
MYSQLI_BIND_DOUBLE (integer) |
MYSQLI_BIND_SEND_DATA (integer) |
MYSQLI_RPL_MASTER (integer) |
MYSQLI_RPL_SLAVE (integer) |
MYSQLI_RPL_ADMIN (integer) |
MYSQLI_NEED_DATA (integer) |
MYSQLI_NO_DATA (integer) |
MYSQLI_PR_REPORT_STDERR (integer) |
MYSQLI_PR_REPORT_PORT (integer) |
MYSQLI_PR_REPORT_FILE (integer) |
Inhaltsverzeichnis
mysqli_affected_rows -- Gets the number of affected rows in a previous MySQL operation
mysqli_autocommit -- Turns on or off auto-commiting database modifications
mysqli_bind_param -- Alias for mysqli_stmt_bind_param()
mysqli_bind_result -- Alias for mysqli_stmt_bind_result()
mysqli_change_user -- Changes the user of the specified database connection
mysqli_character_set_name -- Returns the default character set for the database connection
mysqli_client_encoding -- Alias of mysqli_character_set_name()
mysqli_close -- Closes a previously opened database connection
mysqli_commit -- Commits the current transaction
mysqli_connect_errno -- Returns the error code from last connect call
mysqli_connect_error -- Returns a string description of the last connect error
mysqli_connect -- Open a new connection to the MySQL server
mysqli_data_seek -- Adjusts the result pointer to an arbitary row in the result
mysqli_debug -- Performs debugging operations
mysqli_disable_reads_from_master --
mysqli_disable_rpl_parse --
mysqli_dump_debug_info -- Dump debugging information into the log
mysqli_embedded_connect -- Open a connection to an embedded mysql server.
mysqli_enable_reads_from_master --
mysqli_enable_rpl_parse --
mysqli_errno -- Returns the error code for the most recent function call
mysqli_error -- Returns a string description of the last error
mysqli_escape_string -- Alias of mysqli_real_escape_string()
mysqli_execute -- Alias for mysqli_stmt_execute()
mysqli_fetch_array -- Fetch a result row as an associative, a numeric array, or both.
mysqli_fetch_assoc -- Fetch a result row as an associative array
mysqli_fetch_field_direct -- Fetch meta-data for a single field
mysqli_fetch_field -- Returns the next field in the result set
mysqli_fetch_fields -- Returns an array of objects representing the fields in a result set
mysqli_fetch_lengths -- Returns the lengths of the columns of the current row in the result set
mysqli_fetch_object -- Returns the current row of a result set as an object
mysqli_fetch_row -- Get a result row as an enumerated array
mysqli_fetch -- Alias for mysqli_stmt_fetch()
mysqli_field_count -- Returns the number of columns for the most recent query
mysqli_field_seek -- Set result pointer to a specified field offset
mysqli_field_tell -- Get current field offset of a result pointer
mysqli_free_result -- Frees the memory associated with a result
mysqli_get_client_info -- Returns the MySQL client version as a string
mysqli_get_client_version -- Get MySQL client info.
mysqli_get_host_info -- Returns a string representing the type of connection used
mysqli_get_metadata -- Alias for mysqli_stmt_result_metadata()
mysqli_get_proto_info -- Returns the version of the MySQL protocol used
mysqli_get_server_info -- Returns the version of the MySQL server
mysqli_get_server_version -- Returns the version of the MySQL server as an integer
mysqli_info -- Retrieves information about the most recently executed query
mysqli_init -- Initializes MySQLi and returns an object for use with mysqli_real_connect
mysqli_insert_id -- Returns the auto generated id used in the last query
mysqli_kill -- Asks the server to kill a MySQL thread
mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup.
mysqli_more_results -- Check if there any more query results from a multi query.
mysqli_multi_query -- Performs a query on the database
mysqli_next_result -- prepare next result from multi_query.
mysqli_num_fields -- Get the number of fields in a result
mysqli_num_rows -- Gets the number of rows in a result
mysqli_options -- set options
mysqli_param_count -- Alias for mysqli_stmt_param_count()
mysqli_ping -- Pings a server connection, or tries to reconnect if the connection has gone down.
mysqli_prepare -- Prepare a SQL statement for execution
mysqli_query -- Performs a query on the database
mysqli_real_connect -- Opens a connection to a mysql server
mysqli_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
mysqli_real_query -- Execute an SQL query
mysqli_report -- enables or disables internal report functions
mysqli_rollback -- Rolls back current transaction
mysqli_rpl_parse_enabled --
mysqli_rpl_probe --
mysqli_rpl_query_type --
mysqli_select_db -- Selects the default database for database queries
mysqli_send_long_data -- Alias for mysqli_stmt_send_long_data()
mysqli_send_query --
mysqli_server_end --
mysqli_server_init -- Initialize embedded server.
mysqli_set_opt -- Alias of mysqli_options()
mysqli_sqlstate -- Returns the SQLSTATE error from previous MySQL operation.
mysqli_ssl_set -- Used for establishing secure connections using SSL.
mysqli_stat -- Gets the current system status
mysqli_stmt_affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement
mysqli_stmt_bind_param -- Binds variables to a prepared statement as parameters
mysqli_stmt_bind_result -- Binds variables to a prepared statement for result storage
mysqli_stmt_close -- Closes a prepared statement
mysqli_stmt_data_seek -- Seeks to an arbitray row in statement result set
mysqli_stmt_errno -- Returns the error code for the most recent statement call
mysqli_stmt_error -- Returns a string description for last statement error
mysqli_stmt_execute -- Executes a prepared Query
mysqli_stmt_fetch -- Fetch results from a prepared statement into the bound variables
mysqli_stmt_free_result -- Frees stored result memory for the given statement handle
mysqli_stmt-init -- Initializes a statement and returns an object for use with mysqli_stmt_prepare
mysqli_stmt_num_rows -- Return the number of rows in statements result set.
mysqli_stmt_param_count -- Returns the number of parameter for the given statement
mysqli_stmt_prepare -- Prepare a SQL statement for execution
mysqli_stmt_result_metadata -- returns result set metadata from a prepared statement
mysqli_stmt_send_long_data -- Send data in blocks
mysqli_stmt_sqlstate -- returns SQLSTATE error from previous statement operation
mysqli_stmt_store_result -- Transfers a result set from a prepared statement
mysqli_store_result -- Transfers a result set from the last query
mysqli_thread_id -- Returns the thread ID for the current connection
mysqli_thread_safe -- Returns whether thread safety is given or not
mysqli_use_result -- Initiate a result set retrieval
mysqli_warning_count -- Returns the number of warnings from the last query for the given link

Zurück | Zum Anfang | Nach vorne
mysql_unbuffered_query | Nach oben | mysqli_affected_rows


mysqli_affected_rows

(PHP 5)

mysqli_affected_rows

(no version information, might be only in CVS)

mysqli->affected_rows -- Gets the number of affected rows in a previous MySQL operation

Description

Procedural style:

mixed mysqli_affected_rows ( object link)

Object oriented style (property):

class mysqli {

mixed affected_rows

}

mysqli_affected_rows() returns the number of rows affected by the last INSERT, UPDATE, or DELETE query associated with the provided link parameter. If the last query was invalid, this function will return -1.

Anmerkung: For SELECT statements mysqli_affected_rows() works like mysqli_num_rows().

The mysqli_affected_rows() function only works with queries which modify a table. In order to return the number of rows from a SELECT query, use the mysqli_num_rows() function instead.

Return Values

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query returned an error.

Anmerkung: If the number of affected rows is greater than maximal int value, the number of affected rows will be returned as a string.

See also

mysqli_num_rows(), mysqli_info().

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Insert rows */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* update rows */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);

/* delete rows */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);

/* select all rows */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", $mysqli->affected_rows);

$result->close();

/* Delete table Language */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* Insert rows */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* update rows */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));

/* delete rows */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));

/* select all rows */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Delete table Language */
mysqli_query($link, "DROP TABLE Language");

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Affected rows (INSERT): 984
Affected rows (UPDATE): 168
Affected rows (DELETE): 815
Affected rows (SELECT): 169

Zurück | Zum Anfang | Nach vorne
Verbesserte MySQL Erweiterung | Nach oben | mysqli_autocommit


mysqli_autocommit

(PHP 5)

mysqli_autocommit

(no version information, might be only in CVS)

mysqli->auto_commit -- Turns on or off auto-commiting database modifications

Description

Procedural style:

bool mysqli_autocommit ( object link, bool mode)

Object oriented style (method)

class mysqli {

bool auto_commit ( bool mode)

}

mysqli_autocommit() is used to turn on or off auto-commit mode on queries for the database connection represented by the link object.

Anmerkung: mysqli_autocommit() doesn't work with non transactional table types (like MyISAM or ISAM).

To determine the current state of autocommit use the SQL command 'SELECT @@autocommit'.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_commit(), mysqli_rollback().

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("Autocommit is %s\n", $row[0]);
    $result->free();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
mysqli_autocommit($link, TRUE);

if ($result = mysqli_query($link, "SELECT @@autocommit")) {
    $row = mysqli_fetch_row($result);
    printf("Autocommit is %s\n", $row[0]);
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Autocommit is 1

Zurück | Zum Anfang | Nach vorne
mysqli_affected_rows | Nach oben | mysqli_bind_param


mysqli_bind_param

mysqli_bind_param -- Alias for mysqli_stmt_bind_param()

Description

This function is an alias of mysqli_stmt_bind_param(). For a detailled descripton see description of mysqli_stmt_bind_param().

Anmerkung: mysqli_bind_param() is deprecated and will be removed.

See also

mysqli_stmt_bind_param()

Zurück | Zum Anfang | Nach vorne
mysqli_autocommit | Nach oben | mysqli_bind_result


mysqli_bind_result

mysqli_bind_result -- Alias for mysqli_stmt_bind_result()

Description

This function is an alias of mysqli_stmt_bind_result(). For a detailled descripton see description of mysqli_stmt_bind_result().

Anmerkung: mysqli_bind_result() is deprecated and will be removed.

See also

mysqli_stmt_bind_result()

Zurück | Zum Anfang | Nach vorne
mysqli_bind_param | Nach oben | mysqli_change_user


mysqli_change_user

(PHP 5)

mysqli_change_user

(no version information, might be only in CVS)

mysqli->change_user -- Changes the user of the specified database connection

Description

Procedural style:

bool mysqli_change_user ( object link, string user, string password, string database)

Object oriented style (method):

class mysqli {

bool change_user ( string user, string password, string database)

}

mysqli_change_user() is used to change the user of the specified database connection as given by the link parameter and to set the current database to that specified by the database parameter.

If desired, the NULL value may be passed in place of the database parameter resulting in only changing the user and not selecting a database. To select a database in this case use the mysqli_select_db() function.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

Anmerkung: Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

Return Values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also:

mysqli_connect() mysqli_select_db()

Example

Beispiel 1. Object oriented style

<?php

/* connect database test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
$mysqli->query("SET @a:=1");

/* reset all and select a new database */
$mysqli->change_user("my_user", "my_password", "world");

if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database: %s\n", $row[0]);
    $result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
    $row = $result->fetch_row();
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
/* connect database test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
mysqli_query($link, "SET @a:=1");

/* reset all and select a new database */
mysqli_change_user($link, "my_user", "my_password", "world");

if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database: %s\n", $row[0]);
    mysqli_free_result($result);
}

if ($result = mysqli_query($link, "SELECT @a")) {
    $row = mysqli_fetch_row($result);
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Default database: world
Value of variable a is NULL

Zurück | Zum Anfang | Nach vorne
mysqli_bind_result | Nach oben | mysqli_character_set_name


mysqli_character_set_name

(PHP 5)

mysqli_character_set_name

(no version information, might be only in CVS)

mysqli->character_set_name -- Returns the default character set for the database connection

Description

Procedural style:

string mysqli_character_set_name ( object link)

Object oriented style (method):

class mysqli {

string character_set_name ( void )

}

Returns the current character set for the database connection specified by the link parameter.

Return values

The default character set for the current connection

See also

mysqli_client_encoding(). mysqli_real_escape_string().

Example

Beispiel 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = $mysqli->character_set_name();
printf ("Current character set is %s\n", $charset);

$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
mysqli_close($link);
?>

The above examples would be produce the following output:

Current character set is latin1_swedish_ci

Zurück | Zum Anfang | Nach vorne
mysqli_change_user | Nach oben | mysqli_client_encoding


mysqli_client_encoding

mysqli_client_encoding -- Alias of mysqli_character_set_name()

Description

This function is an alias of mysqli_character_set_name(). For a detailled descripton see description of mysqli_character_set_name().

See also

mysqli_client_encoding(). mysqli_real_escape_string().

Zurück | Zum Anfang | Nach vorne
mysqli_character_set_name | Nach oben | mysqli_close


mysqli_close

(PHP 5)

mysqli_close

(no version information, might be only in CVS)

mysqli->close -- Closes a previously opened database connection

Description

Procedural style:

bool mysqli_close ( object link)

Object oriented style (method):

class mysqli {

bool close ( void )

}

The mysqli_close() function closes a previously opened database connection specified by the link parameter.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_connect(),
mysqli_init(),
mysqli_real_connect().

Zurück | Zum Anfang | Nach vorne
mysqli_client_encoding | Nach oben | mysqli_commit


mysqli_commit

(PHP 5)

mysqli_commit

(no version information, might be only in CVS)

mysqli->commit -- Commits the current transaction

Description

Procedural style:

bool mysqli_commit ( object link)

Object oriented style (method)

class mysqli {

bool commit ( void )

}

Commits the current transaction for the database connection specified by the link parameter.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_autocommit(), mysqli_rollback().

Examples

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* set autocommit to off */
$mysqli->autocommit(FALSE);

/* Insert some values */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
$mysqli->commit();

/* drop table */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* set autocommit to off */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* Insert some values */
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
mysqli_commit($link);

/* close connection */
mysqli_close($link);
?>

Zurück | Zum Anfang | Nach vorne
mysqli_close | Nach oben | mysqli_connect_errno


mysqli_connect_errno

(PHP 5)

mysqli_connect_errno -- Returns the error code from last connect call

Description

int mysqli_connect_errno ( void )

The mysqli_connect_errno() function will return the last error code number for last call to mysqli_connect(). If no errors have occured, this function will return zero.

Anmerkung: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Return values

An error code value for the last call to mysqli_connect(), if it failed. zero means no error occurred.

See also

mysqli_connect(),
mysqli_connect_error(),
mysqli_errno(),
mysqli_error(),
mysqli_sqlstate()

Example

Beispiel 1. mysqli_connect_errno sample

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Errorcode: %d\n", mysqli_connect_errno());
}
?>

Zurück | Zum Anfang | Nach vorne
mysqli_commit | Nach oben | mysqli_connect_error


mysqli_connect_error

(PHP 5)

mysqli_connect_error -- Returns a string description of the last connect error

Description

string mysqli_connect_error ( void )

The mysqli_connect_error() function is identical to the corresponding mysqli_connect_errno() function in every way, except instead of returning an integer error code the mysqli_connect_error() function will return a string representation of the last error to occur for the last mysqli_connect() call. If no error has occured, this function will return an empty string.

Return values

A string that describes the error. An empty string if no error occurred.

See also

mysqli_connect(),
mysqli_connect_errno(),
mysqli_errno(),
mysqli_error(),
mysqli_sqlstate()

Example

Beispiel 1. mysqli_connect_error sample

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
}
?>

Zurück | Zum Anfang | Nach vorne
mysqli_connect_errno | Nach oben | mysqli_connect


mysqli_connect

(PHP 5)

mysqli_connect

(no version information, might be only in CVS)

mysqli() -- Open a new connection to the MySQL server

Description

Procedural style

object mysqli_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]])

Object oriented style (constructor):

class mysqli {

__construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]])

}

The mysqli_connect() function attempts to open a connection to the MySQL Server running on host which can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. If successful, the mysqli_connect() will return an object representing the connection to the database, or FALSE on failure.

The username and password parameters specify the username and password under which to connect to the MySQL server. If the password is not provided (the NULL value is passed), the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

The dbname parameter if provided will specify the default database to be used when performing queries.

The port and socket parameters are used in conjunction with the host parameter to further control how to connect to the database server. The port parameter specifies the port number to attempt to connect to the MySQL server on, while the socket parameter specifies the socket or named pipe that should be used.

Anmerkung: Specifying the socket parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the host parameter.

Return values

Returns a object which represents the connection to a MySQL Server or FALSE if the connection failed.

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Host information: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Host information: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Host information: Localhost via UNIX socket

Zurück | Zum Anfang | Nach vorne
mysqli_connect_error | Nach oben | mysqli_data_seek


mysqli_data_seek

(PHP 5)

mysqli_data_seek

(no version information, might be only in CVS)

result->data_seek -- Adjusts the result pointer to an arbitary row in the result

Description

Procedural style:

bool mysqli_data_seek ( object result, int offset)

Object oriented style (method):

class result {

bool data_seek ( int offset)

}

The mysqli_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set represented by result. The offset parameter must be between zero and the total number of rows minus one (0..mysqli_num_rows() - 1).

Anmerkung: This function can only be used with unbuffered results attained from the use of the mysqli_store_result() or mysqli_query() functions.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_store_result(),
mysqli_fetch_row(),
mysqli_num_rows().

Example

Beispiel 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query( $query)) {

    /* seek to row no. 400 */
    $result->data_seek(399);

    /* fetch row */
    $row = $result->fetch_row();

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* seek to row no. 400 */
    mysqli_data_seek($result, 399);

    /* fetch row */
    $row = mysqli_fetch_row($result);

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

City: Benin City  Countrycode: NGA

Zurück | Zum Anfang | Nach vorne
mysqli_connect | Nach oben | mysqli_debug


mysqli_debug

(PHP 5)

mysqli_debug -- Performs debugging operations

Description

void mysqli_debug ( string debug)

The mysqli_debug() function is used to perform debugging operations using the Fred Fish debugging library. The debug parameter is a string representing the debugging operation to perform.

Anmerkung: To use the mysqli_debug() function you must complile the MySQL client library to support debugging.

Return values

mysqli_debug() doesn't return any value.

See also

mysqli_dump_debug_info(), mysqli_report()

Example

Beispiel 1. Generating a Trace File

<?php

/* Create a trace file in '/tmp/client.trace' on the local (client) machine: */
mysqli_debug("d:t:0,/tmp/client.trace");

?>

Zurück | Zum Anfang | Nach vorne
mysqli_data_seek | Nach oben | mysqli_disable_reads_from_master


mysqli_disable_reads_from_master

(PHP 5)

mysqli_disable_reads_from_master --

Description

void mysqli_disable_reads_from_master ( resource link)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_debug | Nach oben | mysqli_disable_rpl_parse


mysqli_disable_rpl_parse

(PHP 5)

mysqli_disable_rpl_parse --

Description

void mysqli_disable_rpl_parse ( object link)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_disable_reads_from_master | Nach oben | mysqli_dump_debug_info


mysqli_dump_debug_info

(PHP 5)

mysqli_dump_debug_info

(no version information, might be only in CVS)

mysqli->dump_debug_info -- Dump debugging information into the log

Description

bool mysqli_dump_debug_info ( object link)

This function is designed to be executed by an user with the SUPER privlege and is used to dump debugging information into the log for the MySQL Server relating to the connection specified by the link parameter.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_debug().

Zurück | Zum Anfang | Nach vorne
mysqli_disable_rpl_parse | Nach oben | mysqli_embedded_connect


mysqli_embedded_connect

(PHP 5)

mysqli_embedded_connect -- Open a connection to an embedded mysql server.

Description

object mysqli_embedded_connect ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_dump_debug_info | Nach oben | mysqli_enable_reads_from_master


mysqli_enable_reads_from_master

(PHP 5)

mysqli_enable_reads_from_master --

Description

void mysqli_enable_reads_from_master ( object link)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_embedded_connect | Nach oben | mysqli_enable_rpl_parse


mysqli_enable_rpl_parse

(PHP 5)

mysqli_enable_rpl_parse --

Description

void mysqli_enable_rpl_parse ( object link)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_enable_reads_from_master | Nach oben | mysqli_errno


mysqli_errno

(PHP 5)

mysqli_errno

(no version information, might be only in CVS)

mysqli->errno -- Returns the error code for the most recent function call

Description

Procedural style:

int mysqli_errno ( object link)

Object oriented style (property):

class mysqli {

int errno

}

The mysqli_errno() function will return the last error code for the most recent MySQLi function call that can succeed or fail with respect to the database link defined by the link parameter. If no errors have occured, this function will return zero.

Anmerkung: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Return values

An error code value for the last call, if it failed. zero means no error occurred.

See also

mysqli_connect_errno(),
mysqli_connect_error(),
mysqli_error(),
mysqli_sqlstate()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errorcode: %d\n", $mysqli->errno);
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errorcode: %d\n", mysqli_errno($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Errorcode: 1193

Zurück | Zum Anfang | Nach vorne
mysqli_enable_rpl_parse | Nach oben | mysqli_error


mysqli_error

(PHP 5)

mysqli_error -- Returns a string description of the last error

Description

Procedural style:

string mysqli_error ( object link)

Object oriented style (property)

class mysqli {

string error

}

The mysqli_error() function is identical to the corresponding mysqli_errno() function in every way, except instead of returning an integer error code the mysqli_error() function will return a string representation of the last error to occur for the database connection represented by the link parameter. If no error has occured, this function will return an empty string.

Return values

A string that describes the error. An empty string if no error occurred.

See also

mysqli_connect_errno(),
mysqli_connect_error(),
mysqli_errno(),
mysqli_sqlstate()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errormessage: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errormessage: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Errormessage: Unknown system variable 'a'

Zurück | Zum Anfang | Nach vorne
mysqli_errno | Nach oben | mysqli_escape_string


mysqli_escape_string

mysqli_escape_string -- Alias of mysqli_real_escape_string()

Description

This function is an alias of mysqli_real_escape_string().

Zurück | Zum Anfang | Nach vorne
mysqli_error | Nach oben | mysqli_execute


mysqli_execute

mysqli_execute -- Alias for mysqli_stmt_execute()

Description

This function is an alias of mysqli_stmt_execute(). For a detailled descripton see description of mysqli_stmt_execute().

Anmerkung: mysqli_execute() is deprecated and will be removed.

See also

mysqli_stmt_execute()

Zurück | Zum Anfang | Nach vorne
mysqli_escape_string | Nach oben | mysqli_fetch_array


mysqli_fetch_array

(PHP 5)

mysqli_fetch_array

(no version information, might be only in CVS)

result->fetch_array -- Fetch a result row as an associative, a numeric array, or both.

Description

Procedural style:

mixed mysqli_fetch_array ( object result [, int resulttype])

Object oriend style (method):

class result {

mixed fetch_array ( [int resulttype])

}

Returns an array that corresponds to the fetched row or NULL if there are no more rows for the resultset represented by the result parameter.

mysqli_fetch_array() is an extended version of the mysqli_fetch_row() function. In addition to storing the data in the numeric indices of the result array, the mysqli_fetch_array() function can also store the data in associative indices, using the field names of the result set as keys.

Anmerkung: Field names returned by this function are case-sensitive.

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

The optional second argument resulttype is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. By default the mysqli_fetch_array() function will assume MYSQLI_BOTH for this parameter.

By using the MYSQLI_ASSOC constant this function will behave identically to the mysqli_fetch_assoc(), while MYSQLI_NUM will behave identically to the mysqli_fetch_row() function. The final option MYSQLI_BOTH will create a single array with the attributes of both.

Return values

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

See also

mysqli_fetch_assoc(),
mysqli_fetch_row(),
mysqli_fetch_object().

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* numeric array */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
$result->close();

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Zurück | Zum Anfang | Nach vorne
mysqli_execute | Nach oben | mysqli_fetch_assoc


mysqli_fetch_assoc

(PHP 5)

mysqli_fetch_assoc

(no version information, might be only in CVS)

mysqli->fetch_assoc -- Fetch a result row as an associative array

Description

Procedural style:

array mysqli_fetch_assoc ( object result)

Object oriend style (method):

class result {

array fetch_assoc ( void )

}

Returns an associative array that corresponds to the fetched row or NULL if there are no more rows.

The mysqli_fetch_assoc() function is used to return an associative array representing the next row in the result set for the result represented by the result parameter, where each key in the array represents the name of one of the result set's columns.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.

Anmerkung: Field names returned by this function are case-sensitive.

Return values

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

See also

mysqli_fetch_array(),
mysqli_fetch_row(),
mysqli_fetch_object().

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Zurück | Zum Anfang | Nach vorne
mysqli_fetch_array | Nach oben | mysqli_fetch_field_direct


mysqli_fetch_field_direct

(PHP 5)

mysqli_fetch_field_direct

(no version information, might be only in CVS)

result->fetch_field_direct -- Fetch meta-data for a single field

Description

Procedural style:

mixed mysqli_fetch_field_direct ( object result, int fieldnr)

Object oriented style (method):

class result {

mixed fetch_field_direct ( int fieldnr)

}

mysqli_fetch_field_direct() returns an object which contains field definition informations from specified resultset. The value of fieldnr must be in the range from 0 to number of fields - 1.

Return values

Returns an object which contains field definition informations or FALSE if no field information for specified fieldnr is available.

Tabelle 1. Object attributes

Attribute | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

mysqli_num_fields()
mysqli_fetch_field()
mysqli_fetch_fields()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Zurück | Zum Anfang | Nach vorne
mysqli_fetch_assoc | Nach oben | mysqli_fetch_field


mysqli_fetch_field

(PHP 5)

mysqli_fetch_field

(no version information, might be only in CVS)

result->fetch_field -- Returns the next field in the result set

Description

Procedural style:

mixed mysqli_fetch_field ( object result)

Object oriented style (method):

class result {

mixed fetch_field ( void )

}

The mysqli_fetch_field() returns the definition of one column of a result set as an object. Call this function repeatedly to retrieve information about all columns in the result set. mysqli_fetch_field() returns FALSE when no more fields are left.

Return values

Returns an object which contains field definition informations or FALSE if no field information is available.

Tabelle 1. Object properties

Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

mysqli_num_fields()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_field_seek()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Zurück | Zum Anfang | Nach vorne
mysqli_fetch_field_direct | Nach oben | mysqli_fetch_fields


mysqli_fetch_fields

(PHP 5)

mysqli_fetch_fields

(no version information, might be only in CVS)

result->fetch_fields -- Returns an array of objects representing the fields in a result set

Description

Procedural Style:

mixed mysqli_fetch_fields ( object result)

Object oriented style (method):

class result {

mixed fetch_fields ( void )

}

This function serves an identical purpose to the mysqli_fetch_field() function with the single difference that, instead of returning one object at a time for each field, the columns are returned as an array of objects.

Return values

Returns an array of objects which contains field definition informations or FALSE if no field information is available.

Tabelle 1. Object properties

Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

mysqli_num_fields()
mysqli_fetch_field()
mysqli_fetch_field_direct()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    $finfo = $result->fetch_fields();

    for ($i=0; $i < count($finfo); $i++) {
        printf("Name:     %s\n", $finfo[$i]->name);
        printf("Table:    %s\n", $finfo[$i]->table);
        printf("max. Len: %d\n", $finfo[$i]->max_length);
        printf("Flags:    %d\n", $finfo[$i]->flags);
        printf("Type:     %d\n\n", $finfo[$i]->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all columns */
    $finfo = mysqli_fetch_fields($result);

    for ($i=0; $i < count($finfo); $i++) {
        printf("Name:     %s\n", $finfo[$i]->name);
        printf("Table:    %s\n", $finfo[$i]->table);
        printf("max. Len: %d\n", $finfo[$i]->max_length);
        printf("Flags:    %d\n", $finfo[$i]->flags);
        printf("Type:     %d\n\n", $finfo[$i]->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Zurück | Zum Anfang | Nach vorne
mysqli_fetch_field | Nach oben | mysqli_fetch_lengths


mysqli_fetch_lengths

(PHP 5)

mysqli_fetch_lengths

(no version information, might be only in CVS)

result->lengths -- Returns the lengths of the columns of the current row in the result set

Description

Procedural style:

mixed mysqli_fetch_lengths ( object result)

Object oriented style (property):

class result {

mixed lengths

}

The mysqli_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set represented by the result parameter. If successful, a numerically indexed array representing the lengths of each column is returned or FALSE on failure.

Return values

An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred.

mysql_fetch_lengths() is valid only for the current row of the result set. It returns FALSE if you call it before calling mysql_fetch_row/array/object or after retrieving all rows in the result.

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

    $row = $result->fetch_row();

    /* display column lengths */
    for ($i=0; $i < count($result->lengths); $i++) {
        printf("Field %2d has Length %2d\n", $i+1, $result->lengths[$i]);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

    $row = mysqli_fetch_row($result);

    /* display column lengths */
    $lengths = mysqli_fetch_lengths($result);
    for ($i=0; $i < count($lengths); $i++) {
        printf("Field %2d has Length %2d\n", $i+1, $lengths[$i]);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Field  1 has Length  3
Field  2 has Length  5
Field  3 has Length 13
Field  4 has Length  9
Field  5 has Length  6
Field  6 has Length  1
Field  7 has Length  6
Field  8 has Length  4
Field  9 has Length  6
Field 10 has Length  6
Field 11 has Length  5
Field 12 has Length 44
Field 13 has Length  7
Field 14 has Length  3
Field 15 has Length  2

Zurück | Zum Anfang | Nach vorne
mysqli_fetch_fields | Nach oben | mysqli_fetch_object


mysqli_fetch_object

(PHP 5)

mysqli_fetch_object

(no version information, might be only in CVS)

result->fetch_object -- Returns the current row of a result set as an object

Description

Procedural style:

mixed mysqli_fetch_object ( object result)

Object oriented style (method):

class result {

mixed fetch_object ( void )

}

The mysqli_fetch_object() will return the current row result set as an object where the attributes of the object represent the names of the fields found within the result set. If no more rows exist in the current result set, NULL is returned.

Return values

Returns an object that corresponds to the fetched row or NULL if there are no more rows in resultset.

Anmerkung: Field names returned by this function are case-sensitive.

See also

mysqli_fetch_array(),
mysqli_fetch_assoc(),
mysqli_fetch_row().

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($obj = mysqli_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Zurück | Zum Anfang | Nach vorne
mysqli_fetch_lengths | Nach oben | mysqli_fetch_row


mysqli_fetch_row

(PHP 5)

mysqli_fetch_row

(no version information, might be only in CVS)

result->fetch_row -- Get a result row as an enumerated array

Description

Procedural style:

mixed mysqli_fetch_row ( object result)

Object oriented style (method):

class result {

mixed fetch_row ( void )

}

Returns an array that corresponds to the fetched row, or NULL if there are no more rows.

mysqli_fetch_row() fetches one row of data from the result set represented by result and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to the mysqli_fetch_row() function will return the next row within the result set, or FALSE if there are no more rows.

Return values

mysqli_fetch_row() returns an array that corresponds to the fetched row or NULL if there are no more rows in result set.

See also

mysqli_fetch_array(),
mysqli_fetch_assoc(),
mysqli_fetch_object().

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Zurück | Zum Anfang | Nach vorne
mysqli_fetch_object | Nach oben | mysqli_fetch


mysqli_fetch

mysqli_fetch -- Alias for mysqli_stmt_fetch()

Description

This function is an alias of mysqli_stmt_fetch(). For a detailled descripton see description of mysqli_stmt_fetch().

Anmerkung: mysqli_fetch() is deprecated and will be removed.

See also

mysqli_stmt_fetch()

Zurück | Zum Anfang | Nach vorne
mysqli_fetch_row | Nach oben | mysqli_field_count


mysqli_field_count

(PHP 5)

mysqli_field_count

(no version information, might be only in CVS)

mysqli->field_count -- Returns the number of columns for the most recent query

Description

Procedural style:

int mysqli_field_count ( object link)

Object oriented style (method):

class mysql {

int field_count ( void )

}

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the mysqli_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

Return values

An integer representing the number of fields in a result set

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query( "DROP TABLE IF EXISTS friends");
$mysqli->query( "CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query( "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$mysqli->real_query($HTTP_POST_VARS['query']);

if (mysql_field_count($link)) {
    /* this was a select/show or describe query */
    $result = $mysqli->store_result();

    /* process resultset */
    $row = $result->fetch_row();

    /* free resultset */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

mysqli_real_query($link, $HTTP_POST_VARS['query']);

if (mysql_field_count($link)) {
    /* this was a select/show or describe query */
    $result = mysqli_store_result($link);

    /* process resultset */
    $row = mysqli_fetch_row($result);

    /* free resultset */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Zurück | Zum Anfang | Nach vorne
mysqli_fetch | Nach oben | mysqli_field_seek


mysqli_field_seek

(PHP 5)

mysqli_field_seek

(no version information, might be only in CVS)

result->field_seek -- Set result pointer to a specified field offset

Description

Procedural style:

int mysqli_field_seek ( object result, int fieldnr)

Object oriented style (method):

class result {

int field_seek ( int fieldnr)

}

Sets the field cursor to the given offset. The next call to mysqli_fetch_field() will retrieve the field definition of the column associated with that offset.

Anmerkung: To seek to the beginning of a row, pass an offset value of zero.

Return values

mysqli_field_seek() returns previuos value of field cursor.

See also

mysqli_fetch_field()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for 2nd column */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for 2nd column */
    mysqli_field_seek($result, 1);
    $finfo = mysqli_fetch_field($result);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Zurück | Zum Anfang | Nach vorne
mysqli_field_count | Nach oben | mysqli_field_tell


mysqli_field_tell

(PHP 5)

mysqli_field_tell

(no version information, might be only in CVS)

result->current_field -- Get current field offset of a result pointer

Description

Procedural style:

int mysqli_field_tell ( object result)

Object oriented style (property):

class result {

int current_field

}

Returns the position of the field cursor used for the last mysqli_fetch_field() call. This value can be used as an argument to mysqli_field_seek().

Return values

Returns current offset of field cursor.

Siehe auch

mysqli_fetch_field(), mysqli_field_seek()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        /* get fieldpointer offset */
        $currentfield = $result->current_field;

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        /* get fieldpointer offset */
        $currentfield = mysqli_field_tell($result);

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Column 1:
Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Column 2:
Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Zurück | Zum Anfang | Nach vorne
mysqli_field_seek | Nach oben | mysqli_free_result


mysqli_free_result

(PHP 5)

mysqli_free_result

(no version information, might be only in CVS)

result->free -- Frees the memory associated with a result

Description

Procedural style:

void mysqli_free_result ( object result)

Object oriented style (method):

class result {

void free ( void )

}

The mysqli_free_result() function frees the memory associated with the result represented by the result parameter, which was allocated by mysqli_query(), mysqli_store_result() or mysqli_use_result().

Anmerkung: You should always free your result with mysqli_free_result(), when your result object is not needed anymore.

Return values

This function doesn't return any value.

Siehe auch

mysqli_query(),
mysqli_stmt_store_result(),
mysqli_store_result(),
mysqli_use_result().

Zurück | Zum Anfang | Nach vorne
mysqli_field_tell | Nach oben | mysqli_get_client_info


mysqli_get_client_info

(PHP 5)

mysqli_get_client_info -- Returns the MySQL client version as a string

Description

string mysqli_get_client_info ( void )

The mysqli_get_client_info() function is used to return a string representing the client version being used in the MySQLi extension.

Return values

A string that represents the MySQL client library version

See also

mysqli_get_client_version(),
mysqli_get_server_info(),
mysqli_get_server_version()

Example

Beispiel 1. mysqli_get_client_info

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %s\n", mysqli_get_client_info());
?>

Zurück | Zum Anfang | Nach vorne
mysqli_free_result | Nach oben | mysqli_get_client_version


mysqli_get_client_version

(PHP 5)

mysqli_get_client_version -- Get MySQL client info.

Description

int mysqli_get_client_version ( void )

Returns client version number as an integer.

Return values

A number that represents the MySQL client library version in format: main_version*10000 + minor_version *100 + sub_version. For example, 4.1.0 is returned as 40100.

This is useful to quickly determine the version of the client library to know if some capability exits.

See also

mysqli_get_client_info(),
mysqli_get_server_info(),
mysqli_get_server_version()

Example

Beispiel 1. mysqli_get_client_version

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %d\n", mysqli_get_client_version());
?>

Zurück | Zum Anfang | Nach vorne
mysqli_get_client_info | Nach oben | mysqli_get_host_info


mysqli_get_host_info

(PHP 5)

mysqli_get_host_info

(no version information, might be only in CVS)

mysqli->get_host_info -- Returns a string representing the type of connection used

Description

Procdural style:

string mysqli_get_host_info ( object link)

Object oriented style (property):

class mysqli {

string host_info

}

The mysqli_get_host_info() function returns a string describing the connection represented by the link parameter is using (including the server host name).

Return values

A character string representing the server hostname and the connection type.

See also

mysqli_get_proto_info()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Host info: Localhost via UNIX socket

Zurück | Zum Anfang | Nach vorne
mysqli_get_client_version | Nach oben | mysqli_get_metadata


mysqli_get_metadata

mysqli_get_metadata -- Alias for mysqli_stmt_result_metadata()

Description

This function is an alias of mysqli_stmt_result_metadata(). For a detailled descripton see description of mysqli_stmt_result_metadata().

Anmerkung: mysqli_get_metadata() is deprecated and will be removed.

See also

mysqli_stmt_result_metadata()

Zurück | Zum Anfang | Nach vorne
mysqli_get_host_info | Nach oben | mysqli_get_proto_info


mysqli_get_proto_info

(PHP 5)

mysqli_get_proto_info

(no version information, might be only in CVS)

mysqli->protocol_version -- Returns the version of the MySQL protocol used

Description

Procedural style:

int mysqli_get_proto_info ( object link)

Object oriented style (property):

class mysqli {

string protocol_version

}

Returns an integer representing the MySQL protocol version used by the connection represented by the link parameter.

Return values

Returns an integer representing the protocol version.

See also

mysqli_get_host_info()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", $mysqli->protocol_version);

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", mysqli_get_proto_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Protocol version: 10

Zurück | Zum Anfang | Nach vorne
mysqli_get_metadata | Nach oben | mysqli_get_server_info


mysqli_get_server_info

(PHP 5)

mysqli_get_server_info

(no version information, might be only in CVS)

mysqli->server_info -- Returns the version of the MySQL server

Description

Procedural style:

string mysqli_get_server_info ( object link)

Object oriented style (property):

class mysqli {

string server_info

}

Returns a string representing the version of the MySQL server that the MySQLi extension is connected to (represented by the link parameter).

Return values

A character string representing the server version.

See also

mysqli_get_client_info(),
mysqli_get_client_version(),
mysqli_get_server_version()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", $mysqli->server_info);

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", mysqli_get_server_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Server version: 4.1.2-alpha-debug

Zurück | Zum Anfang | Nach vorne
mysqli_get_proto_info | Nach oben | mysqli_get_server_version


mysqli_get_server_version

(PHP 5)

mysqli_get_server_version -- Returns the version of the MySQL server as an integer

Description

Procedural style:

int mysqli_get_server_version ( object link)

Object oriented style (property):

class mysqli {

int server_version

}

The mysqli_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer.

The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 4.1.0 is 40100).

Return values

An integer representing the server version.

See also

mysqli_get_client_info(),
mysqli_get_client_version(),
mysqli_get_server_info()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", $mysqli->server_version);

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", mysqli_get_server_version($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Server version: 40102

Zurück | Zum Anfang | Nach vorne
mysqli_get_server_info | Nach oben | mysqli_info


mysqli_info

(PHP 5)

mysqli_info

(no version information, might be only in CVS)

mysqli->info -- Retrieves information about the most recently executed query

Description

Procedural style:

string mysqli_info ( object link)

Object oriented style (property)

class mysqli {

string info

}

The mysqli_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Tabelle 1. Possible mysqli_info return values

Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Anmerkung: Queries which do not fall into one of the above formats are not supported. In these situations, mysqli_info() will return an empty string.

Return values

A character string representing additional information about the most recently executed query.

Siehe auch

mysqli_affected_rows(),
mysqli_warning_count(),
mysqli_num_rows()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", $mysqli->info);

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", mysqli_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Records: 150  Duplicates: 0  Warnings: 0

Zurück | Zum Anfang | Nach vorne
mysqli_get_server_version | Nach oben | mysqli_init


mysqli_init

(PHP 5)

mysqli_init -- Initializes MySQLi and returns an object for use with mysqli_real_connect

Description

object mysqli_init ( void )

Allocates or initializes a MYSQL object suitable for mysqli_options() and mysqli_real_connect().

Anmerkung: Any subsequent calls to any mysqli function (except mysqli_options()) will fail until mysqli_real_connect() was called.

Return values

Returns an object.

Siehe auch

mysqli_options(),
mysqli_close(),
mysqli_real_connect(),
mysqli_connect()

Zurück | Zum Anfang | Nach vorne
mysqli_info | Nach oben | mysqli_insert_id


mysqli_insert_id

(PHP 5)

mysqli_insert_id

(no version information, might be only in CVS)

mysqli->insert_id -- Returns the auto generated id used in the last query

Description

Procedural style:

mixed mysqli_insert_id ( object link)

Object oriented style (property):

class mysqli {

mixed insert_id

}

The mysqli_insert_id() function returns the ID generated by a query on a table with a column having the AUTO_INCREMENT attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the AUTO_INCREMENT attribute, this function will return zero.

Anmerkung: Performing an INSERT or UPDATE statement using the LAST_INSERT_ID() function will also modify the value returned by the mysqli_insert_id() function.

Return values

The value of the AUTO_INCREMENT field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an AUTO_INCREMENT value.

Anmerkung: If the number is greater than maximal int value, mysqli_insert_id() will return a string.

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf ("New Record has id %d.\n", mysqli_insert_id($link));

/* drop table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

New Record has id 1.

Zurück | Zum Anfang | Nach vorne
mysqli_init | Nach oben | mysqli_kill


mysqli_kill

(PHP 5)

mysqli_kill

(no version information, might be only in CVS)

mysqli->kill -- Asks the server to kill a MySQL thread

Description

Procedural style:

bool mysqli_kill ( object link, int processid)

Object oriented style (method)

class mysqli {

bool kill ( int processid)

}

This function is used to ask the server to kill a MySQL thread specified by the processid parameter. This value must be retrieved by calling the mysqli_thread_id() function.

Anmerkung: To stop a running query you should use the SQL command KILL QUERY processid.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch

mysqli_thread_id()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: MySQL server has gone away

Zurück | Zum Anfang | Nach vorne
mysqli_insert_id | Nach oben | mysqli_master_query


mysqli_master_query

(PHP 5)

mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup.

Description

bool mysqli_master_query ( object link, string query)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_kill | Nach oben | mysqli_more_results


mysqli_more_results

(PHP 5)

mysqli_more_results

(no version information, might be only in CVS)

mysqli->more_results -- Check if there any more query results from a multi query.

Description

bool mysqli_more_results ( object link)

mysqli_more_results() indicates if one or more result sets are available from a previous call to mysqli_multi_query().

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_multi_query(),
mysqli_next_result(),
mysqli_store_result(),
mysqli_use_result()

Example

See mysqli_multi_query().

Zurück | Zum Anfang | Nach vorne
mysqli_master_query | Nach oben | mysqli_multi_query


mysqli_multi_query

(PHP 5)

mysqli_multi_query

(no version information, might be only in CVS)

mysqli->multi_query -- Performs a query on the database

Description

Procedural style:

bool mysqli_multi_query ( object link, string query)

Object oriented style (method):

class mysqli {

bool multi_query ( string query)

}

The mysqli_multi_query() executes one or multiple queries which are concatenated by a semicolon.

To retrieve the resultset from the first query you can use mysqli_use_result() or mysqli_store_result(). All subsequent query results can be processed using mysqli_more_results() and mysqli_next_result().

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_use_result(),
mysqli_store_result(),
mysqli_next_result(),
mysqli_more_results()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Zurück | Zum Anfang | Nach vorne
mysqli_more_results | Nach oben | mysqli_next_result


mysqli_next_result

(PHP 5)

mysqli_next_result

(no version information, might be only in CVS)

mysqli->next_result -- prepare next result from multi_query.

Description

bool mysqli_next_result ( object link)

mysqli_next_result() prepares next result set from a previous call to mysqli_multi_query() which can be retrieved by mysqli_store_result() or mysqli_use_result().

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_multi_query(),
mysqli_more_results(),
mysqli_store_result(),
mysqli_use_result()

Example

See mysqli_multi_query().

Zurück | Zum Anfang | Nach vorne
mysqli_multi_query | Nach oben | mysqli_num_fields


mysqli_num_fields

(PHP 5)

mysqli_num_fields

(no version information, might be only in CVS)

result->field_count -- Get the number of fields in a result

Description

Procedural style:

int mysqli_num_fields ( object result)

Object oriented style (property):

class result {

int field_count

}

mysqli_num_fields() returns the number of fields from specified result set.

Return values

The number of fields from a result set

Siehe auch

mysqli_fetch_field()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = $result->field_count;

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = mysqli_num_fields($result);

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Result set has 5 fields.

Zurück | Zum Anfang | Nach vorne
mysqli_next_result | Nach oben | mysqli_num_rows


mysqli_num_rows

(PHP 5)

mysqli_num_rows -- Gets the number of rows in a result

Description

Procedural style:

mixed mysqli_num_rows ( object result)

Object oriented style (property):

class mysqli {

mixed num_rows

}

Returns the number of rows in the result set.

The use of mysqli_num_rows() depends on whether you use buffered or unbuffered result sets. In case you use unbuffered resultsets mysqli_num_rows() will not correct the correct number of rows until all the rows in the result have been retrieved.

Return values

Returns number of rows in the result set.

Anmerkung: If the number of rows is greater than maximal int value, the number will be returned as a string.

Siehe auch

mysqli_affected_rows()
mysqli_store_result()
mysqli_use_result()
mysqli_query()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = $result->num_rows;

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = mysqli_num_rows($result);

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Result set has 239 rows.

Zurück | Zum Anfang | Nach vorne
mysqli_num_fields | Nach oben | mysqli_options


mysqli_options

(PHP 5)

mysqli_options

(no version information, might be only in CVS)

mysqli->options -- set options

Description

Procedural style:

bool mysqli_options ( object link, int option, mixed value)

Object oriented style (method)

class mysqli {

bool options ( int option, mixed value)

}

mysqli_options() can be used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

mysqli_options() should be called after mysqli_init() and before mysqli_real_connect().

The parameter option is the option that you want to set, the value is the value for the option. The parameter option can be one of the following values:

Tabelle 1. Valid options

Name | Description
MYSQLI_OPT_CONNECT_TIMEOUT | connection timeout in seconds
MYSQLI_OPT_COMPRESS | use compression protocol
MYSQLI_OPT_LOCAL_INFILE | enable/disable use of LOAD LOCAL INFILE
MYSQLI_INIT_CMD | command to execute after when connecting to MySQL server
MYSQLI_READ_DEFAULT_FILE | Read options from named option file instead of my.cnf
MYSQLI_READ_DEFAULT_GROUP | Read options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch

mysqli_init(), mysqli_real_connect()

Example

See mysqli_real_connect().

Zurück | Zum Anfang | Nach vorne
mysqli_num_rows | Nach oben | mysqli_param_count


mysqli_param_count

mysqli_param_count -- Alias for mysqli_stmt_param_count()

Description

This function is an alias of mysqli_stmt_param_count(). For a detailled descripton see description of mysqli_stmt_param_count().

Anmerkung: mysqli_param_count() is deprecated and will be removed.

See also

mysqli_stmt_param_count()

Zurück | Zum Anfang | Nach vorne
mysqli_options | Nach oben | mysqli_ping


mysqli_ping

(PHP 5)

mysqli_ping

(no version information, might be only in CVS)

mysqli->ping -- Pings a server connection, or tries to reconnect if the connection has gone down.

Description

Procedural style:

bool mysqli_ping ( object link)

Object oriented style (method):

class mysqli {

bool ping ( void )

}

Checks whether the connection to the server is working. If it has gone down, and global option mysqli.reconnect is enabled an automatic reconnection is attempted.

This function can be used by clients that remain idle for a long while, to check whether the server has closed the connection and reconnect if necessary.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* check if server is alive */
if ($mysqli->ping()) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* check if server is alive */
if (mysqli_ping($link)) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Our connection is ok!

Zurück | Zum Anfang | Nach vorne
mysqli_param_count | Nach oben | mysqli_prepare


mysqli_prepare

(PHP 5)

mysqli_prepare

(no version information, might be only in CVS)

mysqli->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

mixed mysqli_prepare ( object link, string query)

Object oriented style (method)

class stmt {

mixed prepare ( string query)

}

mysqli_prepare() prepares the SQL query pointed to by the null-terminated string query, and returns a statement handle to be used for further operations on the statement. The query must consist of a single SQL statement.

Anmerkung: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Anmerkung: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Return values

mysqli_prepare() returns a statement object or FALSE if an error occured.

Siehe auch

mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_stmt_bind_param(),
mysqli_stmt_bind_result(),
mysqli_stmt_close()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Amersfoort is in district Utrecht

Zurück | Zum Anfang | Nach vorne
mysqli_ping | Nach oben | mysqli_query


mysqli_query

(PHP 5)

mysqli_query

(no version information, might be only in CVS)

mysqli->query -- Performs a query on the database

Description

Procedural style:

mixed mysqli_query ( object link, string query [, int resultmode])

Object oriented style (method):

class mysqli {

mixed query ( string query)

}

The mysqli_query() function is used to simplify the act of performing a query against the database represented by the link parameter.

Functionally, using this function is identical to calling mysqli_real_query() followed either by mysqli_use_result() or mysqli_store_result() where query is the query string itself and resultmode is either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, if the resultmode is not provided MYSQLI_STORE_RESULT is used.

If you execute mysqli_query() with resultmode MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call mysqli_free_result().

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. For SELECT, SHOW, DESCRIBE or EXPLAIN mysqli_query() will return a result object.

See also

mysqli_real_query(),
mysqli_multi_query(),
mysqli_free_result()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    /* free result set */
    mysqli_free_result($result);
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Error: %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

The above examples would produce the following output:

Table myCity successfully created.
Select returned 10 rows.
Error: Commands out of sync;  You can't run this command now

Zurück | Zum Anfang | Nach vorne
mysqli_prepare | Nach oben | mysqli_real_connect


mysqli_real_connect

(PHP 5)

mysqli_real_connect

(no version information, might be only in CVS)

mysqli->real_connect -- Opens a connection to a mysql server

Description

Procedural style

bool mysqli_real_connect ( object link [, string hostname [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]])

Object oriented style (method)

class mysqli {

bool real_connect ( [string hostname [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]])

}

mysql_real_connect() attempts to establish a connection to a MySQL database engine running on host.

This function differs from mysqli_connect():

  • mysqli_real_connect() needs a valid object which has to be created by function mysqli_init()

  • With function mysqli_options() you can set various options for connection.

  • With the parameter flags you can set diffrent connection options:

    Tabelle 1. Supported flags

    Name | Description
    MYSQLI_CLIENT_COMPRESS | Use compression protocol
    MYSQLI_CLIENT_FOUND_ROWS | return number of matched rows, not the number of affected rows
    MYSQLI_CLIENT_IGNORE_SPACE | Allow spaces after function names. Makes all function names reserved words.
    MYSQLI_CLIENT_INTERACTIVE | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection
    MYSQLI_CLIENT_SSL | Use SSL (encryption)

    Anmerkung: For security reasons the MULTI_STATEMENT flag is not supported in PHP. If you want to execute multiple queries use the mysqli_multi_query() function.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch

mysqli_connect(),
mysqli_init(),
mysqli_options(),
mysqli_ssl_set(),
mysqli_close().

Example

Beispiel 1. Object oriented style

<?php

/* create a connection object which is not connected */
$mysqli = mysqli_init();

/* set connection options */
$mysqli->options(MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
$mysqli->real_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", $mysqli->host_info);

$mysqli->close();
?>

Beispiel 2. Procedural style

<?php

/* create a connection object which is not connected */
$link = mysqli_init();

/* set connection options */
mysqli_options($link, MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", mysqli_get_host_info($link));

mysqli_close($link);
?>

The above examples would produce the following output:

Connection: Localhost via UNIX socket

Zurück | Zum Anfang | Nach vorne
mysqli_query | Nach oben | mysqli_real_escape_string


mysqli_real_escape_string

(PHP 5)

mysqli_real_escape_string

(no version information, might be only in CVS)

mysqli->real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

Description

Procedural style:

string mysqli_real_escape_string ( object link, string escapestr)

Object oriented style (method):

class mysqli {

string real_escape_sring ( string query)

}

This function is used to create a legal SQL string that you can use in a SQL statement. The string escapestr is encoded to an escaped SQL string, taking into account the current character set of the connection.

Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

Return values

Returns an escaped string.

See also

mysqli_character_set_name().

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* this query with escaped $city will work */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

The above examples would produce the following output:

Error: 42000
1 Row inserted.

Zurück | Zum Anfang | Nach vorne
mysqli_real_connect | Nach oben | mysqli_real_query


mysqli_real_query

(PHP 5)

mysqli_real_query

(no version information, might be only in CVS)

mysqli->real_query -- Execute an SQL query

Description

Procedural style

bool mysqli_real_query ( object link, string query)

Object oriented style (method):

class mysqli {

bool real_query ( string query)

}

The mysqli_real_query() function is used to execute only a query against the database represented by the link whose result can then be retrieved or stored using the mysqli_store_result() or mysqli_use_result() functions.

Anmerkung: In order to determine if a given query should return a result set or not, see mysqli_field_count().

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_query()
mysqli_store_result()
mysqli_use_result()

Zurück | Zum Anfang | Nach vorne
mysqli_real_escape_string | Nach oben | mysqli_report


mysqli_report

(PHP 5)

mysqli_report -- enables or disables internal report functions

Description

bool mysqli_report ( int flags)

mysqli_report() is a powerful function to improve your queries and code during development and testing phase. Depending on the flags it reports errors from mysqli function calls or queries which don't use an index (or use a bad index).

Tabelle 1. Supported flags

Name | Description
MYSQLI_REPORT_OFF | Turns reporting off
MYSQLI_REPORT_ERROR | Report errors from mysqli function calls
MYSQLI_REPORT_INDEX | Report if no index or bad index was used in a query
MYSQLI_REPORT_ALL | Set all options (report all)

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_debug(), mysqli_dump_debug_info()

Example

Beispiel 1. Object oriented style

<?php
/* activate reporting */
mysqli_report(MYSQLI_REPORT_ALL);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* this query should report an error */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* this query should report a warning */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();

$mysqli->close();
?>

Zurück | Zum Anfang | Nach vorne
mysqli_real_query | Nach oben | mysqli_rollback


mysqli_rollback

(PHP 5)

mysqli_rollback

(no version information, might be only in CVS)

mysqli->rollback -- Rolls back current transaction

Description

bool mysqli_rollback ( object link)

class mysqli {

bool rollback ( void )

}

Rollbacks the current transaction for the database specified by the link parameter.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_commit() mysqli_autocommit()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* disable autocommit */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
$mysqli->commit();

/* delete all rows */
$mysqli->query("DELETE FROM myCity");

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Rollback */
$mysqli->rollback();

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Drop table myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* disable autocommit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE myCity LIKE City");
mysqli_query($link, "ALTER TABLE myCity Type=InnoDB");
mysqli_query($link, "INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
mysqli_commit($link);

/* delete all rows */
mysqli_query($link, "DELETE FROM myCity");

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Rollback */
mysqli_rollback($link);

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Drop table myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

The above examples would produce the following output:

0 rows in table myCity.
50 rows in table myCity (after rollback).

Zurück | Zum Anfang | Nach vorne
mysqli_report | Nach oben | mysqli_rpl_parse_enabled


mysqli_rpl_parse_enabled

(PHP 5)

mysqli_rpl_parse_enabled --

Description

int mysqli_rpl_parse_enabled ( object link)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_rollback | Nach oben | mysqli_rpl_probe


mysqli_rpl_probe

(PHP 5)

mysqli_rpl_probe --

Description

bool mysqli_rpl_probe ( object link)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_rpl_parse_enabled | Nach oben | mysqli_rpl_query_type


mysqli_rpl_query_type

(PHP 5)

mysqli_rpl_query_type --

Description

int mysqli_rpl_query_type ( string query)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_rpl_probe | Nach oben | mysqli_select_db


mysqli_select_db

(PHP 5)

mysqli_select_db

(no version information, might be only in CVS)

mysqli->select_db -- Selects the default database for database queries

Description

bool mysqli_select_db ( object link, string dbname)

The mysqli_select_db() function selects the default database (specified by the dbname parameter) to be used when performing queries against the database connection represented by the link parameter.

Anmerkung: This function should only be used to change the default database for the connection. You can select the default database with 4th parameter in mysqli_connect().

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_connect() mysqli_real_connect()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* change db to world db */
$mysqli->select_db("world");

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* change db to world db */
mysqli_select_db($link, "world");

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

mysqli_close($link);
?>

The above examples would produce the following output:

Default database is test.
Default database is world.

Zurück | Zum Anfang | Nach vorne
mysqli_rpl_query_type | Nach oben | mysqli_send_long_data


mysqli_send_long_data

mysqli_send_long_data -- Alias for mysqli_stmt_send_long_data()

Description

This function is an alias of mysqli_stmt_send_long_data(). For a detailled descripton see description of mysqli_stmt_send_long_data().

Anmerkung: mysqli_send_long_data() is deprecated and will be removed.

See also

mysqli_stmt_send_long_data()

Zurück | Zum Anfang | Nach vorne
mysqli_select_db | Nach oben | mysqli_send_query


mysqli_send_query

(PHP 5)

mysqli_send_query --

Description

bool mysqli_send_query ( resource link, string query)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_send_long_data | Nach oben | mysqli_server_end


mysqli_server_end

(PHP 5)

mysqli_server_end --

Description

void mysqli_server_end ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_send_query | Nach oben | mysqli_server_init


mysqli_server_init

(PHP 5)

mysqli_server_init -- Initialize embedded server.

Description

bool mysqli_server_init ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Zurück | Zum Anfang | Nach vorne
mysqli_server_end | Nach oben | mysqli_set_opt


mysqli_set_opt

mysqli_set_opt -- Alias of mysqli_options()

Description

This function is an alias of mysqli_options().

Zurück | Zum Anfang | Nach vorne
mysqli_server_init | Nach oben | mysqli_sqlstate


mysqli_sqlstate

(PHP 5)

mysqli_sqlstate

(no version information, might be only in CVS)

mysqli->sqlstate -- Returns the SQLSTATE error from previous MySQL operation.

Description

string mysqli_sqlstate ( object link)

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see http://dev.mysql.com/doc/mysql/en/Error-returns.html.

Anmerkung: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Return values

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

See also

mysqli_errno(), mysqli_error()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

The above examples would produce the following output:

Error - SQLSTATE 42S01.

Zurück | Zum Anfang | Nach vorne
mysqli_set_opt | Nach oben | mysqli_ssl_set


mysqli_ssl_set

(PHP 5)

mysqli_ssl_set

(no version information, might be only in CVS)

mysqli->ssl_set -- Used for establishing secure connections using SSL.

Description

Procedural style:

bool mysqli_ssl_set ( object link [, string key [, string cert [, string ca [, string capath [, string cipher]]]]])

Object oriented style (method):

class mysqli {

bool ssl_set ( [string key [, string cert [, string ca [, string capath [, string cipher]]]]])

}

The function mysqli_ssl_set() is used for establishing secure connections using SSL. It must be called before mysqli_real_connect(). This function does nothing unless OpenSSL support is enabled.

key is the pathname to the key file. cert is the pathname to the certificate file. ca is the pathname to the certificate authority file. capath is the pathname to a directory that contains trusted SSL CA certificates in pem format. cipher is a list of allowable ciphers to use for SSL encryption. Any unused SSL parameters may be given as NULL

Return values

This function always returns TRUE value. If SSL setup is incorrect mysqli_real_connect() will return an error when you attempt to connect.

See also

mysqli_options(), mysqli_real_connect()

Zurück | Zum Anfang | Nach vorne
mysqli_sqlstate | Nach oben | mysqli_stat


mysqli_stat

(PHP 5)

mysqli_stat

(no version information, might be only in CVS)

mysqli->stat -- Gets the current system status

Description

Procedural style:

mixed mysqli_stat ( object link)

Object oriented style (method):

class mysqli {

mixed mysqli->stat ( void )

}

mysqli_stat() returns a string containing information similar to that provided by the 'mysqladmin status' command. This includes uptime in seconds and the number of running threads, questions, reloads, and open tables.

Return values

A string describing the server status. FALSE if an error occurred.

See also

mysqli_get_server_info()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("System status: %s\n", $mysqli->stat());

$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("System status: %s\n", mysqli_stat($link));

mysqli_close($link);
?>

The above examples would produce the following output:

System status: Uptime: 272  Threads: 1  Questions: 5340  Slow queries: 0
Opens: 13  Flush tables: 1  Open tables: 0  Queries per second avg: 19.632
Memory in use: 8496K  Max memory used: 8560K

Zurück | Zum Anfang | Nach vorne
mysqli_ssl_set | Nach oben | mysqli_stmt_affected_rows


mysqli_stmt_affected_rows

(PHP 5)

mysqli_stmt_affected_rows

(no version information, might be only in CVS)

mysqli_stmt->affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement

Description

Procedural style :

mixed mysqli_stmt_affected_rows ( object stmt)

Object oriented style (property):

class stmt {

mixed affected_rows

}

mysqli_stmt_affected_rows() returns the number of rows affected by INSERT, UPDATE, or DELETE query. If the last query was invalid, this function will return -1.

The mysqli_stmt_affected_rows() function only works with queries which update a table. In order to return the number of rows from a SELECT query, use the mysqli_stmt_num_rows() function instead.

Return Values

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE/DELETE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query has returned an error.

Anmerkung: If the number of affected rows is greater than maximal PHP int value, the number of affected rows will be returned as a string value.

See also

mysqli_stmt_num_rows(), mysqli_prepare()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create temp table */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = $mysqli->prepare($query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* execute statement */
    $stmt->execute();

    printf("rows inserted: %d\n", $stmt->affected_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create temp table */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = mysqli_prepare($link, $query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* execute statement */
    mysqli_stmt_execute($stmt);

    printf("rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

rows inserted: 17

Zurück | Zum Anfang | Nach vorne
mysqli_stat | Nach oben | mysqli_stmt_bind_param


mysqli_stmt_bind_param

(PHP 5)

mysqli_stmt_bind_param

(no version information, might be only in CVS)

stmt->bind_param -- Binds variables to a prepared statement as parameters

Description

Procedural style:

bool mysqli_stmt_bind_param ( object stmt, string types, mixed var1 [, mixed var2, ...])

Object oriented style (method):

class stmt {

bool bind_param ( array types, mixed var1 [, mixed var2, ...])

}

mysqli_stmt_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to mysql_prepare(). The string types contains one or more characters which specify the types for the corresponding bind variables

Tabelle 1. Type specification chars

Character | Description
i | corresponding variable has type integer
d | corresponding variable has type double
s | corresponding variable has type string
b | corresponding variable is a blob and will be send in packages

Anmerkung: If data size of a variable exceeds max. allowed package size (max_allowed_package), you have to specify b in types and use mysqli_stmt_send_long_data() to send the data in packages.

The number of variables and length of string types must match the parameters in the statement.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_stmt_bind_result(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_prepare(),
mysqli_stmt_send_long_data(),
mysqli_stmt_errno(),
mysqli_stmt_error()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", $mysqli->affected_rows);

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
mysqi_stmt_execute($stmt);

printf("%d Row inserted.\n", mysqli_stmt_affected_rows($stmt));

/* close statement and connection */
mysqli_stmt_close($stmt);

/* Clean up table CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", mysqli_affected_rows($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

1 Row inserted.
1 Row deleted.

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_affected_rows | Nach oben | mysqli_stmt_bind_result


mysqli_stmt_bind_result

(PHP 5)

mysqli_stmt_bind_result

(no version information, might be only in CVS)

stmt->bind_result -- Binds variables to a prepared statement for result storage

Description

Procedural style:

bool mysqli_stnt_bind_result ( object stmt, mixed var1 [, mixed var2, ...])

Object oriented style (method):

class stmt {

bool bind_result ( mixed var1 [, mixed var2, ...])

}

mysqli_stmt_bind_result() is used to associate (bind) columns in the result set to variables. When mysqli_stmt_fetch() is called to fetch data, the MySQL client/server protocol places the data for the bound columns into the specified variables var1, ....

Anmerkung: Note that all columns must be bound prior to calling mysqli_stmt_fetch(). Depending on column types bound variables can silently change to the corresponding PHP type.

A column can be bound or rebound at any time, even after a result set has been partially retrieved. The new binding takes effect the next time mysqli_stmt_fetch() is called.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_stmt_bind_param(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_prepare(),
mysqli_stmt_prepare(),
mysqli_stmt_init(),
mysqli_stmt_errno(),
mysqli_stmt_error()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* bind variables to prepared statement */
    $stmt->bind_result($col1, $col2);

    /* fetch values */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    $stmt->close();
}
/* close connection */
$mysqli->close();

?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* bind variables to prepared statement */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
       printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_bind_param | Nach oben | mysqli_stmt_close


mysqli_stmt_close

(PHP 5)

mysqli_stmt_close

(no version information, might be only in CVS)

mysqli_stmt->close -- Closes a prepared statement

Description

Procedural style:

bool mysqli_stmt_close ( object stmt)

Object oriented style (method):

class mysqli_stmt {

bool mysqli_stmt->close ( void )

}

Closes a prepared statement. mysql_stmt_close() also deallocates the statement handle pointed to by stmt. If the current statement has pending or unread results, this function cancels them so that the next query can be executed.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_prepare(),

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_bind_result | Nach oben | mysqli_stmt_data_seek


mysqli_stmt_data_seek

(PHP 5)

mysqli_stmt_data_seek

(no version information, might be only in CVS)

stmt->data_seek -- Seeks to an arbitray row in statement result set

Description

Procedural style:

bool mysqli_stmt_data_seek ( object statement, int offset)

Object oriented style (method):

class stmt {

bool data_seek ( int offset)

}

The mysqli_stmt_data_seek() function seeks to an arbitrary result pointer specified by the offset in the statement result set represented by statement. The offset parameter must be between zero and the total number of rows minus one (0..mysqli_stmt_num_rows() - 1).

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_prepare()

Example

Beispiel 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* store result */
    $stmt->store_result();

    /* seek to row no. 400 */
    $stmt->data_seek(399);

    /* fetch values */
    $stmt->fetch();

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* store result */
    mysqli_stmt_store_result($stmt);

    /* seek to row no. 400 */
    mysqli_stmt_data_seek($stmt, 399);

    /* fetch values */
    mysqli_stmt_fetch($stmt);

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

City: Benin City  Countrycode: NGA

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_close | Nach oben | mysqli_stmt_errno


mysqli_stmt_errno

(PHP 5)

mysqli_stmt_errno

(no version information, might be only in CVS)

mysqli_stmt->errno -- Returns the error code for the most recent statement call

Description

Procedural style :

int mysqli_stmt_errno ( object stmt)

Object oriented style (property):

class stmt {

int errno

}

For the statement specified by stmt, mysqli_stmt_errno() returns the error code for the most recently invoked statement function that can succeed or fail.

Anmerkung: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Return values

An error code value. Zero means no error occurred.

See also

mysqli_stmt_error(), mysqli_stmt_sqlstate()

Example

Beispiel 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %d.\n", $stmt->errno);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %d.\n", mysqli_stmt_errno($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: 1146.

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_data_seek | Nach oben | mysqli_stmt_error


mysqli_stmt_error

(PHP 5)

mysqli_stmt_error

(no version information, might be only in CVS)

mysqli_stmt->error -- Returns a string description for last statement error

Description

Procedural style:

string mysqli_stmt_error ( object stmt)

Object oriented style (property):

class stmt {

string error

}

For the statement specified by stmt, mysql_stmt_error() returns a containing the error message for the most recently invoked statement function that can succeed or fail.

Return values

A string that describes the error. An empty string if no error occurred.

See also

mysqli_stmt_errno(), mysqli_stmt_sqlstate()

Example

Beispiel 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->error);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_error($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: Table 'world.myCountry' doesn't exist.

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_errno | Nach oben | mysqli_stmt_execute


mysqli_stmt_execute

(PHP 5)

mysqli_stmt_execute

(no version information, might be only in CVS)

stmt->execute -- Executes a prepared Query

Description

Procedural style:

bool mysqli_stmt_execute ( object stmt)

Object oriented style (method):

class mysql {

bool execute ( void )

}

The mysqli_stmt_execute() function executes a query that has been previously prepared using the mysqli_prepare() function represented by the stmt object. When executed any parameter markers which exist will automatically be replaced with the appropiate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the mysqli_stmt_affected_rows() function. Likewise, if the query yields a result set the mysqli_fetch() function is used.

Anmerkung: When using mysqli_stmt_execute(), the mysqli_fetch() function must be used to fetch the data prior to preforming any additional queries.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_prepare() mysqli_stmt_bind_param().

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    $result->close();
}

/* remove table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
mysqli_stmt_execute($stmt);

/* close statement */
mysqli_stmt_close($stmt);

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    mysqli_free_result($result);
}

/* remove table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_error | Nach oben | mysqli_stmt_fetch


mysqli_stmt_fetch

(PHP 5)

mysqli_stmt_fetch

(no version information, might be only in CVS)

stmt->fetch -- Fetch results from a prepared statement into the bound variables

Description

Procedural style:

mixed mysqli_stmt_fetch ( object stmt)

Object oriented style (method):

class stmt {

mixed fetch ( void )

}

mysqli_stmt_fetch() returns row data using the variables bound by mysqli_stmt_bind_result().

Anmerkung: Note that all columns must be bound by the application before calling mysqli_stmt_fetch().

Return values

Tabelle 1. Return values

Value | Description
TRUE | Success. Data has been fetched
FALSE | Error occured
NULL | No more rows/data exists

See also

mysqli_prepare(),
mysqli_stmt_errno(),
mysqli_stmt_error(),
mysqli_stmt_bind_result()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* execute statement */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

    /* execute statement */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_execute | Nach oben | mysqli_stmt_free_result


mysqli_stmt_free_result

(PHP 5)

mysqli_stmt_free_result

(no version information, might be only in CVS)

stmt->free_result -- Frees stored result memory for the given statement handle

Description

Procedural style:

void mysqli_stmt_free_result ( object stmt)

Object oriented style (method):

class stmt {

void free_result ( void )

}

The mysqli_stmt_free_result() function frees the result memory associated with the statement represented by the stmt parameter, which was allocated by mysqli_stmt_store_result().

Return values

This function doesn't return any value.

Siehe auch

mysqli_stmt_store_result()

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_fetch | Nach oben | mysqli_stmt-init


mysqli_stmt-init

(PHP 5)

mysqli_stmt-init

(no version information, might be only in CVS)

mysqli->stmt->init -- Initializes a statement and returns an object for use with mysqli_stmt_prepare

Description

Procedural style :

object mysqli_stmt_init ( object link)

Object oriented style (property):

class mysqli {

object stmt_init ( void )

}

Allocates and initializes a statement object suitable for mysqli_stmt_prepare().

Anmerkung: Any subsequent calls to any mysqli_stmt function will fail until mysqli_stmt_prepare() was called.

Return values

Returns an object.

Siehe auch

mysqli_stmt_prepare()

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_free_result | Nach oben | mysqli_stmt_num_rows


mysqli_stmt_num_rows

(PHP 5)

mysqli_stmt_num_rows

(no version information, might be only in CVS)

stmt->num_rows -- Return the number of rows in statements result set.

Description

mixed mysqli_stmt_num_rows ( object stmt)

class stmt {

int num_rows

}

Returns the number of rows in the result set. The use of mysqli_stmt_num_rows() depends on whether or not you used mysqli_stmt_store_result() to buffer the entire result set in the statement handle.

If you use mysqli_stmt_store_result(), mysqli_stmt_num_rows() may be called immediately.

Return values

An integer representing the number of rows in result set.

See also

mysqli_stmt_affected_rows(),
mysqli_prepare(),
mysqli_stmt_store_result()

Example

Beispiel 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Number of rows: 20.

Zurück | Zum Anfang | Nach vorne
mysqli_stmt-init | Nach oben | mysqli_stmt_param_count


mysqli_stmt_param_count

(PHP 5)

mysqli_stmt_param_count

(no version information, might be only in CVS)

stmt->param_count -- Returns the number of parameter for the given statement

Description

Procedural style:

int mysqli_stmt_param_count ( object stmt)

Object oriented style (property):

class stmt {

int param_count

}

mysqli_stmt_param_count() returns the number of parameter markers present in the prepared statement.

Return values

returns an integer representing the number of parameters.

Siehe auch

mysqli_prepare()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = mysqli_stmt_param_count($stmt);
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Statement has 2 markers.

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_num_rows | Nach oben | mysqli_stmt_prepare


mysqli_stmt_prepare

(PHP 5)

mysqli_stmt_prepare

(no version information, might be only in CVS)

stmt->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

bool mysqli_stmt_prepare ( object stmt, string query)

Object oriented style (method)

class stmt {

mixed prepare ( string query)

}

mysqli_stmt_prepare() prepares the SQL query pointed to by the null-terminated string query. The statement object has to be allocated by mysqli_stmt_init(). The query must consist of a single SQL statement.

Anmerkung: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Anmerkung: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch

mysqli_stmt_init(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_stmt_bind_param(),
mysqli_stmt_bind_result(),
mysqli_stmt_close()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt = mysqli_stmt_init();
if ($stmt = mysqli_stmt_prepare($stmt, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Amersfoort is in district Utrecht

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_param_count | Nach oben | mysqli_stmt_result_metadata


mysqli_stmt_result_metadata

(PHP 5)

mysqli_stmt_result_metadata -- returns result set metadata from a prepared statement

Description

Procedural style:

mixed mysqli_stmt_result_metadata ( object stmt)

Object oriented style (method):

class stmt {

mixed result_metadata ( void )

}

If a statement passed to mysqli_prepare() is one that produces a result set, mysqli_stmt_result_metadata() returns the result object that can be used to process the meta information such as total number of fields and individual field information.

Anmerkung: This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

  • mysqli_num_fields()

  • mysqli_fetch_field()

  • mysqli_fetch_field_direct()

  • mysqli_fetch_fields()

  • mysqli_field_count()

  • mysqli_field_seek()

  • mysqli_field_tell()

  • mysqli_free_result()

The result set structure should be freed when you are done with it, which you can do by passing it to mysqli_free_result()

Anmerkung: The result set returned by mysqli_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with mysqli_fetch().

Return values

mysqli_stmt_result_metadata() returns a result object or FALSE if an error occured.

See also:

mysqli_prepare(), mysqli_free_result()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* get resultset for metadata */
$result = $stmt->result_metadata();

/* retrieve field information from metadata result set */
$field = $result->fetch_field();

printf("Fieldname: %s\n", $field->name);

/* close resultset */
$result->close();

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* get resultset for metadata */
$result = mysqli_stmt_result_metadata($stmt);

/* retrieve field information from metadata result set */
$field = mysqli_fetch_field($result);

printf("Fieldname: %s\n", $field->name);

/* close resultset */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_prepare | Nach oben | mysqli_stmt_send_long_data


mysqli_stmt_send_long_data

(PHP 5)

mysqli_stmt_send_long_data

(no version information, might be only in CVS)

stmt->send_long_data -- Send data in blocks

Description

Procedural style:

bool mysqli_stmt_send_long_data ( object stmt, int param_nr, string data)

Object oriented style (method)

class stmt {

bool stmt_send_long_data ( int param_nr, string data)

}

Allows to send parameter data to the server in pieces (or chunks), e.g. if the size of a blob exceeds the size of max_allowed_packet. This function can be called multiple times to send the parts of a character or binary data value for a column, which must be one of the TEXT or BLOB datatypes.

param_nr indicates which parameter to associate the data with. Parameters are numbered beginning with 0. data is a string containing data to be sent.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_prepare(), mysqli_stmt_bind_param()

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_result_metadata | Nach oben | mysqli_stmt_sqlstate


mysqli_stmt_sqlstate

(PHP 5)

mysqli_stmt_sqlstate -- returns SQLSTATE error from previous statement operation

Description

string mysqli_stmt_sqlstate ( object stmt)

Returns a string containing the SQLSTATE error code for the most recently invoked prepared statement function that can succeed or fail. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see http://dev.mysql.com/doc/mysql/en/Error-returns.html.

Anmerkung: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Return values

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

See also

mysqli_stmt_errno(), mysqli_stmt_error()

Example

Beispiel 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->sqlstate);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_sqlstate($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: 42S02.

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_send_long_data | Nach oben | mysqli_stmt_store_result


mysqli_stmt_store_result

(PHP 5)

mysqli_stmt_store_result

(no version information, might be only in CVS)

mysqli_stmt->store_result -- Transfers a result set from a prepared statement

Description

Procedural style:

bool mysqli_stmt_store_result ( object stmt)

Object oriented style (method):

class mysqli_stmt {

bool store_result ( void )

}

You must call mysql_stmt_store_result() for every query that successfully produces a result set (SELECT, SHOW, DESCRIBE, EXPLAIN), and only if you want to buffer the complete result set by the client, so that the subsequent mysql_fetch() call returns buffered data.

Anmerkung: It is unnecessary to call mysql_stmt_store_result() for other queries, but if you do, it will not harm or cause any notable performance in all cases. You can detect whether the query produced a result set by checking if mysql_stmt_result_metadata() returns NULL.

Return values

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also

mysqli_prepare(),
mysqli_stmt_result_metadata(),
mysqli_fetch()

Example

Beispiel 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* free result */
    $stmt->free_result();

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* free result */
    mysqli_stmt_free_result($stmt);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Number of rows: 20.

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_sqlstate | Nach oben | mysqli_store_result


mysqli_store_result

(PHP 5)

mysqli_store_result

(no version information, might be only in CVS)

mysqli->store_result -- Transfers a result set from the last query

Description

Procedural style:

object mysqli_store_result ( object link)

Object oriented style (method):

class mysqli {

object store_result ( void )

}

Transfers the result set from the last query on the database connection represented by the link parameter to be used with the mysqli_data_seek() function.

Anmerkung: Although it is always good practice to free the memory used by the result of a query using the mysqli_free_result() function, when transfering large result sets using the mysqli_store_result() this becomes particularly important.

Anmerkung: mysqli_store_result() returns FALSE in case the query didn't return a result set (if the query was, for example an INSERT statement). This function also returns FALSE if the reading of the result set failed. You can check if you have got an error by checking if mysqli_error() doesn't return an empty string, if mysqli_errno() returns a non zero value, or if mysqli_field_count() returns a non zero value. Also possible reason for this function returning FALSE after successfull call to mysqli_query() can be too large result set (memory for it cannot be allocated). If mysqli_field_count() returns a non-zero value, the statement should have produced a non-empty result set.

Return values

Returns a buffered result object or FALSE if an error occured.

See also

mysqli_real_query(), mysqli_use_result().

Example

See mysqli_multi_query().

Zurück | Zum Anfang | Nach vorne
mysqli_stmt_store_result | Nach oben | mysqli_thread_id


mysqli_thread_id

(PHP 5)

mysqli_thread_id

(no version information, might be only in CVS)

mysqli->thread_id -- Returns the thread ID for the current connection

Description

Procedural style:

int mysqli_thread_id ( object link)

Object oriented style (property):

class mysqli {

int thread_id

}

The mysqli_thread_id() function returns the thread ID for the current connection which can then be killed using the mysqli_kill() function. If the connection is lost and you reconnect with mysqli_ping(), the thread ID will be other. Therefore you should get the thread ID only when you need it.

Anmerkung: The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.

To kill a running query you can use the SQL command KILL QUERY processid].

Return values

mysqli_thread_id() returns the Thread ID for the current connection.

See also

mysqli_kill()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: MySQL server has gone away

Zurück | Zum Anfang | Nach vorne
mysqli_store_result | Nach oben | mysqli_thread_safe


mysqli_thread_safe

(PHP 5)

mysqli_thread_safe -- Returns whether thread safety is given or not

Description

Procedural style:

bool mysqli_thread_safe ( void )

mysqli_thread_safe() indicates whether the client library is compiled as thread-safe.

Return values

TRUE if the client library is thread-safe, otherwise FALSE.

Zurück | Zum Anfang | Nach vorne
mysqli_thread_id | Nach oben | mysqli_use_result


mysqli_use_result

(PHP 5)

mysqli_use_result

(no version information, might be only in CVS)

mysqli->use_result -- Initiate a result set retrieval

Description

Procedural style:

mixed mysqli_use_result ( object link)

Object oriented style (method):

class mysqli {

mixed use_result ( void )

}

mysqli_use_result() is used to initiate the retrieval of a result set from the last query executed using the mysqli_real_query() function on the database connection specified by the link parameter. Either this or the mysqli_store_result() function must be called before the results of a query can be retrieved, and one or the other must be called to prevent the next query on that database connection from failing.

Anmerkung: The mysqli_use_result() function does not transfer the entire result set from the database and hence cannot be used functions such as mysqli_data_seek() to move to a particular row within the set. To use this functionality, the result set must be stored using mysqli_store_result(). One should not use mysqli_use_result() if a lot of processing on the client side is performed, since this will tie up the server and prevent other threads from updating any tables from which the data is being fetched.

Return values

Returns an unbuffered result object or FALSE if an error occured.

See also

mysqli_real_query(), mysqli_store_result().

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_use_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Zurück | Zum Anfang | Nach vorne
mysqli_thread_safe | Nach oben | mysqli_warning_count


mysqli_warning_count

(PHP 5)

mysqli_warning_count

(no version information, might be only in CVS)

mysqli->warning_count -- Returns the number of warnings from the last query for the given link

Description

Procedural style:

int mysqli_warning_count ( object link)

Object oriented style (property):

class mysqli {

int warning_count

}

mysqli_warning_count() returns the number of warnings from the last query in the connection represented by the link parameter.

Anmerkung: For retrieving warning messages you can use the SQL command SHOW WARNINGS [limit row_count].

Return values

Number of warnings or zero if there are no warnings.

See also

mysqli_errno(),
mysqli_error(),
mysqli_sqlstate()

Example

Beispiel 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* a remarkable city in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$mysqli->query($query);

if ($mysqli->warning_count) {
    if ($result = $mysqli->query("SHOW WARNINGS")) {
        $row = $result->fetch_row();
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        $result->close();
    }
}

/* close connection */
$mysqli->close();
?>

Beispiel 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* a remarkable long city name in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

mysqli_query($link, $query);

if (mysqli_warning_count($link)) {
    if ($result = mysqli_query($link, "SHOW WARNINGS")) {
        $row = mysqli_fetch_row($result);
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        mysqli_free_result($result);
    }
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Warning (1264): Data truncated for column 'Name' at row 1

Zurück | Zum Anfang | Nach vorne
mysqli_use_result | Nach oben | Mohawk Software Session Handler Funktionen


Mohawk Software Session Handler Funktionen

PHP Handbuch
Zurück Nach vorne

LXVI. Mohawk Software Session Handler Funktionen

msession ist eine Schnittstelle zu einem Hochgeschwindigkeitsdaemon, der entweder lokal oder auf einem entfernten Rechner (remote) laufen kann. Sie wurde erstellt um ein konsitentes Session-Management für die PHP-Webseiten zur Verfügung zu stellen.

Die Session Serversoftware finden Sie unter http://devel.mohawksoft.com/msession.html.

Inhaltsverzeichnis
msession_connect -- Baut eine Verbindung zum msession-Server auf
msession_count -- Get session count
msession_create -- Erstellt eine Session
msession_destroy -- Zerstört eine Session
msession_disconnect -- Schließt eine Verbindung zum msession-Server
msession_find -- Sucht nach einen Wert
msession_get_array -- Gibt ein Array mit ... ? zurück
msession_get -- Gibt einen Wert aus der Session zurück
msession_getdata -- Get data ... ?
msession_inc -- Erhöht einen Wert innerhalb einer Session
msession_list -- List ... ?
msession_listvar -- Listet Sessions mit Variablen auf
msession_lock -- Sperrt eine Session
msession_plugin -- Ruft eine Escape-Funktion innerhalb des msession peronality plugins auf.
msession_randstr -- Gibt eine Zufallszeichenkette zurück
msession_set_array -- Setzt ein Array mit ...?
msession_set -- Setzt einen Wert in der Session
msession_setdata -- Set data ... ?
msession_timeout -- Setzt/liefert Session Timeout
msession_uniq -- Gibt eine eindeutige ID zurück
msession_unlock -- Entsperrt eine Session

Zurück | Zum Anfang | Nach vorne
mysqli_warning_count | Nach oben | msession_connect


msession_connect

(PHP 4 >= 4.2.0, PHP 5)

msession_connect -- Baut eine Verbindung zum msession-Server auf

Beschreibung

bool msession_connect ( string host, string port)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
Mohawk Software Session Handler Funktionen | Nach oben | msession_count


msession_count

(PHP 4 >= 4.2.0, PHP 5)

msession_count -- Get session count

Beschreibung

int msession_count ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_connect | Nach oben | msession_create


msession_create

(PHP 4 >= 4.2.0, PHP 5)

msession_create -- Erstellt eine Session

Beschreibung

bool msession_create ( string session)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_count | Nach oben | msession_destroy


msession_destroy

(PHP 4 >= 4.2.0, PHP 5)

msession_destroy -- Zerstört eine Session

Beschreibung

bool msession_destroy ( string name)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_create | Nach oben | msession_disconnect


msession_disconnect

(PHP 4 >= 4.2.0, PHP 5)

msession_disconnect -- Schließt eine Verbindung zum msession-Server

Beschreibung

void msession_disconnect ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_destroy | Nach oben | msession_find


msession_find

(PHP 4 >= 4.2.0, PHP 5)

msession_find -- Sucht nach einen Wert

Beschreibung

array msession_find ( string name, string value)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_disconnect | Nach oben | msession_get_array


msession_get_array

(PHP 4 >= 4.2.0, PHP 5)

msession_get_array -- Gibt ein Array mit ... ? zurück

Beschreibung

array msession_get_array ( string session)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_find | Nach oben | msession_get


msession_get

(PHP 4 >= 4.2.0, PHP 5)

msession_get -- Gibt einen Wert aus der Session zurück

Beschreibung

string msession_get ( string session, string name, string value)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_get_array | Nach oben | msession_getdata


msession_getdata

(no version information, might be only in CVS)

msession_getdata -- Get data ... ?

Beschreibung

string msession_getdata ( string session)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_get | Nach oben | msession_inc


msession_inc

(PHP 4 >= 4.2.0, PHP 5)

msession_inc -- Erhöht einen Wert innerhalb einer Session

Beschreibung

string msession_inc ( string session, string name)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_getdata | Nach oben | msession_list


msession_list

(PHP 4 >= 4.2.0, PHP 5)

msession_list -- List ... ?

Beschreibung

array msession_list ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_inc | Nach oben | msession_listvar


msession_listvar

(PHP 4 >= 4.2.0, PHP 5)

msession_listvar -- Listet Sessions mit Variablen auf

Beschreibung

array msession_listvar ( string name)

Gibt ein assoziatives Array [Wert, Session] für alle Sessions mit einer Variablen namens name zurück.

Wird verwendet, um Sessions mit allgemeinen Attributen zu durchsuchen.

Zurück | Zum Anfang | Nach vorne
msession_list | Nach oben | msession_lock


msession_lock

(PHP 4 >= 4.2.0, PHP 5)

msession_lock -- Sperrt eine Session

Beschreibung

int msession_lock ( string name)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_listvar | Nach oben | msession_plugin


msession_plugin

(PHP 4 >= 4.2.0, PHP 5)

msession_plugin -- Ruft eine Escape-Funktion innerhalb des msession peronality plugins auf.

Beschreibung

string msession_plugin ( string session, string val [, string param])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_lock | Nach oben | msession_randstr


msession_randstr

(PHP 4 >= 4.2.0, PHP 5)

msession_randstr -- Gibt eine Zufallszeichenkette zurück

Beschreibung

string msession_randstr ( int param)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_plugin | Nach oben | msession_set_array


msession_set_array

(PHP 4 >= 4.2.0, PHP 5)

msession_set_array -- Setzt ein Array mit ...?

Beschreibung

bool msession_set_array ( string session, array tuples)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_randstr | Nach oben | msession_set


msession_set

(PHP 4 >= 4.2.0, PHP 5)

msession_set -- Setzt einen Wert in der Session

Beschreibung

bool msession_set ( string session, string name, string value)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_set_array | Nach oben | msession_setdata


msession_setdata

(no version information, might be only in CVS)

msession_setdata -- Set data ... ?

Beschreibung

bool msession_setdata ( string session, string value)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_set | Nach oben | msession_timeout


msession_timeout

(PHP 4 >= 4.2.0, PHP 5)

msession_timeout -- Setzt/liefert Session Timeout

Beschreibung

int msession_timeout ( string session [, int param])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_setdata | Nach oben | msession_uniq


msession_uniq

(PHP 4 >= 4.2.0, PHP 5)

msession_uniq -- Gibt eine eindeutige ID zurück

Beschreibung

string msession_uniq ( int param)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_timeout | Nach oben | msession_unlock


msession_unlock

(PHP 4 >= 4.2.0, PHP 5)

msession_unlock -- Entsperrt eine Session

Beschreibung

int msession_unlock ( string session, int key)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
msession_uniq | Nach oben | muscat Functions


muscat Functions

PHP Handbuch
Zurück Nach vorne

LXVII. muscat Functions

Einführung

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Installation

These functions are only available if PHP was configured with --with-muscat[=DIR].

Inhaltsverzeichnis
muscat_close -- Shuts down the muscat session and releases any memory back to PHP.
muscat_get -- Gets a line back from the core muscat API.
muscat_give -- Sends string to the core muscat API
muscat_setup_net -- Creates a new muscat session and returns the handle.
muscat_setup -- Creates a new muscat session and returns the handle.

Zurück | Zum Anfang | Nach vorne
msession_unlock | Nach oben | muscat_close


muscat_close

(4.0.5 - 4.2.3 only)

muscat_close -- Shuts down the muscat session and releases any memory back to PHP.

Description

int muscat_close ( resource muscat_handle)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

[Not back to the system, note!]

Zurück | Zum Anfang | Nach vorne
muscat Functions | Nach oben | muscat_get


muscat_get

(4.0.5 - 4.2.3 only)

muscat_get -- Gets a line back from the core muscat API.

Description

string muscat_get ( resource muscat_handle)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Warnung

Diese Funktion kann das Boolsche FALSE zurückliefern, kann aber auch einen nicht-Boolschen Wert zurückgeben, der von einem einfachen if-Statement als FALSE ausgewertet wird, wie zum Beispiel 0 oder "". Weitere Informationen entnehmen Sie bitte dem Abschnitt über Boolsche Typen. Benutzen Sie deshalb bitte den === Operator um den Rückgabewert dieser Funktion zu überprüfen.

Zurück | Zum Anfang | Nach vorne
muscat_close | Nach oben | muscat_give


muscat_give

(4.0.5 - 4.2.3 only)

muscat_give -- Sends string to the core muscat API

Description

int muscat_give ( resource muscat_handle, string string)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
muscat_get | Nach oben | muscat_setup_net


muscat_setup_net

(4.0.5 - 4.2.3 only)

muscat_setup_net -- Creates a new muscat session and returns the handle.

Description

resource muscat_setup_net ( string muscat_host, int port)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

muscat_setup_net() creates a new muscat session and returns the handle.

muscat_host is the hostname to connect to. port is the port number to connect to.

Zurück | Zum Anfang | Nach vorne
muscat_give | Nach oben | muscat_setup


muscat_setup

(4.0.5 - 4.2.3 only)

muscat_setup -- Creates a new muscat session and returns the handle.

Description

resource muscat_setup ( int size [, string muscat_dir])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

size is the amount of memory in bytes to allocate for muscat. muscat_dir is the muscat installation dir e.g. "/usr/local/empower", it defaults to the compile time muscat directory.

Zurück | Zum Anfang | Nach vorne
muscat_setup_net | Nach oben | Netzwerk Funktionen


Netzwerk Funktionen

PHP Handbuch
Zurück Nach vorne

LXVIII. Netzwerk Funktionen

Inhaltsverzeichnis
checkdnsrr -- Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Host-Namen oder einer IP Adresse
closelog -- Schließt die Verbindung zum System-Logger
debugger_off -- Schaltet den internen PHP-Debugger aus
debugger_on -- Schaltet den internen PHP-Debugger ein
define_syslog_variables -- Initialisiert alle SysLog bezogenen Konstanten
dns_check_record -- Synonym für checkdnsrr()
dns_get_mx -- Synonym für getmxrr()
dns_get_record -- Fetch DNS Resource Records associated with a hostname
fsockopen -- Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
gethostbyaddr -- Ermittelt den Internet-Host-Namen (z.B. www.example.com) passend zur angegebenen IP-Adresse (z.B. 192.0.34.72)
gethostbyname -- Ermittelt die IP-Adresse (z.B. 192.0.34.72) passend zum angegebenen Internet-Host-Namen (z.B. www.example.com)
gethostbynamel -- Ermittelt eine Liste von IP-Adressen passend zum angegebenen Internet-Host-Namen
getmxrr -- Ermittelt die (DNS) MX-Datensätze passend zu einem angegebenen Internet-Host-Namen
getprotobyname -- Ermittelt die Protokoll-Nummer anhand des Protokoll-Namens
getprotobynumber -- Ermittelt den Protokoll-Namen anhand der Protokoll-Nummer
getservbyname -- Ermittelt einen Port-Wert passend zu einem Internet-Dienst und Protokoll
getservbyport -- Ermittelt einen Internet-Dienst passend zu einem Port und Protokoll
ip2long -- Verwandelt eine gemäß IP-V4-Protokoll angegebene Internet-Adresse vom Punkt-Format in die ausgeschriebene Adress-Angabe
long2ip -- Konvertiert eine IP-V4-Internet-Netzwerk-Adresse in einen String, der das Punkt-Format enthält ("Dotted-Format")
openlog -- Stellt eine Verbindung zu einem Log-Dienst des Systems her
pfsockopen -- Stellt eine dauernde/permanente Internet oder Unix-Domain-Socket Verbindung her
socket_get_status -- Gibt Informationen über eine vorhandene Socket-Ressource zurück
socket_set_blocking -- Schaltet den Block-Modus eines Sockets an oder aus
socket_set_timeout -- Setzt den Timeout-Wert eines Socket
syslog -- Erzeugt eine Meldung im System-Logging

Zurück | Zum Anfang | Nach vorne
muscat_setup | Nach oben | checkdnsrr


checkdnsrr

(PHP 3, PHP 4 , PHP 5)

checkdnsrr -- Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Host-Namen oder einer IP Adresse

Beschreibung:

int checkdnsrr ( string host [, string type])

Durchsucht den DNS (Domain-Name-Service) auf Daten des Typs type auf Übereinstimmung mit host. Gibt TRUE / wahr zurück, wenn ein Datensatz gefunden wurde. Ansonsten - oder wenn ein Fehler vorliegt - wird FALSE / falsch zurück gegeben.

Der Parameter type kann sein: A, MX, NS, SOA, PTR, CNAME, or ANY. Die Vorgabe ist MX.

Der Parameter host kann eine durch Punkte getrennte IP-Adresse (z.B. 192.168.0.2) oder ein Host-Name (z.B. www.example.com) sein.

Siehe auch getmxrr(),
gethostbyaddr(),
gethostbyname(),
gethostbynamel() und das named(8)
Manual.

Zurück | Zum Anfang | Nach vorne
Netzwerk Funktionen | Nach oben | closelog


closelog

(PHP 3, PHP 4 , PHP 5)

closelog -- Schließt die Verbindung zum System-Logger

Beschreibung:

int closelog ( void )

closelog() schließt den Descriptor, der benötigt wird um in den System-Logger zu schreiben. Der Gebrauch von closelog() ist optional.

Siehe auch define_syslog_variables(), syslog() und openlog().

Zurück | Zum Anfang | Nach vorne
checkdnsrr | Nach oben | debugger_off


debugger_off

(PHP 3)

debugger_off -- Schaltet den internen PHP-Debugger aus

Beschreibung:

int debugger_off ( void )

Schaltet den internen PHP-Debugger aus. Der Debugger befindet sich noch in der Entwicklung.

Zurück | Zum Anfang | Nach vorne
closelog | Nach oben | debugger_on


debugger_on

(PHP 3)

debugger_on -- Schaltet den internen PHP-Debugger ein

Beschreibung:

int debugger_on ( string address)

Schaltet den internen PHP-Debugger, zeigend auf address, ein. Der Debugger befindet sich noch in der Entwicklung.

Zurück | Zum Anfang | Nach vorne
debugger_off | Nach oben | define_syslog_variables


define_syslog_variables

(PHP 3, PHP 4 , PHP 5)

define_syslog_variables -- Initialisiert alle SysLog bezogenen Konstanten

Beschreibung:

void define_syslog_varaibles ( void )

Initialisiert alle Konstanten, die in den SysLog-Funktionen Verwendung finden.

Siehe auch openlog(), syslog() und closelog().

Zurück | Zum Anfang | Nach vorne
debugger_on | Nach oben | dns_check_record


dns_check_record

(PHP 5)

dns_check_record -- Synonym für checkdnsrr()

Beschreibung:

int dns_check_record ( string host [, string type])

Überprüft die DNS Datensätze passend zu dem eingegeben Internet Host Namen oder der IP-Adresse.

Zurück | Zum Anfang | Nach vorne
define_syslog_variables | Nach oben | dns_get_mx


dns_get_mx

(PHP 5)

dns_get_mx -- Synonym für getmxrr()

Beschreibung:

int getmxrr ( string hostname, array mxhosts [, array &weight])

Ermittelt die MX Datensätze passend zu dem eingegeben Internet Host Namen.

Zurück | Zum Anfang | Nach vorne
dns_check_record | Nach oben | dns_get_record


dns_get_record

(PHP 5)

dns_get_record -- Fetch DNS Resource Records associated with a hostname

Description

array dns_get_record ( string hostname [, int type [, array &authns, array &addtl]])

Anmerkung: This function is not implemented on Windows platforms. Try the PEAR class Net_DNS.

This function returns an array of associative arrays. Each associative array contains at minimum the following keys:

Tabelle 1. Basic DNS attributes

Attribute | Meaning
host | The record in the DNS namespace to which the rest of the associated data refers.
class | dns_get_record() only returns Internet class records and as such this parameter will always return IN.
type | String containing the record type. Additional attributes will also be contained in the resulting array dependant on the value of type. See table below.
ttl | Time To Live remaining for this record. This will not equal the record's original ttl, but will rather equal the original ttl minus whatever length of time has passed since the authoritative name server was queried.

hostname should be a valid DNS hostname such as "www.example.com". Reverse lookups can be generated using in-addr.arpa notation, but gethostbyaddr() is more suitable for the majority of reverse lookups.

By default, dns_get_record() will search for any resource records associated with hostname. To limit the query, specify the optional type parameter. type may be any one of the following: DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_ALL or DNS_ANY. The default is DNS_ANY.

Anmerkung: Because of eccentricities in the performance of libresolv between platforms, DNS_ANY will not always return every record, the slower DNS_ALL will collect all records more reliably.

The optional third and fourth arguments to this function, authns and addtl are passed by reference and, if given, will be populated with Resource Records for the Authoritative Name Servers, and any Additional Records respectively. See the example below.

Tabelle 2. Other keys in associative arrays dependant on 'type'

Type | Extra Columns
A | ip: An IPv4 addresses in dotted decimal notation.
MX | pri: Priority of mail exchanger. Lower numbers indicate greater priority. target: FQDN of the mail exchanger. See also dns_get_mx().
CNAME | target: FQDN of location in DNS namespace to which the record is aliased.
NS | target: FQDN of the name server which is authoritative for this hostname.
PTR | target: Location within the DNS namespace to which this record points.
TXT | txt: Arbitrary string data associated with this record.
HINFO | cpu: IANA number designating the CPU of the machine referenced by this record. os: IANA number designating the Operating System on the machine referenced by this record. See IANA's Operating System Names for the meaning of these values.
SOA | mname: FQDN of the machine from which the resource records originated. rname: Email address of the administrative contain for this domain. serial: Serial # of this revision of the requested domain. refresh: Refresh interval (seconds) secondary name servers should use when updating remote copies of this domain. retry: Length of time (seconds) to wait after a failed refresh before making a second attempt. expire: Maximum length of time (seconds) a secondary DNS server should retain remote copies of the zone data without a successful refresh before discarding. minimum-ttl: Minimum length of time (seconds) a client can continue to use a DNS resolution before it should request a new resolution from the server. Can be overridden by individual resource records.
AAAA | ipv6: IPv6 address
SRV | pri: (Priority) lowest priorities should be used first. weight: Ranking to weight which of commonly prioritized targets should be chosen at random. target and port: hostname and port where the requested service can be found. For additional information see: RFC 2782
NAPTR | order and pref: Equivalent to pri and weight above. flags, services, regex, and replacement: Parameters as defined by RFC 2915.

Anmerkung: Per DNS standards, email addresses are given in user.host format (for example: hostmaster.example.com as opposed to hostmaster@example.com), be sure to check this value and modify if necessary before using it with a functions such as mail().

Beispiel 1. Using dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

Produces output similar to the following:

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)

Since it's very common to want the IP address of a mail server once the MX record has been resolved, dns_get_record() also returns an array in addtl which contains associate records. authns is returned as well containing a list of authoritative name servers.

Beispiel 2. Using dns_get_record() and DNS_ANY

<?php
/* Request "ANY" record for php.net,
   and create $authns and $addtl arrays
   containing list of name servers and
   any additional records which go with
   them */
$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Result = ";
print_r($result);
echo "Auth NS = ";
print_r($authns);
echo "Additional = ";
print_r($addtl);
?>

Produces output similar to the following:

Result = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
Auth NS = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [2] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Additional = Array
(
    [0] => Array
        (
            [host] => pair2.php.net
            [type] => A
            [ip] => 216.92.131.5
            [class] => IN
            [ttl] => 6766
        )

    [1] => Array
        (
            [host] => remote1.easydns.com
            [type] => A
            [ip] => 64.39.29.212
            [class] => IN
            [ttl] => 100384
        )

    [2] => Array
        (
            [host] => remote2.easydns.com
            [type] => A
            [ip] => 212.100.224.80
            [class] => IN
            [ttl] => 81241
        )

    [3] => Array
        (
            [host] => ns1.easydns.com
            [type] => A
            [ip] => 216.220.40.243
            [class] => IN
            [ttl] => 81241
        )

    [4] => Array
        (
            [host] => ns2.easydns.com
            [type] => A
            [ip] => 216.220.40.244
            [class] => IN
            [ttl] => 81241
        )

)

See also dns_get_mx(), and dns_check_record()

Zurück | Zum Anfang | Nach vorne
dns_get_mx | Nach oben | fsockopen


fsockopen

(PHP 3, PHP 4 , PHP 5)

fsockopen -- Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her

Beschreibung:

int fsockopen ( string target, int port [, int errno [, string errstr [, double timeout]]])

Öffnet eine Socket-Verbindung zum Internet (AF_INET, unter Verwendung von TCP oder UDP) oder unter Unix (AF_UNIX). Für eine Internet-Verbindung wird eine TCP-Socket-Verbindung zu hostname über den Port port hergestellt. Für eine UDP-Verbindung müssen Sie das Protokoll udp://hostname explizit angeben. Bei einer UNIX-Verbindung wird hostname als Socket-Pfad interpretiert, port muss in diesem Fall 0 sein. Der optionale Parameter timeout kann benutzt werden, um eine Fehlerwartezeit (Timeout-Wert) für den Verbindungsaufbau (in Sekunden) zu setzen.

Die Funktion fsockopen() gibt einen Zeiger auf eine Datei zurück, der in Verbindung mit anderen Datei-Funktionen (wie z.B. fgets(), fgetss(), fputs(), fclose(), feof()) gebraucht werden kann.

Wenn der Aufruf der Funktion scheitert, gibt er FALSE / falsch zurück und wenn die optionalen errno und errstr Argumente vorhanden sind, enthalten sie den aktuellen System-Fehler, der beim Aufruf der System-Funktion connect() (Verbindungsaufbau) erscheint bzw. passiert ist. Wenn die erhaltene errno 0 ist und die Funktion FALSE/falsch zurück gibt, ist dies ein Hinweis, dass der Fehler vor dem >connect()-Aufruf geschah. Das ist ein Problem, dass häufig mit der Initialisierung des Sockets zusammen hängt. Beachten Sie bitte, dass das errno und errstr-Argument als Referenz zu übergeben sind.

Abhängig von der vorhandenen Umgebung kann die Verbindung zu einer UNIX-Domäne oder der optionale Verbindungsaufbau-Zeitfehler nicht zur Verfügung stehen.

Voreingestellt ist der Verbindungsaufbau im Block-Modus. Sie können dies auf Nicht-Block-Modus ändern, indem Sie socket_set_blocking() benutzen.

Beispiel 1. fsockopen()-Beispiel:

<?php
$fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fputs ($fp, "GET / HTTP/1.0\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp,128);
    }
    fclose($fp);
}
?>
Das folgende Beispiel zeigt, wie das Datum und die Zeit des UDP-Service "daytime" (Port 13) von ihrer eigenen Maschine empfangen werden kann:

Beispiel 2. Gebrauch einer UDP-Verbindung:

<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno; $errstr);
if (!$fp) {
    echo "Fehler: $errno - $errstr<br>\n";
} else {
    fwrite($fp,"\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>
Siehe auch: pfsockopen(), socket_set_blocking(), socket_set_timeout(), fgets(), fgetss(), fputs(), fclose() und feof().

Zurück | Zum Anfang | Nach vorne
dns_get_record | Nach oben | gethostbyaddr


gethostbyaddr

(PHP 3, PHP 4 , PHP 5)

gethostbyaddr -- Ermittelt den Internet-Host-Namen (z.B. www.example.com) passend zur angegebenen IP-Adresse (z.B. 192.0.34.72)

Beschreibung:

string gethostbyaddr ( string ip_address)

Gibt den Internet-Host-Namen passend zu ip_address zurück. Bei einem Fehler wird die ip_address zurück gegeben.

Siehe auch: gethostbyname().

Zurück | Zum Anfang | Nach vorne
fsockopen | Nach oben | gethostbyname


gethostbyname

(PHP 3, PHP 4 , PHP 5)

gethostbyname -- Ermittelt die IP-Adresse (z.B. 192.0.34.72) passend zum angegebenen Internet-Host-Namen (z.B. www.example.com)

Beschreibung:

string gethostbyname ( string hostname)

Gibt die IP-Adresse passend zu hostname zurück.

Siehe auch: gethostbyaddr().

Zurück | Zum Anfang | Nach vorne
gethostbyaddr | Nach oben | gethostbynamel


gethostbynamel

(PHP 3, PHP 4 , PHP 5)

gethostbynamel -- Ermittelt eine Liste von IP-Adressen passend zum angegebenen Internet-Host-Namen

Beschreibung:

array gethostbynamel ( string hostname)

Gibt eine Liste von IP-Adressen zurück, zu denen der angegebene Internet-Host hostname aufgelöst wurde.

Siehe auch gethostbyname(),
gethostbyaddr(),
checkdnsrr(), getmxrr(),
und die named(8) Bedienungs-Anleitung.

Zurück | Zum Anfang | Nach vorne
gethostbyname | Nach oben | getmxrr


getmxrr

(PHP 3, PHP 4 , PHP 5)

getmxrr -- Ermittelt die (DNS) MX-Datensätze passend zu einem angegebenen Internet-Host-Namen

Beschreibung:

int getmxrr ( string hostname, array mxhosts [, array weight])

Sucht im DNS nach MX-Datensätzen die zu hostname passen. Gibt TRUE/wahr zurück, wenn irgendwelche Daten gefunden wurden, ansonsten - oder wenn ein Fehler auftrat - wird FALSE / falsch zurück gegeben.

Eine Liste der gefundenen MX-Einträge wird im Array mxhosts zurück gegeben. Wenn das optionale weight-Array vorhanden ist, wird es mit den gefundenen Prioritäts-Informationen gefüllt.

See also checkdnsrr(),
gethostbyname(),
gethostbynamel(),
gethostbyaddr(), und die
named(8) Bedienungs-Anleitung.

Zurück | Zum Anfang | Nach vorne
gethostbynamel | Nach oben | getprotobyname


getprotobyname

(PHP 4 , PHP 5)

getprotobyname -- Ermittelt die Protokoll-Nummer anhand des Protokoll-Namens

Beschreibung:

int getprotobyname ( string name)

Die Funktion getprotobyname() gibt die Protokoll-Nummer passend zu dem Protokoll name (z.B. TCP, IP, UDP, RAW) anhand der Datei /etc/protocols zurück.

Siehe auch getprotobynumber().

Zurück | Zum Anfang | Nach vorne
getmxrr | Nach oben | getprotobynumber


getprotobynumber

(PHP 4 , PHP 5)

getprotobynumber -- Ermittelt den Protokoll-Namen anhand der Protokoll-Nummer

Beschreibung:

string getprotobynumber ( int number)

Die Funktion getprotobynumber() gibt den Protokoll-Namen passend zur angegebenen Protokoll-number anhand der Datei /etc/protocols zurück.

Siehe auch: getprotobyname().

Zurück | Zum Anfang | Nach vorne
getprotobyname | Nach oben | getservbyname


getservbyname

(PHP 4 , PHP 5)

getservbyname -- Ermittelt einen Port-Wert passend zu einem Internet-Dienst und Protokoll

Beschreibung:

int getservbyname ( string service, string protocol)

Die Funktion getservbyname() gibt den Internet-Port zurück, der zu service passt. Dies geschieht anhand des angegebenen Wertes für protocol mittels der Datei /etc/services. Der Inhalt von protocol ist entweder TCP oder UDP.

Siehe auch: getservbyport().

Zurück | Zum Anfang | Nach vorne
getprotobynumber | Nach oben | getservbyport


getservbyport

(PHP 4 , PHP 5)

getservbyport -- Ermittelt einen Internet-Dienst passend zu einem Port und Protokoll

Beschreibung:

string getservbyport ( int port, string protocol)

Die Funktion getservbyport() gibt den Internet-Dienst zurück, der zu port für das angegebene protocol passt (anhand der Datei /etc/services). Der Inhalt von protocol ist entweder TCP oder UDP.

Siehe auch: getservbyname().

Zurück | Zum Anfang | Nach vorne
getservbyname | Nach oben | ip2long


ip2long

(PHP 4 , PHP 5)

ip2long -- Verwandelt eine gemäß IP-V4-Protokoll angegebene Internet-Adresse vom Punkt-Format in die ausgeschriebene Adress-Angabe

Beschreibung:

int ip2long ( string ip_address)

Die Funktion ip2long() erzeugt aus einer im Punkt-Format angegebenen IP-V4-Adresse eine ausgeschriebene Adress-Angabe.

Beispiel 1. ip2long()-Beispiel:

<?php
$ip = gethostbyname("www.example.com");
$out = "Die folgenden URLs sind gleich:<br>\n";
$out .= "http://www.example.com/, http://".$ip."/, and http://".ip2long($ip)."/<br>\n";
echo $out;
?>

Siehe auch: long2ip().

Zurück | Zum Anfang | Nach vorne
getservbyport | Nach oben | long2ip


long2ip

(PHP 4 , PHP 5)

long2ip -- Konvertiert eine IP-V4-Internet-Netzwerk-Adresse in einen String, der das Punkt-Format enthält ("Dotted-Format")

Beschreibung:

string long2ip ( int proper_address)

Die Funktion long2ip() erzeugt eine Internet Adresse im Punkt-Format (also: www.xxx.yyy.zzz) anhand einer richtigen - ausgeschriebenen - Adress-Angabe.

Siehe auch: ip2long().

Zurück | Zum Anfang | Nach vorne
ip2long | Nach oben | openlog


openlog

(PHP 3, PHP 4 , PHP 5)

openlog -- Stellt eine Verbindung zu einem Log-Dienst des Systems her

Beschreibung:

int openlog ( string ident, int option, int facility)

Die Funktion openlog() kontaktiert die System-Log-Dienste eines Programms. Die Zeichenkette ident wird jeder Meldung angefügt. Werte für die Parameter option und facility werden unten erläutert. Das Argument option wird verwendet, um festzulegen, welche Log-Optionen bei der Erzeugung von Log-Nachrichten verwendet werden sollen. Das Argument facility wird verwendet, um die Art des Programmes festzulegen, das die Nachricht loggt. Dies erlaubt ihnen (in ihrer speziellen SysLog-Konfiguartion) die Festlegung der Behandlungsweise von Log-Nachrichten. Der Gebrauch von openlog() ist optional. Er wird - falls erforderlich - automatisch aufgerufen von syslog(). Dann ist der Vorgabewert von ident falsch / FALSE.

Tabelle 1. openlog() Options

Konstante | Beschreibung
LOG_CONS | Tritt ein Fehler auf beim Senden von Daten an den System-Logging-Service, wird direkt an die System-Konsole ausgegeben.
LOG_NDELAY | Öffnet sofort die Verbindung zum Log-Service.
LOG_ODELAY | (Voreinstellung); öffne die Verbindung erst, wenn die erste Meldung geloggt werden soll.
LOG_PERROR | Gib die Log-Meldungen auch an der Standard-Ausgabe für Fehler aus.
LOG_PID | Schließe die PID bei jeder Meldung ein.
Sie können eine oder mehrere dieser Optionen verwenden. Benutzen Sie mehrere, müssen diese per OR getrennt werden. Um die Verbindung sofort herzu stellen, auch auf die Konsole zu schreiben und die PID in jede Meldung auf zu nehmen, müssen Sie folgendes angeben: LOG_CONS | LOG_NDELAY | LOG_PID.

Tabelle 2. openlog()-Möglichkeiten

Konstante | Beschreibung
LOG_AUTH | Security- / Authorization-Meldungen (benutzt statt dessen LOG_AUTHPRIV in Systemen, wo diese Konstante definiert ist).
LOG_AUTHPRIV | Security- / Authorization-Meldungen (private).
LOG_CRON | Zeitabhängig gestartete Dienste (Dämonen wie cron and at).
LOG_DAEMON | Andere System-Dienste (Dämonen).
LOG_KERN | Kernel-Meldungen.
LOG_LOCAL0 ... LOG_LOCAL7 | Reserviert für lokale Benutzung.
LOG_LPR | Zeilen-Drucker Subsystem.
LOG_MAIL | Mailing-Subsystem.
LOG_NEWS | USENET-News-Subsystem.
LOG_SYSLOG | Meldungen die intern von syslogd erzeugt wurden.
LOG_USER | Generische User-Level-Meldungen.
LOG_UUCP | UUCP-Subsystem

Siehe auch define_syslog_variables(), syslog() und closelog().

Zurück | Zum Anfang | Nach vorne
long2ip | Nach oben | pfsockopen


pfsockopen

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pfsockopen -- Stellt eine dauernde/permanente Internet oder Unix-Domain-Socket Verbindung her

Beschreibung:

int pfsockopen ( string hostname, int port [, int errno [, string errstr [, int timeout]]])

Diese Funktion beinhaltet das gleiche wie fsockopen() mit dem Unterschied, dass die Verbindung nicht beendet wird, sobald das Script beendet wird. Sie ist die permanente-Version von fsockopen().

Zurück | Zum Anfang | Nach vorne
openlog | Nach oben | socket_get_status


socket_get_status

(PHP 4 , PHP 5)

socket_get_status -- Gibt Informationen über eine vorhandene Socket-Ressource zurück

Beschreibung:

array socket_get_status ( resource socket_get_status)

Gibt Informationen über eine vorhandene Socket-Ressource zurück. Z. Zt. werden vier Einträge in dem resultierenden Array vorgenommen:

  • timed_out (bool) - Der Timeout-Wert des Sockets für das Warten auf Daten

  • blocked (bool) - Der Socket wurde blockiert

  • eof (bool) - Das EOF (End Of File) ist erreicht

  • unread_bytes (int) - Anzahl der Bytes, die noch im Socket-Puffer sind

Siehe auch:
accept_connect(), bind(),
connect(), listen() und
strerror().

Zurück | Zum Anfang | Nach vorne
pfsockopen | Nach oben | socket_set_blocking


socket_set_blocking

(PHP 4 , PHP 5)

socket_set_blocking -- Schaltet den Block-Modus eines Sockets an oder aus

Beschreibung:

int socket_set_blocking ( int socket descriptor, int mode)

Wenn mode FALSE / falsch ist, wird die angegebene Socket- Bezeichnung auf Nicht-Block-Modus gesetzt, anderenfalls auf Block-Modus. Dies beeinflusst Aufrufe von fgets(), die über diesen Sockets lesen. Im Nicht-Block-Modus wird ein fgets()-Aufruf sofort zum Script zurückkehren, während er im Block-Modus auf eingehende Daten (auf diesem Socket) warten wird.

Hinweis:: Diese Funktion hiess früher set_socket_blocking(), dieser Name sollte jedoch nicht länger verwendet werden.

Zurück | Zum Anfang | Nach vorne
socket_get_status | Nach oben | socket_set_timeout


socket_set_timeout

(PHP 4 , PHP 5)

socket_set_timeout -- Setzt den Timeout-Wert eines Socket

Beschreibung:

bool socket_set_timeout ( int socket descriptor, int seconds, int microseconds)

Setzt den Timeout-Wert von socket descriptor, ausgedrückt durch die Summe von seconds und microseconds.

Beispiel 1. socket_set_timeout()-Beispiel:

<?php
$fp = fsockopen("www.example.com", 80);
if(!$fp) {
    echo "Keine Verbindung möglich\n";
} else {
    fputs($fp,"GET / HTTP/1.0\n\n");
    $start = time();
    socket_set_timeout($fp, 2);
    $res = fread($fp, 2000);
    var_dump(socket_get_status($fp));
    fclose($fp);
    print $res;
}
?>

Hinweis:: Diese Funktion hieß früher set_socket_timeout(), dieser Name sollte jedoch nicht länger verwendet werden.

Siehe auch: fsockopen() und fopen().

Zurück | Zum Anfang | Nach vorne
socket_set_blocking | Nach oben | syslog


syslog

(PHP 3, PHP 4 , PHP 5)

syslog -- Erzeugt eine Meldung im System-Logging

Beschreibung:

int syslog ( int priority, string message)

Die Funktion syslog() erzeugt eine Status-Meldung, die an die System-Log-Funktion weitergereicht wird. Der Parameter priority ist eine Kombination der System-Möglichkeiten und dem Level. Werte hierzu werden im nächsten Abschnitt genannt. Es verbleibt die zu sendende Nachricht, in der die beiden Zeichen %m durch den Fehlertext (strerror) ersetzt werden, der dem Wert errno entspricht.

Tabelle 1. syslog()-Prioritäten (in absteigender Reihenfolge)

Konstante | Beschreibung:
LOG_EMERG | System ist unbrauchbar.
LOG_ALERT | Aktion ist sofort erforderlich.
LOG_CRIT | Kritischer Zustand.
LOG_ERR | Fehler aufgetreten.
LOG_WARNING | Warnung aufgetreten.
LOG_NOTICE | Normale, aber wichtige, Meldung.
LOG_INFO | Informative Meldung.
LOG_DEBUG | Debug-Level-Meldung.

Beispiel 1. Die Verwendung von syslog():

<?php
define_syslog_variables();
// öffne SysLog, schließe die Prozess-ID (PID) ein, sende
// die Log-Meldungen an die Standard-Fehler-Ausgabe und benutze
// einen User-definierten Log-Mechanismus.
openlog("myScripLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// etwas Code

if (authorized_client()) {
    // mache etwas
} else {
    // unerlaubter Client!
    // logge den Zugriff
    $access = date("Y/m/d H:i:s");
    syslog(LOG_WARNING,"Unauthorisierter Client: $access $REMOTE_ADDR ($HTTP_USER_AGENT)");
}

closelog();
?>
Weiter Informationen zum Benutzer-definierten Log-Handler finden Sie unter syslog.conf(5) der Unix-Manual-Seiten. Zusätzliche Informationen zu den SysLog-Möglichkeiten finden Sie in den Man-Pages zu syslog(3) (auf UNIX-Systemen).

Unter Windows-NT wird der Syslog-Dienst emuliert, indem der Ereignis-Protokollierdienst genutzt wird.

Siehe auch define_syslog_variables(), openlog() und closelog().

Zurück | Zum Anfang | Nach vorne
socket_set_timeout | Nach oben | Ncurses Terminal Screen Control Functions


Ncurses Terminal Screen Control Functions

PHP Handbuch
Zurück Nach vorne

LXIX. Ncurses Terminal Screen Control Functions

Einführung

ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts meant using PHP from the command line.

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Ncurses is available for the following platforms:

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

Anforderungen

You need the ncurses libraries and headerfiles. Download the latest version from the ftp://ftp.gnu.org/pub/gnu/ncurses/ or from an other GNU-Mirror.

Installation

To get these functions to work, you have to compile the CGI or CLI version of PHP with --with-ncurses[=DIR].

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Ncurses configuration options

Name | Default | Changeable
ncurses.value | "42" | PHP_INI_ALL
ncurses.string | "foobar" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Error codes

On error ncurses functions return NCURSES_ERR.

Colors

Tabelle 2. ncurses color constants

constant | meaning
NCURSES_COLOR_BLACK | no color (black)
NCURSES_COLOR_WHITE | white
NCURSES_COLOR_RED | red - supported when terminal is in color mode
NCURSES_COLOR_GREEN | green - supported when terminal is in color mod
NCURSES_COLOR_YELLOW | yellow - supported when terminal is in color mod
NCURSES_COLOR_BLUE | blue - supported when terminal is in color mod
NCURSES_COLOR_CYAN | cyan - supported when terminal is in color mod
NCURSES_COLOR_MAGENTA | magenta - supported when terminal is in color mod

Keys

Tabelle 3. ncurses key constants

constant | meaning
NCURSES_KEY_F0 - NCURSES_KEY_F64 | function keys F1 - F64
NCURSES_KEY_DOWN | down arrow
NCURSES_KEY_UP | up arrow
NCURSES_KEY_LEFT | left arrow
NCURSES_KEY_RIGHT | right arrow
NCURSES_KEY_HOME | home key (upward+left arrow)
NCURSES_KEY_BACKSPACE | backspace
NCURSES_KEY_DL | delete line
NCURSES_KEY_IL | insert line
NCURSES_KEY_DC | delete character
NCURSES_KEY_IC | insert char or enter insert mode
NCURSES_KEY_EIC | exit insert char mode
NCURSES_KEY_CLEAR | clear screen
NCURSES_KEY_EOS | clear to end of screen
NCURSES_KEY_EOL | clear to end of line
NCURSES_KEY_SF | scroll one line forward
NCURSES_KEY_SR | scroll one line backward
NCURSES_KEY_NPAGE | next page
NCURSES_KEY_PPAGE | previous page
NCURSES_KEY_STAB | set tab
NCURSES_KEY_CTAB | clear tab
NCURSES_KEY_CATAB | clear all tabs
NCURSES_KEY_SRESET | soft (partial) reset
NCURSES_KEY_RESET | reset or hard reset
NCURSES_KEY_PRINT | print
NCURSES_KEY_LL | lower left
NCURSES_KEY_A1 | upper left of keypad
NCURSES_KEY_A3 | upper right of keypad
NCURSES_KEY_B2 | center of keypad
NCURSES_KEY_C1 | lower left of keypad
NCURSES_KEY_C3 | lower right of keypad
NCURSES_KEY_BTAB | back tab
NCURSES_KEY_BEG | beginning
NCURSES_KEY_CANCEL | cancel
NCURSES_KEY_CLOSE | close
NCURSES_KEY_COMMAND | cmd (command)
NCURSES_KEY_COPY | copy
NCURSES_KEY_CREATE | create
NCURSES_KEY_END | end
NCURSES_KEY_EXIT | exit
NCURSES_KEY_FIND | find
NCURSES_KEY_HELP | help
NCURSES_KEY_MARK | mark
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | move
NCURSES_KEY_NEXT | next
NCURSES_KEY_OPEN | open
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | previous
NCURSES_KEY_REDO | redo
NCURSES_KEY_REFERENCE | ref (reference)
NCURSES_KEY_REFRESH | refresh
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | restart
NCURSES_KEY_RESUME | resume
NCURSES_KEY_SAVE | save
NCURSES_KEY_SBEG | shiftet beg (beginning)
NCURSES_KEY_SCANCEL | shifted cancel
NCURSES_KEY_SCOMMAND | shifted command
NCURSES_KEY_SCOPY | shifted copy
NCURSES_KEY_SCREATE | shifted create
NCURSES_KEY_SDC | shifted delete char
NCURSES_KEY_SDL | shifted delete line
NCURSES_KEY_SELECT | select
NCURSES_KEY_SEND | shifted end
NCURSES_KEY_SEOL | shifted end of line
NCURSES_KEY_SEXIT | shifted exit
NCURSES_KEY_SFIND | shifted find
NCURSES_KEY_SHELP | shifted help
NCURSES_KEY_SHOME | shifted home
NCURSES_KEY_SIC | shifted input
NCURSES_KEY_SLEFT | shifted left arrow
NCURSES_KEY_SMESSAGE | shifted message
NCURSES_KEY_SMOVE | shifted move
NCURSES_KEY_SNEXT | shifted next
NCURSES_KEY_SOPTIONS | shifted options
NCURSES_KEY_SPREVIOUS | shifted previous
NCURSES_KEY_SPRINT | shifted print
NCURSES_KEY_SREDO | shifted redo
NCURSES_KEY_SREPLACE | shifted replace
NCURSES_KEY_SRIGHT | shifted right arrow
NCURSES_KEY_SRSUME | shifted resume
NCURSES_KEY_SSAVE | shifted save
NCURSES_KEY_SSUSPEND | shifted suspend
NCURSES_KEY_UNDO | undo
NCURSES_KEY_MOUSE | mouse event has occurred
NCURSES_KEY_MAX | maximum key value

Mouse

Tabelle 4. mouse constants

Constant | meaning
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | button (1-4) released
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | button (1-4) pressed
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | button (1-4) clicked
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | button (1-4) double clicked
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | button (1-4) triple clicked
NCURSES_BUTTON_CTRL | ctrl pressed during click
NCURSES_BUTTON_SHIFT | shift pressed during click
NCURSES_BUTTON_ALT | alt pressed during click
NCURSES_ALL_MOUSE_EVENTS | report all mouse events
NCURSES_REPORT_MOUSE_POSITION | report mouse position
Inhaltsverzeichnis
ncurses_addch -- Add character at current position and advance cursor
ncurses_addchnstr -- Add attributed string with specified length at current position
ncurses_addchstr -- Add attributed string at current position
ncurses_addnstr -- Add string with specified length at current position
ncurses_addstr -- Output text at current position
ncurses_assume_default_colors -- Define default colors for color 0
ncurses_attroff -- Turn off the given attributes
ncurses_attron -- Turn on the given attributes
ncurses_attrset -- Set given attributes
ncurses_baudrate -- Returns baudrate of terminal
ncurses_beep -- Let the terminal beep
ncurses_bkgd -- Set background property for terminal screen
ncurses_bkgdset -- Control screen background
ncurses_border -- Draw a border around the screen using attributed characters
ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack
ncurses_can_change_color -- Check if we can change terminals colors
ncurses_cbreak -- Switch of input buffering
ncurses_clear -- Clear screen
ncurses_clrtobot -- Clear screen from current position to bottom
ncurses_clrtoeol -- Clear screen from current position to end of line
ncurses_color_content -- Gets the RGB value for color
ncurses_color_set -- Set fore- and background color
ncurses_curs_set -- Set cursor state
ncurses_def_prog_mode -- Saves terminals (program) mode
ncurses_def_shell_mode -- Saves terminals (shell) mode
ncurses_define_key -- Define a keycode
ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)
ncurses_delay_output -- Delay output on terminal using padding characters
ncurses_delch -- Delete character at current position, move rest of line left
ncurses_deleteln -- Delete line at current position, move rest of screen up
ncurses_delwin -- Delete a ncurses window
ncurses_doupdate -- Write all prepared refreshes to terminal
ncurses_echo -- Activate keyboard input echo
ncurses_echochar -- Single character output including refresh
ncurses_end -- Stop using ncurses, clean up the screen
ncurses_erase -- Erase terminal screen
ncurses_erasechar -- Returns current erase character
ncurses_filter --
ncurses_flash -- Flash terminal screen (visual bell)
ncurses_flushinp -- Flush keyboard input buffer
ncurses_getch -- Read a character from keyboard
ncurses_getmaxyx -- Returns the size of a window
ncurses_getmouse -- Reads mouse event
ncurses_getyx -- Returns the current cursor position for a window
ncurses_halfdelay -- Put terminal into halfdelay mode
ncurses_has_colors -- Check if terminal has colors
ncurses_has_ic -- Check for insert- and delete-capabilities
ncurses_has_il -- Check for line insert- and delete-capabilities
ncurses_has_key -- Check for presence of a function key on terminal keyboard
ncurses_hide_panel -- Remove panel from the stack, making it invisible
ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long
ncurses_inch -- Get character and attribute at current position
ncurses_init_color -- Set new RGB value for color
ncurses_init_pair -- Allocate a color pair
ncurses_init -- Initialize ncurses
ncurses_insch -- Insert character moving rest of line including character at current position
ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)
ncurses_insertln -- Insert a line, move rest of screen down
ncurses_insstr -- Insert string at current position, moving rest of line right
ncurses_instr -- Reads string from terminal screen
ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed
ncurses_keyok -- Enable or disable a keycode
ncurses_keypad -- Turns keypad on or off
ncurses_killchar -- Returns current line kill character
ncurses_longname -- Returns terminals description
ncurses_meta -- Enables/Disable 8-bit meta key information
ncurses_mouse_trafo -- Transforms coordinates
ncurses_mouseinterval -- Set timeout for mouse button clicks
ncurses_mousemask -- Sets mouse options
ncurses_move_panel -- Moves a panel so that its upper-left corner is at [startx, starty]
ncurses_move -- Move output position
ncurses_mvaddch -- Move current position and add character
ncurses_mvaddchnstr -- Move position and add attributed string with specified length
ncurses_mvaddchstr -- Move position and add attributed string
ncurses_mvaddnstr -- Move position and add string with specified length
ncurses_mvaddstr -- Move position and add string
ncurses_mvcur -- Move cursor immediately
ncurses_mvdelch -- Move position and delete character, shift rest of line left
ncurses_mvgetch -- Move position and get character at new position
ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long
ncurses_mvinch -- Move position and get attributed character at new position
ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long
ncurses_mvwaddstr -- Add string at new position in window
ncurses_napms -- Sleep
ncurses_new_panel -- Create a new panel and associate it with window
ncurses_newpad -- Creates a new pad (window)
ncurses_newwin -- Create a new window
ncurses_nl -- Translate newline and carriage return / line feed
ncurses_nocbreak -- Switch terminal to cooked mode
ncurses_noecho -- Switch off keyboard input echo
ncurses_nonl -- Do not translate newline and carriage return / line feed
ncurses_noqiflush -- Do not flush on signal characters
ncurses_noraw -- Switch terminal out of raw mode
ncurses_pair_content -- Gets the RGB value for color
ncurses_panel_above -- Returns the panel above panel. If panel is null, returns the bottom panel in the stack
ncurses_panel_below -- Returns the panel below panel. If panel is null, returns the top panel in the stack
ncurses_panel_window -- Returns the window associated with panel
ncurses_pnoutrefresh -- Copies a region from a pad into the virtual screen
ncurses_prefresh -- Copies a region from a pad into the virtual screen
ncurses_putp --
ncurses_qiflush -- Flush on signal characters
ncurses_raw -- Switch terminal into raw mode
ncurses_refresh -- Refresh screen
ncurses_replace_panel -- Replaces the window associated with panel
ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode
ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode
ncurses_resetty -- Restores saved terminal state
ncurses_savetty -- Saves terminal state
ncurses_scr_dump -- Dump screen content to file
ncurses_scr_init -- Initialize screen from file dump
ncurses_scr_restore -- Restore screen from file dump
ncurses_scr_set -- Inherit screen from file dump
ncurses_scrl -- Scroll window content up or down without changing current position
ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible
ncurses_slk_attr -- Returns current soft label key attribute
ncurses_slk_attroff --
ncurses_slk_attron --
ncurses_slk_attrset --
ncurses_slk_clear -- Clears soft labels from screen
ncurses_slk_color -- Sets color for soft label keys
ncurses_slk_init -- Initializes soft label key functions
ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen
ncurses_slk_refresh -- Copies soft label keys to screen
ncurses_slk_restore -- Restores soft label keys
ncurses_slk_set -- Sets function key labels
ncurses_slk_touch -- Forces output when ncurses_slk_noutrefresh is performed
ncurses_standend -- Stop using 'standout' attribute
ncurses_standout -- Start using 'standout' attribute
ncurses_start_color -- Start using colors
ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal
ncurses_termname -- Returns terminals (short)-name
ncurses_timeout -- Set timeout for special key sequences
ncurses_top_panel -- Moves a visible panel to the top of the stack
ncurses_typeahead -- Specify different filedescriptor for typeahead checking
ncurses_ungetch -- Put a character back into the input stream
ncurses_ungetmouse -- Pushes mouse event to queue
ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack.
ncurses_use_default_colors -- Assign terminal default colors to color id -1
ncurses_use_env -- Control use of environment information about terminal size
ncurses_use_extended_names -- Control use of extended names in terminfo descriptions
ncurses_vidattr --
ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long
ncurses_waddch -- Adds character at current position in a window and advance cursor
ncurses_waddstr -- Outputs text at current postion in window
ncurses_wattroff -- Turns off attributes for a window
ncurses_wattron -- Turns on attributes for a window
ncurses_wattrset -- Set the attributes for a window
ncurses_wborder -- Draws a border around the window using attributed characters
ncurses_wclear -- Clears window
ncurses_wcolor_set -- Sets windows color pairings
ncurses_werase -- Erase window contents
ncurses_wgetch -- Reads a character from keyboard (window)
ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long
ncurses_wmouse_trafo -- Transforms window/stdscr coordinates
ncurses_wmove -- Moves windows output position
ncurses_wnoutrefresh -- Copies window to virtual screen
ncurses_wrefresh -- Refresh window on terminal screen
ncurses_wstandend -- End standout mode for a window
ncurses_wstandout -- Enter standout mode for a window
ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Zurück | Zum Anfang | Nach vorne
syslog | Nach oben | ncurses_addch


ncurses_addch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_addch -- Add character at current position and advance cursor

Description

int ncurses_addch ( int ch)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
Ncurses Terminal Screen Control Functions | Nach oben | ncurses_addchnstr


ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchnstr -- Add attributed string with specified length at current position

Description

int ncurses_addchnstr ( string s, int n)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_addch | Nach oben | ncurses_addchstr


ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchstr -- Add attributed string at current position

Description

int ncurses_addchstr ( string s)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_addchnstr | Nach oben | ncurses_addnstr


ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addnstr -- Add string with specified length at current position

Description

int ncurses_addnstr ( string s, int n)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_addchstr | Nach oben | ncurses_addstr


ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addstr -- Output text at current position

Description

int ncurses_addstr ( string text)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_addnstr | Nach oben | ncurses_assume_default_colors


ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5)

ncurses_assume_default_colors -- Define default colors for color 0

Description

int ncurses_assume_default_colors ( int fg, int bg)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_addstr | Nach oben | ncurses_attroff


ncurses_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attroff -- Turn off the given attributes

Description

int ncurses_attroff ( int attributes)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_assume_default_colors | Nach oben | ncurses_attron


ncurses_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attron -- Turn on the given attributes

Description

int ncurses_attron ( int attributes)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_attroff | Nach oben | ncurses_attrset


ncurses_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attrset -- Set given attributes

Description

int ncurses_attrset ( int attributes)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_attron | Nach oben | ncurses_baudrate


ncurses_baudrate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_baudrate -- Returns baudrate of terminal

Description

int ncurses_baudrate ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_attrset | Nach oben | ncurses_beep


ncurses_beep

(PHP 4 >= 4.1.0, PHP 5)

ncurses_beep -- Let the terminal beep

Description

int ncurses_beep ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_beep() sends an audible alert (bell) and if its not possible flashes the screen. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also ncurses_flash()

Zurück | Zum Anfang | Nach vorne
ncurses_baudrate | Nach oben | ncurses_bkgd


ncurses_bkgd

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgd -- Set background property for terminal screen

Description

int ncurses_bkgd ( int attrchar)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_beep | Nach oben | ncurses_bkgdset


ncurses_bkgdset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgdset -- Control screen background

Description

void ncurses_bkgdset ( int attrchar)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_bkgd | Nach oben | ncurses_border


ncurses_border

(PHP 4 >= 4.2.0, PHP 5)

ncurses_border -- Draw a border around the screen using attributed characters

Description

int ncurses_border ( int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_border() draws the specified lines and corners around the main window. Each parameter expects 0 to draw a line and 1 to skip it. The corners are top left, top right, bottom left and bottom right.

Use ncurses_wborder() for borders around subwindows!

See also ncurses_wborder().

Zurück | Zum Anfang | Nach vorne
ncurses_bkgdset | Nach oben | ncurses_bottom_panel


ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack

Description

int ncurses_bottom_panel ( resource panel)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_border | Nach oben | ncurses_can_change_color


ncurses_can_change_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_can_change_color -- Check if we can change terminals colors

Description

bool ncurses_can_change_color ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

The function ncurses_can_change_color() returns TRUE or FALSE, depending on whether the terminal has color capabilities and whether the programmer can change the colors.

Zurück | Zum Anfang | Nach vorne
ncurses_bottom_panel | Nach oben | ncurses_cbreak


ncurses_cbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_cbreak -- Switch of input buffering

Description

bool ncurses_cbreak ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_cbreak() disables line buffering and character processing (interrupt and flow control characters are unaffected), making characters typed by the user immediately available to the program.

ncurses_cbreak() returns TRUE or NCURSES_ERR if any error occurred.

See also: ncurses_nocbreak()

Zurück | Zum Anfang | Nach vorne
ncurses_can_change_color | Nach oben | ncurses_clear


ncurses_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clear -- Clear screen

Description

bool ncurses_clear ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_clear() clears the screen completely without setting blanks. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Note: ncurses_clear() clears the screen without setting blanks, which have the current background rendition. To clear screen with blanks, use ncurses_erase().

See also ncurses_erase().

Zurück | Zum Anfang | Nach vorne
ncurses_cbreak | Nach oben | ncurses_clrtobot


ncurses_clrtobot

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtobot -- Clear screen from current position to bottom

Description

bool ncurses_clrtobot ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_clrtobot() erases all lines from cursor to end of screen and creates blanks. Blanks created by ncurses_clrtobot() have the current background rendition. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also ncurses_clear(), and ncurses_clrtoeol()

Zurück | Zum Anfang | Nach vorne
ncurses_clear | Nach oben | ncurses_clrtoeol


ncurses_clrtoeol

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtoeol -- Clear screen from current position to end of line

Description

bool ncurses_clrtoeol ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_clrtoeol() erases the current line from cursor position to the end. Blanks created by ncurses_clrtoeol() have the current background rendition. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also ncurses_clear(), and ncurses_clrtobot()

Zurück | Zum Anfang | Nach vorne
ncurses_clrtobot | Nach oben | ncurses_color_content


ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_color_content -- Gets the RGB value for color

Description

int ncurses_color_content ( int color, int &r, int &g, int &b)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_clrtoeol | Nach oben | ncurses_color_set


ncurses_color_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_color_set -- Set fore- and background color

Description

int ncurses_color_set ( int pair)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_color_content | Nach oben | ncurses_curs_set


ncurses_curs_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_curs_set -- Set cursor state

Description

int ncurses_curs_set ( int visibility)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_color_set | Nach oben | ncurses_def_prog_mode


ncurses_def_prog_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_prog_mode -- Saves terminals (program) mode

Description

bool ncurses_def_prog_mode ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_def_prog_mode() saves the current terminal modes for program (in curses) for use by ncurses_reset_prog_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_prog_mode()

Zurück | Zum Anfang | Nach vorne
ncurses_curs_set | Nach oben | ncurses_def_shell_mode


ncurses_def_shell_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_shell_mode -- Saves terminals (shell) mode

Description

bool ncurses_def_shell_mode ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_def_shell_mode() saves the current terminal modes for shell (not in curses) for use by ncurses_reset_shell_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_shell_mode()

Zurück | Zum Anfang | Nach vorne
ncurses_def_prog_mode | Nach oben | ncurses_define_key


ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5)

ncurses_define_key -- Define a keycode

Description

int ncurses_define_key ( string definition, int keycode)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_def_shell_mode | Nach oben | ncurses_del_panel


ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)

Description

int ncurses_del_panel ( resource panel)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_define_key | Nach oben | ncurses_delay_output


ncurses_delay_output

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delay_output -- Delay output on terminal using padding characters

Description

int ncurses_delay_output ( int milliseconds)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_del_panel | Nach oben | ncurses_delch


ncurses_delch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delch -- Delete character at current position, move rest of line left

Description

bool ncurses_delch ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_delch() deletes the character under the cursor. All characters to the right of the cursor on the same line are moved to the left one position and the last character on the line is filled with a blank. The cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_deleteln()

Zurück | Zum Anfang | Nach vorne
ncurses_delay_output | Nach oben | ncurses_deleteln


ncurses_deleteln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_deleteln -- Delete line at current position, move rest of screen up

Description

bool ncurses_deleteln ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_deleteln() deletes the current line under cursorposition. All lines below the current line are moved up one line. The bottom line of window is cleared. Cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_delch()

Zurück | Zum Anfang | Nach vorne
ncurses_delch | Nach oben | ncurses_delwin


ncurses_delwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delwin -- Delete a ncurses window

Description

int ncurses_delwin ( resource window)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_deleteln | Nach oben | ncurses_doupdate


ncurses_doupdate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_doupdate -- Write all prepared refreshes to terminal

Description

bool ncurses_doupdate ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_doupdate()() compares the virtual screen to the physical screen and updates the physical screen. This way is more effective than using multiple refresh calls. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ncurses_delwin | Nach oben | ncurses_echo


ncurses_echo

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echo -- Activate keyboard input echo

Description

bool ncurses_echo ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_echo() enables echo mode. All characters typed by user are echoed by ncurses_getch(). Returns FALSE on success, TRUE if any error occurred.

To disable echo mode use ncurses_noecho().

Zurück | Zum Anfang | Nach vorne
ncurses_doupdate | Nach oben | ncurses_echochar


ncurses_echochar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echochar -- Single character output including refresh

Description

int ncurses_echochar ( int character)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_echo | Nach oben | ncurses_end


ncurses_end

(PHP 4 >= 4.1.0, PHP 5)

ncurses_end -- Stop using ncurses, clean up the screen

Description

int ncurses_end ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_echochar | Nach oben | ncurses_erase


ncurses_erase

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erase -- Erase terminal screen

Description

bool ncurses_erase ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_erase() fills the terminal screen with blanks. Created blanks have the current background rendition, set by ncurses_bkgd(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also ncurses_bkgd(), and ncurses_clear()

Zurück | Zum Anfang | Nach vorne
ncurses_end | Nach oben | ncurses_erasechar


ncurses_erasechar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erasechar -- Returns current erase character

Description

string ncurses_erasechar ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_erasechar() returns the current erase char character.

See also: ncurses_killchar()

Zurück | Zum Anfang | Nach vorne
ncurses_erase | Nach oben | ncurses_filter


ncurses_filter

(PHP 4 >= 4.1.0, PHP 5)

ncurses_filter --

Description

int ncurses_filter ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_erasechar | Nach oben | ncurses_flash


ncurses_flash

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flash -- Flash terminal screen (visual bell)

Description

bool ncurses_flash ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_flash() flashes the screen, and if its not possible, sends an audible alert (bell). Returns FALSE on success, otherwise TRUE.

See also: ncurses_beep()

Zurück | Zum Anfang | Nach vorne
ncurses_filter | Nach oben | ncurses_flushinp


ncurses_flushinp

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flushinp -- Flush keyboard input buffer

Description

bool ncurses_flushinp ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

The ncurses_flushinp() throws away any typeahead that has been typed and has not yet been read by your program. Returns FALSE on success, otherwise TRUE.

Zurück | Zum Anfang | Nach vorne
ncurses_flash | Nach oben | ncurses_getch


ncurses_getch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_getch -- Read a character from keyboard

Description

int ncurses_getch ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_flushinp | Nach oben | ncurses_getmaxyx


ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getmaxyx -- Returns the size of a window

Description

void ncurses_getmaxyx ( resource window, int &y, int &x)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_getmaxyx() puts the horizontal and vertical size of the window window into the given variables &y and &x. Variables must be passed as reference, so they are updated when the user changes terminal size.

Zurück | Zum Anfang | Nach vorne
ncurses_getch | Nach oben | ncurses_getmouse


ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_getmouse -- Reads mouse event

Description

bool ncurses_getmouse ( array mevent)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_getmouse() reads mouse event out of queue. Function ncurses_getmouse() will return ;FALSE if a mouse event is actually visible in the given window, otherwise it will return TRUE. Event options will be delivered in parameter mevent, which has to be an array, passed by reference (see example below). On success an associative array with following keys will be delivered:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

Beispiel 1. ncurses_getmouse() example

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse(&$mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Save mouse position
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

See also ncurses_ungetmouse()

Zurück | Zum Anfang | Nach vorne
ncurses_getmaxyx | Nach oben | ncurses_getyx


ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getyx -- Returns the current cursor position for a window

Description

void ncurses_getyx ( resource window, int &y, int &x)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_getmouse | Nach oben | ncurses_halfdelay


ncurses_halfdelay

(PHP 4 >= 4.1.0, PHP 5)

ncurses_halfdelay -- Put terminal into halfdelay mode

Description

int ncurses_halfdelay ( int tenth)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_getyx | Nach oben | ncurses_has_colors


ncurses_has_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_colors -- Check if terminal has colors

Description

bool ncurses_has_colors ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_has_colors() returns TRUE or FALSE depending on whether the terminal has color capacities.

See also: ncurses_can_change_color()

Zurück | Zum Anfang | Nach vorne
ncurses_halfdelay | Nach oben | ncurses_has_ic


ncurses_has_ic

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_ic -- Check for insert- and delete-capabilities

Description

bool ncurses_has_ic ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_has_ic() checks terminals insert- and delete capabilities. It returns TRUE when terminal has insert/delete-capabilities, otherwise FALSE.

See also: ncurses_has_il()

Zurück | Zum Anfang | Nach vorne
ncurses_has_colors | Nach oben | ncurses_has_il


ncurses_has_il

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_il -- Check for line insert- and delete-capabilities

Description

bool ncurses_has_il ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_has_il() checks terminals insert- and delete-line-capabilities. It returns TRUE when terminal has insert/delete-line capabilities, otherwise FALSE

See also: ncurses_has_ic()

Zurück | Zum Anfang | Nach vorne
ncurses_has_ic | Nach oben | ncurses_has_key


ncurses_has_key

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_key -- Check for presence of a function key on terminal keyboard

Description

int ncurses_has_key ( int keycode)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_has_il | Nach oben | ncurses_hide_panel


ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_hide_panel -- Remove panel from the stack, making it invisible

Description

int ncurses_hide_panel ( resource panel)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_has_key | Nach oben | ncurses_hline


ncurses_hline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long

Description

int ncurses_hline ( int charattr, int n)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_hide_panel | Nach oben | ncurses_inch


ncurses_inch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_inch -- Get character and attribute at current position

Description

string ncurses_inch ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_inch() returns the character from the current position.

Zurück | Zum Anfang | Nach vorne
ncurses_hline | Nach oben | ncurses_init_color


ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5)

ncurses_init_color -- Set new RGB value for color

Description

int ncurses_init_color ( int color, int r, int g, int b)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_inch | Nach oben | ncurses_init_pair


ncurses_init_pair

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init_pair -- Allocate a color pair

Description

int ncurses_init_pair ( int pair, int fg, int bg)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_init_color | Nach oben | ncurses_init


ncurses_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init -- Initialize ncurses

Description

int ncurses_init ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_init() initializes the ncurses interface and must be used before any other ncurses function.

Zurück | Zum Anfang | Nach vorne
ncurses_init_pair | Nach oben | ncurses_insch


ncurses_insch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insch -- Insert character moving rest of line including character at current position

Description

int ncurses_insch ( int character)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_init | Nach oben | ncurses_insdelln


ncurses_insdelln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)

Description

int ncurses_insdelln ( int count)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_insch | Nach oben | ncurses_insertln


ncurses_insertln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insertln -- Insert a line, move rest of screen down

Description

bool ncurses_insertln ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_insertln() inserts a new line above the current line. The bottom line will be lost.

Zurück | Zum Anfang | Nach vorne
ncurses_insdelln | Nach oben | ncurses_insstr


ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_insstr -- Insert string at current position, moving rest of line right

Description

int ncurses_insstr ( string text)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_insertln | Nach oben | ncurses_instr


ncurses_instr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_instr -- Reads string from terminal screen

Description

int ncurses_instr ( string buffer)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_instr() returns the number of characters read from the current character position until end of line. buffer contains the characters. Attributes are stripped from the characters.

Zurück | Zum Anfang | Nach vorne
ncurses_insstr | Nach oben | ncurses_isendwin


ncurses_isendwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed

Description

bool ncurses_isendwin ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_isendwin() returns TRUE, if
ncurses_endwin() has been called without any
subsequent calls to ncurses_wrefresh(),
otherwise FALSE.

See also ncurses_endwin() and ncurses_wrefresh().

Zurück | Zum Anfang | Nach vorne
ncurses_instr | Nach oben | ncurses_keyok


ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keyok -- Enable or disable a keycode

Description

int ncurses_keyok ( int keycode, bool enable)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_isendwin | Nach oben | ncurses_keypad


ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keypad -- Turns keypad on or off

Description

int ncurses_keypad ( resource window, bool bf)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_keyok | Nach oben | ncurses_killchar


ncurses_killchar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_killchar -- Returns current line kill character

Description

bool ncurses_killchar ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_killchar() returns the current line kill character.

See also: ncurses_erasechar()

Zurück | Zum Anfang | Nach vorne
ncurses_keypad | Nach oben | ncurses_longname


ncurses_longname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_longname -- Returns terminals description

Description

string ncurses_longname ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_longname() returns a verbose description of the terminal. The description is truncated to 128 characters. On Error ncurses_longname() returns NULL.

See also: ncurses_termname()

Zurück | Zum Anfang | Nach vorne
ncurses_killchar | Nach oben | ncurses_meta


ncurses_meta

(PHP 4 >= 4.3.0, PHP 5)

ncurses_meta -- Enables/Disable 8-bit meta key information

Description

long ncurses_meta ( resource window, bool 8bit)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_longname | Nach oben | ncurses_mouse_trafo


ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mouse_trafo -- Transforms coordinates

Description

bool ncurses_mouse_trafo ( int &y, int &x, bool toscreen)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_meta | Nach oben | ncurses_mouseinterval


ncurses_mouseinterval

(PHP 4 >= 4.1.0, PHP 5)

ncurses_mouseinterval -- Set timeout for mouse button clicks

Description

int ncurses_mouseinterval ( int milliseconds)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mouse_trafo | Nach oben | ncurses_mousemask


ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mousemask -- Sets mouse options

Description

int ncurses_mousemask ( int newmask, int oldmask)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Function ncurses_mousemask() will set mouse events to be reported. By default no mouse events will be reported. The function ncurses_mousemask() will return a mask to indicated which of the in parameter newmask specified mouse events can be reported. On complete failure, it returns 0. In parameter oldmask, which is passed by reference ncurses_mousemask() returns the previous value of mouse event mask. Mouse events are represented by NCURSES_KEY_MOUSE in the ncurses_wgetch() input stream. To read the event data and pop the event of of queue, call ncurses_getmouse().

As a side effect, setting a zero mousemask in newmask turns off the mouse pointer. Setting a non zero value turns mouse pointer on.

mouse mask options can be set with the following predefined constants:

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

Beispiel 1. ncurses_mousemask() example

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, &$oldmask);
if ($mask & $newmask){
  printf ("All specified mouse options will be supported\n");
}
?>

See also ncurses_getmouse(),
ncurses_ungetmouse() and
ncurese_getch().

Zurück | Zum Anfang | Nach vorne
ncurses_mouseinterval | Nach oben | ncurses_move_panel


ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_move_panel -- Moves a panel so that its upper-left corner is at [startx, starty]

Description

int ncurses_move_panel ( resource panel, int startx, int starty)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mousemask | Nach oben | ncurses_move


ncurses_move

(PHP 4 >= 4.1.0, PHP 5)

ncurses_move -- Move output position

Description

int ncurses_move ( int y, int x)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_move_panel | Nach oben | ncurses_mvaddch


ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddch -- Move current position and add character

Description

int ncurses_mvaddch ( int y, int x, int c)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_move | Nach oben | ncurses_mvaddchnstr


ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchnstr -- Move position and add attributed string with specified length

Description

int ncurses_mvaddchnstr ( int y, int x, string s, int n)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvaddch | Nach oben | ncurses_mvaddchstr


ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchstr -- Move position and add attributed string

Description

int ncurses_mvaddchstr ( int y, int x, string s)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvaddchnstr | Nach oben | ncurses_mvaddnstr


ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddnstr -- Move position and add string with specified length

Description

int ncurses_mvaddnstr ( int y, int x, string s, int n)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvaddchstr | Nach oben | ncurses_mvaddstr


ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddstr -- Move position and add string

Description

int ncurses_mvaddstr ( int y, int x, string s)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvaddnstr | Nach oben | ncurses_mvcur


ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvcur -- Move cursor immediately

Description

int ncurses_mvcur ( int old_y, int old_x, int new_y, int new_x)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvaddstr | Nach oben | ncurses_mvdelch


ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvdelch -- Move position and delete character, shift rest of line left

Description

int ncurses_mvdelch ( int y, int x)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvcur | Nach oben | ncurses_mvgetch


ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvgetch -- Move position and get character at new position

Description

int ncurses_mvgetch ( int y, int x)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvdelch | Nach oben | ncurses_mvhline


ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long

Description

int ncurses_mvhline ( int y, int x, int attrchar, int n)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvgetch | Nach oben | ncurses_mvinch


ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvinch -- Move position and get attributed character at new position

Description

int ncurses_mvinch ( int y, int x)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvhline | Nach oben | ncurses_mvvline


ncurses_mvvline

(no version information, might be only in CVS)

ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long

Description

int ncurses_mvvline ( int y, int x, int attrchar, int n)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvinch | Nach oben | ncurses_mvwaddstr


ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvwaddstr -- Add string at new position in window

Description

int ncurses_mvwaddstr ( resource window, int y, int x, string text)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvvline | Nach oben | ncurses_napms


ncurses_napms

(PHP 4 >= 4.1.0, PHP 5)

ncurses_napms -- Sleep

Description

int ncurses_napms ( int milliseconds)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_mvwaddstr | Nach oben | ncurses_new_panel


ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_new_panel -- Create a new panel and associate it with window

Description

resource ncurses_new_panel ( resource window)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_napms | Nach oben | ncurses_newpad


ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5)

ncurses_newpad -- Creates a new pad (window)

Description

resource ncurses_newpad ( int rows, int cols)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_new_panel | Nach oben | ncurses_newwin


ncurses_newwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_newwin -- Create a new window

Description

resource ncurses_newwin ( int rows, int cols, int y, int x)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_newwin() creates a new window to draw elements in. Windows can be positioned using x, y, rows and cols. When creating additional windows, remember to use ncurses_getmaxyx() to check for available space, as terminal size is individual and may vary. The return value is a resource ID used to differ between multiple windows.

Zurück | Zum Anfang | Nach vorne
ncurses_newpad | Nach oben | ncurses_nl


ncurses_nl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nl -- Translate newline and carriage return / line feed

Description

bool ncurses_nl ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_newwin | Nach oben | ncurses_nocbreak


ncurses_nocbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nocbreak -- Switch terminal to cooked mode

Description

bool ncurses_nocbreak ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_nocbreak() routine returns terminal to normal (cooked) mode. Initially the terminal may or may not in cbreak mode as the mode is inherited. Therefore a program should call ncurses_cbreak() and ncurses_nocbreak() explicitly. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_cbreak()

Zurück | Zum Anfang | Nach vorne
ncurses_nl | Nach oben | ncurses_noecho


ncurses_noecho

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noecho -- Switch off keyboard input echo

Description

bool ncurses_noecho ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_noecho() prevents echoing of user typed characters. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_echo(), ncurses_getch()

Zurück | Zum Anfang | Nach vorne
ncurses_nocbreak | Nach oben | ncurses_nonl


ncurses_nonl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nonl -- Do not translate newline and carriage return / line feed

Description

bool ncurses_nonl ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_noecho | Nach oben | ncurses_noqiflush


ncurses_noqiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noqiflush -- Do not flush on signal characters

Description

int ncurses_noqiflush ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_nonl | Nach oben | ncurses_noraw


ncurses_noraw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noraw -- Switch terminal out of raw mode

Description

bool ncurses_noraw ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_noraw() switches the terminal out of raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_raw(),
ncurses_cbreak(),
ncurses_nocbreak()

Zurück | Zum Anfang | Nach vorne
ncurses_noqiflush | Nach oben | ncurses_pair_content


ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pair_content -- Gets the RGB value for color

Description

int ncurses_pair_content ( int pair, int &f, int &b)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_noraw | Nach oben | ncurses_panel_above


ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_above -- Returns the panel above panel. If panel is null, returns the bottom panel in the stack

Description

int ncurses_panel_above ( resource panel)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_pair_content | Nach oben | ncurses_panel_below


ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_below -- Returns the panel below panel. If panel is null, returns the top panel in the stack

Description

int ncurses_panel_below ( resource panel)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_panel_above | Nach oben | ncurses_panel_window


ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_window -- Returns the window associated with panel

Description

int ncurses_panel_window ( resource panel)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_panel_below | Nach oben | ncurses_pnoutrefresh


ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pnoutrefresh -- Copies a region from a pad into the virtual screen

Description

int ncurses_pnoutrefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_panel_window | Nach oben | ncurses_prefresh


ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_prefresh -- Copies a region from a pad into the virtual screen

Description

int ncurses_prefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_pnoutrefresh | Nach oben | ncurses_putp


ncurses_putp

(PHP 4 >= 4.2.0, PHP 5)

ncurses_putp --

Description

int ncurses_putp ( string text)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_prefresh | Nach oben | ncurses_qiflush


ncurses_qiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_qiflush -- Flush on signal characters

Description

int ncurses_qiflush ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_putp | Nach oben | ncurses_raw


ncurses_raw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_raw -- Switch terminal into raw mode

Description

bool ncurses_raw ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_raw() places the terminal in raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_noraw(),
ncurses_cbreak(),
ncurses_nocbreak()

Zurück | Zum Anfang | Nach vorne
ncurses_qiflush | Nach oben | ncurses_refresh


ncurses_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_refresh -- Refresh screen

Description

int ncurses_refresh ( int ch)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_raw | Nach oben | ncurses_replace_panel


ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_replace_panel -- Replaces the window associated with panel

Description

int ncurses_replace_panel ( resource panel, resource window)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_refresh | Nach oben | ncurses_reset_prog_mode


ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode

Description

int ncurses_reset_prog_mode ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_replace_panel | Nach oben | ncurses_reset_shell_mode


ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode

Description

int ncurses_reset_shell_mode ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_reset_prog_mode | Nach oben | ncurses_resetty


ncurses_resetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_resetty -- Restores saved terminal state

Description

bool ncurses_resetty ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Function ncurses_resetty() restores the terminal state, which was previously saved by calling ncurses_savetty(). This function always returns FALSE.

See also: ncurses_savetty()

Zurück | Zum Anfang | Nach vorne
ncurses_reset_shell_mode | Nach oben | ncurses_savetty


ncurses_savetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_savetty -- Saves terminal state

Description

bool ncurses_savetty ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Function ncurses_savetty() saves the current terminal state. The saved terminal state can be restored with function ncurses_resetty(). ncurses_savetty() always returns FALSE.

See also: ncurses_resetty()

Zurück | Zum Anfang | Nach vorne
ncurses_resetty | Nach oben | ncurses_scr_dump


ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_dump -- Dump screen content to file

Description

int ncurses_scr_dump ( string filename)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_savetty | Nach oben | ncurses_scr_init


ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_init -- Initialize screen from file dump

Description

int ncurses_scr_init ( string filename)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_scr_dump | Nach oben | ncurses_scr_restore


ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_restore -- Restore screen from file dump

Description

int ncurses_scr_restore ( string filename)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_scr_init | Nach oben | ncurses_scr_set


ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_set -- Inherit screen from file dump

Description

int ncurses_scr_set ( string filename)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_scr_restore | Nach oben | ncurses_scrl


ncurses_scrl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_scrl -- Scroll window content up or down without changing current position

Description

int ncurses_scrl ( int count)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_scr_set | Nach oben | ncurses_show_panel


ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible

Description

int ncurses_show_panel ( resource panel)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_scrl | Nach oben | ncurses_slk_attr


ncurses_slk_attr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attr -- Returns current soft label key attribute

Description

bool ncurses_slk_attr ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_slk_attr() returns the current soft label key attribute. On error returns TRUE, otherwise FALSE.

Zurück | Zum Anfang | Nach vorne
ncurses_show_panel | Nach oben | ncurses_slk_attroff


ncurses_slk_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attroff --

Description

int ncurses_slk_attroff ( int intarg)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_attr | Nach oben | ncurses_slk_attron


ncurses_slk_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attron --

Description

int ncurses_slk_attron ( int intarg)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_attroff | Nach oben | ncurses_slk_attrset


ncurses_slk_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attrset --

Description

int ncurses_slk_attrset ( int intarg)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_attron | Nach oben | ncurses_slk_clear


ncurses_slk_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_clear -- Clears soft labels from screen

Description

bool ncurses_slk_clear ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

The function ncurses_slk_clear() clears soft label keys from screen. Returns TRUE on error, otherwise FALSE.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_attrset | Nach oben | ncurses_slk_color


ncurses_slk_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_color -- Sets color for soft label keys

Description

int ncurses_slk_color ( int intarg)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_clear | Nach oben | ncurses_slk_init


ncurses_slk_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_init -- Initializes soft label key functions

Description

bool ncurses_slk_init ( int format)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Function ncurses_slk_init() must be called before ncurses_initscr() or ncurses_newterm() is called. If ncurses_initscr() eventually uses a line from stdscr to emulate the soft labels, then format determines how the labels are arranged of the screen. Setting format to 0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4 arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an index line will be created.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_color | Nach oben | ncurses_slk_noutrefresh


ncurses_slk_noutrefresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen

Description

bool ncurses_slk_noutrefresh ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_init | Nach oben | ncurses_slk_refresh


ncurses_slk_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_refresh -- Copies soft label keys to screen

Description

bool ncurses_slk_refresh ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_slk_refresh() copies soft label keys from virtual screen to physical screen. Returns TRUE on error, otherwise FALSE.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_noutrefresh | Nach oben | ncurses_slk_restore


ncurses_slk_restore

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_restore -- Restores soft label keys

Description

bool ncurses_slk_restore ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

The function ncurses_slk_restore() restores the soft label keys after ncurses_slk_clear() has been performed.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_refresh | Nach oben | ncurses_slk_set


ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_slk_set -- Sets function key labels

Description

bool ncurses_slk_set ( int labelnr, string label, int format)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_restore | Nach oben | ncurses_slk_touch


ncurses_slk_touch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_touch -- Forces output when ncurses_slk_noutrefresh is performed

Description

bool ncurses_slk_touch ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

The ncurses_slk_touch() function forces all the soft labels to be output the next time a ncurses_slk_noutrefresh() is performed.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_set | Nach oben | ncurses_standend


ncurses_standend

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standend -- Stop using 'standout' attribute

Description

int ncurses_standend ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_slk_touch | Nach oben | ncurses_standout


ncurses_standout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standout -- Start using 'standout' attribute

Description

int ncurses_standout ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_standend | Nach oben | ncurses_start_color


ncurses_start_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_start_color -- Start using colors

Description

int ncurses_start_color ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_standout | Nach oben | ncurses_termattrs


ncurses_termattrs

(PHP 4 >= 4.1.0, PHP 5)

ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal

Description

bool ncurses_termattrs ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_start_color | Nach oben | ncurses_termname


ncurses_termname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_termname -- Returns terminals (short)-name

Description

string ncurses_termname ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_termname() returns terminals shortname. The shortname is truncated to 14 characters. On error ncurses_termname() returns NULL.

See also: ncurses_longname()

Zurück | Zum Anfang | Nach vorne
ncurses_termattrs | Nach oben | ncurses_timeout


ncurses_timeout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_timeout -- Set timeout for special key sequences

Description

void ncurses_timeout ( int millisec)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_termname | Nach oben | ncurses_top_panel


ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_top_panel -- Moves a visible panel to the top of the stack

Description

int ncurses_top_panel ( resource panel)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_timeout | Nach oben | ncurses_typeahead


ncurses_typeahead

(PHP 4 >= 4.1.0, PHP 5)

ncurses_typeahead -- Specify different filedescriptor for typeahead checking

Description

int ncurses_typeahead ( int fd)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_top_panel | Nach oben | ncurses_ungetch


ncurses_ungetch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_ungetch -- Put a character back into the input stream

Description

int ncurses_ungetch ( int keycode)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_typeahead | Nach oben | ncurses_ungetmouse


ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_ungetmouse -- Pushes mouse event to queue

Description

bool ncurses_ungetmouse ( array mevent)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_getmouse() pushes a KEY_MOUSE event onto the unput queue and associates with this event the given state sata and screen-relative character cell coordinates, specified in mevent. Event options will be specified in associative array mevent:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

ncurses_ungetmouse() returns FALSE on success, otherwise TRUE.

See also: ncurses_getmouse()

Zurück | Zum Anfang | Nach vorne
ncurses_ungetch | Nach oben | ncurses_update_panels


ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5)

ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack.

Description

void ncurses_update_panels ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_ungetmouse | Nach oben | ncurses_use_default_colors


ncurses_use_default_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_default_colors -- Assign terminal default colors to color id -1

Description

bool ncurses_use_default_colors ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_update_panels | Nach oben | ncurses_use_env


ncurses_use_env

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_env -- Control use of environment information about terminal size

Description

void ncurses_use_env ( bool flag)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_use_default_colors | Nach oben | ncurses_use_extended_names


ncurses_use_extended_names

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_extended_names -- Control use of extended names in terminfo descriptions

Description

int ncurses_use_extended_names ( bool flag)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_use_env | Nach oben | ncurses_vidattr


ncurses_vidattr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_vidattr --

Description

int ncurses_vidattr ( int intarg)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_use_extended_names | Nach oben | ncurses_vline


ncurses_vline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long

Description

int ncurses_vline ( int charattr, int n)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_vidattr | Nach oben | ncurses_waddch


ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5)

ncurses_waddch -- Adds character at current position in a window and advance cursor

Description

int ncurses_waddch ( resource window, int ch)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_vline | Nach oben | ncurses_waddstr


ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_waddstr -- Outputs text at current postion in window

Description

int ncurses_waddstr ( resource window, string str [, int n])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_waddch | Nach oben | ncurses_wattroff


ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattroff -- Turns off attributes for a window

Description

int ncurses_wattroff ( resource window, int attrs)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_waddstr | Nach oben | ncurses_wattron


ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattron -- Turns on attributes for a window

Description

int ncurses_wattron ( resource window, int attrs)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wattroff | Nach oben | ncurses_wattrset


ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattrset -- Set the attributes for a window

Description

int ncurses_wattrset ( resource window, int attrs)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wattron | Nach oben | ncurses_wborder


ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wborder -- Draws a border around the window using attributed characters

Description

int ncurses_wborder ( resource window, int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_wborder() draws the specified lines and corners around the passed window window. Each parameter expects 0 to draw a line and 1 to skip it. The corners are top left, top right, bottom left and bottom right.

Use ncurses_border() for borders around the main window.

See also ncurses_border().

Zurück | Zum Anfang | Nach vorne
ncurses_wattrset | Nach oben | ncurses_wclear


ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wclear -- Clears window

Description

int ncurses_wclear ( resource window)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wborder | Nach oben | ncurses_wcolor_set


ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wcolor_set -- Sets windows color pairings

Description

int ncurses_wcolor_set ( resource window, int color_pair)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wclear | Nach oben | ncurses_werase


ncurses_werase

(PHP 4 >= 4.3.0, PHP 5)

ncurses_werase -- Erase window contents

Description

long ncurses_werase ( resource window)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wcolor_set | Nach oben | ncurses_wgetch


ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wgetch -- Reads a character from keyboard (window)

Description

int ncurses_wgetch ( resource window)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_werase | Nach oben | ncurses_whline


ncurses_whline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_whline ( resource window, int charattr, int n)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wgetch | Nach oben | ncurses_wmouse_trafo


ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmouse_trafo -- Transforms window/stdscr coordinates

Description

bool ncurses_wmouse_trafo ( resource window, int &y, int &x, bool toscreen)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_whline | Nach oben | ncurses_wmove


ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmove -- Moves windows output position

Description

int ncurses_wmove ( resource window, int y, int x)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wmouse_trafo | Nach oben | ncurses_wnoutrefresh


ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wnoutrefresh -- Copies window to virtual screen

Description

int ncurses_wnoutrefresh ( resource window)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wmove | Nach oben | ncurses_wrefresh


ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wrefresh -- Refresh window on terminal screen

Description

int ncurses_wrefresh ( resource window)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wnoutrefresh | Nach oben | ncurses_wstandend


ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandend -- End standout mode for a window

Description

int ncurses_wstandend ( resource window)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wrefresh | Nach oben | ncurses_wstandout


ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandout -- Enter standout mode for a window

Description

int ncurses_wstandout ( resource window)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wstandend | Nach oben | ncurses_wvline


ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_wvline ( resource window, int charattr, int n)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ncurses_wstandout | Nach oben | Lotus Notes Functions


Lotus Notes Functions

PHP Handbuch
Zurück Nach vorne

LXX. Lotus Notes Functions

Einführung

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Anmerkung: This extension has been removed as of PHP 5 and moved to the PECL repository.

Inhaltsverzeichnis
notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_copy_db -- Create a note using form form_name
notes_create_db -- Create a Lotus Notes database
notes_create_note -- Create a note using form form_name
notes_drop_db -- Drop a Lotus Notes database
notes_find_note -- Returns a note id found in database_name. Specify the name of the note. Leaving type bla
notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_list_msgs -- Returns the notes from a selected database_name
notes_mark_read -- Mark a note_id as read for the User user_name
notes_mark_unread -- Mark a note_id as unread for the User user_name
notes_nav_create -- Create a navigator name, in database_name
notes_search -- Find notes that match keywords in database_name
notes_unread -- Returns the unread note id's for the current User user_name
notes_version -- Get the version Lotus Notes

Zurück | Zum Anfang | Nach vorne
ncurses_wvline | Nach oben | notes_body


notes_body

(PHP 4 >= 4.0.5)

notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

array notes_body ( string server, string mailbox, int msg_number)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
Lotus Notes Functions | Nach oben | notes_copy_db


notes_copy_db

(PHP 4 >= 4.0.5)

notes_copy_db -- Create a note using form form_name

Description

string notes_copy_db ( string from_database_name, string to_database_name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_body | Nach oben | notes_create_db


notes_create_db

(PHP 4 >= 4.0.5)

notes_create_db -- Create a Lotus Notes database

Description

bool notes_create_db ( string database_name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_copy_db | Nach oben | notes_create_note


notes_create_note

(PHP 4 >= 4.0.5)

notes_create_note -- Create a note using form form_name

Description

string notes_create_note ( string database_name, string form_name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_create_db | Nach oben | notes_drop_db


notes_drop_db

(PHP 4 >= 4.0.5)

notes_drop_db -- Drop a Lotus Notes database

Description

bool notes_drop_db ( string database_name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_create_note | Nach oben | notes_find_note


notes_find_note

(PHP 4 >= 4.0.5)

notes_find_note -- Returns a note id found in database_name. Specify the name of the note. Leaving type bla

Description

bool notes_find_note ( string database_name, string name [, string type])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_drop_db | Nach oben | notes_header_info


notes_header_info

(PHP 4 >= 4.0.5)

notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

object notes_header_info ( string server, string mailbox, int msg_number)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_find_note | Nach oben | notes_list_msgs


notes_list_msgs

(PHP 4 >= 4.0.5)

notes_list_msgs -- Returns the notes from a selected database_name

Description

bool notes_list_msgs ( string db)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_header_info | Nach oben | notes_mark_read


notes_mark_read

(PHP 4 >= 4.0.5)

notes_mark_read -- Mark a note_id as read for the User user_name

Description

string notes_mark_read ( string database_name, string user_name, string note_id)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_list_msgs | Nach oben | notes_mark_unread


notes_mark_unread

(PHP 4 >= 4.0.5)

notes_mark_unread -- Mark a note_id as unread for the User user_name

Description

string notes_mark_unread ( string database_name, string user_name, string note_id)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_mark_read | Nach oben | notes_nav_create


notes_nav_create

(PHP 4 >= 4.0.5)

notes_nav_create -- Create a navigator name, in database_name

Description

bool notes_nav_create ( string database_name, string name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_mark_unread | Nach oben | notes_search


notes_search

(PHP 4 >= 4.0.5)

notes_search -- Find notes that match keywords in database_name

Description

string notes_search ( string database_name, string keywords)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_nav_create | Nach oben | notes_unread


notes_unread

(PHP 4 >= 4.0.5)

notes_unread -- Returns the unread note id's for the current User user_name

Description

string notes_unread ( string database_name, string user_name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_search | Nach oben | notes_version


notes_version

(PHP 4 >= 4.0.5)

notes_version -- Get the version Lotus Notes

Description

string notes_version ( string database_name)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
notes_unread | Nach oben | NSAPI-specific Functions


NSAPI-specific Functions

PHP Handbuch
Zurück Nach vorne

LXXI. NSAPI-specific Functions

Einführung

These functions are only available when running PHP as a NSAPI module in Netscape/iPlanet/SunONE webservers.

Installation

For PHP installation on Netscape/iPlanet/SunONE webservers see the NSAPI section in the installation chapter.

Laufzeit Konfiguration

The behaviour of the NSAPI PHP module is affected by settings in php.ini. Configuration settings from php.ini may be overridden by additional parameters to the php4_execute call in obj.conf

Tabelle 1. NSAPI configuration options

Name | Default | Changeable | Function
nsapi.read_timeout | 60 | PHP_INI_ALL | sets the time in seconds the plugin is waiting for POST data from the client

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Siehe auch

NSAPI implements a subset of the functions from the Apache module for maximum compatibility.

Tabelle 2. Apache functions implemented by NSAPI

Apache function (only as alias) | NSAPI function | Description
apache_request_headers() | nsapi_request_headers() | Fetch all HTTP request headers
apache_response_headers() | nsapi_response_headers() | Fetch all HTTP response headers
getallheaders() | nsapi_request_headers() | Fetch all HTTP request headers
virtual() | nsapi_virtual() | Make NSAPI sub-request

Inhaltsverzeichnis
nsapi_request_headers -- Fetch all HTTP request headers
nsapi_response_headers -- Fetch all HTTP response headers
nsapi_virtual -- Perform an NSAPI sub-request

Zurück | Zum Anfang | Nach vorne
notes_version | Nach oben | nsapi_request_headers


nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_request_headers -- Fetch all HTTP request headers

Description

array nsapi_request_headers ( void )

nsapi_request_headers() returns an associative array of all the HTTP headers in the current request. This is only supported when PHP runs as a NSAPI module.

Beispiel 1. nsapi_request_headers() example

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Anmerkung: Prior to PHP 4.3.3, getallheaders() was only available for the Apache servers. After PHP 4.3.3, getallheaders() is an alias for nsapi_request_headers() if you use the NSAPI module.

Anmerkung: You can also get at the value of the common CGI variables by reading them from the $_SERVER superglobal, which works whether or not you are using PHP as a NSAPI module.

Zurück | Zum Anfang | Nach vorne
NSAPI-specific Functions | Nach oben | nsapi_response_headers


nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_response_headers -- Fetch all HTTP response headers

Description

array nsapi_response_headers ( void )

Returns an array of all NSAPI response headers. This functionality is only available in PHP 4.3.3 and greater.

See also nsapi_request_headers() and headers_sent().

Zurück | Zum Anfang | Nach vorne
nsapi_request_headers | Nach oben | nsapi_virtual


nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5)

nsapi_virtual -- Perform an NSAPI sub-request

Description

int nsapi_virtual ( string uri)

nsapi_virtual() is an NSAPI-specific function which is equivalent to <!--#include virtual...--> in SSI (.shtml files). It does an NSAPI sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you'd parse through webserver.

To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.

You cannot make recursive requests with this function to other PHP scripts. If you want to include PHP scripts, use include() or require().

Anmerkung: This function depends on a undocumented feature of the Netscape/iPlanet/SunONE webservers. Use phpinfo() to determine if it is available. In the Unix environment it should always work, in windows it depends on the name of a ns-httpdXX.dll file. Read the note about subrequests in the install section if you experience this problem.

Zurück | Zum Anfang | Nach vorne
nsapi_response_headers | Nach oben | ODBC Funktionen


ODBC Funktionen

PHP Handbuch
Zurück Nach vorne

LXXII. ODBC Funktionen

Einführung

Zusätzlich zur normalen ODBC-Unterstützung bieten die ODBC-Funktionen in PHP auch Schnittstellen zu einigen Datenbanken, die Ihre API der Semantik der ODBC-API nachempfunden haben. Statt vielen nahezu identischen Datenbanktreibern wurden diese Treiber zu einer einzigen Gruppe von ODBC-Funktionen zusammengefasst.

Die folgenden Datenbanken werden von den ODBC-Funktionen unterstützt: Adabas D, IBM DB2, iODBC, Solid und Sybase SQL Anywhere.

Anmerkung: Es ist kein echtes ODBC in die Kommunikation mit oben genannten Datenbanken involviert. Es handelt sich um echte native Datenbankschnittstellen, die den Funktionsnamen und den Funktionssyntax der ODBC-Funktionen nutzen. Die Ausnahme ist iODBC. Wenn PHP mit iODBC-Unterstützung kompiliert wird, können alle ODBC-kompatiblen Treiber mit PHP genutzt werden. iODBC wird von OpenLink Software betreut. Mehr Informationen zu iODBC, unter anderem eine HOWTO, finden Sie auf www.iodbc.org.

Anforderungen

Um die Datenbanken mit PHP nutzen zu können, sollten die dafür benötigten Bibliotheken installiert sein.

Installation

--with-adabas[=DIR]

Inkludiert Adabas D Unterstützung. DIR ist das Adabas Installationsverzeichnis. Default ist /usr/local.

--with-sapdb[=DIR]

Inkludiert SAP DB Unterstützung. DIR ist das SAP DB Installationsverzeichnis. Default ist /usr/local.

--with-solid[=DIR]

Inkludiert Solid Unterstützung. DIR ist das Solid Installationsverzeichnis. Default ist /usr/local/solid.

--with-ibm-db2[=DIR]

Inkludiert IBM DB2 Unterstützung. DIR ist das DB2 Installationsverzeichnis. Default ist /home/db2inst1/sqllib.

--with-empress[=DIR]

Inkludiert Empress Unterstützung. DIR ist das Empress Installationsverzeichnis. Default ist $EMPRESSPATH. Ab PHP4 unterstützt diese Option nur Empress Version 8.60 und höher.

--with-empress-bcs[=DIR]

Inkludiert Empress Local Access Unterstützung. DIR ist das Empress Installationsverzeichnis. Default ist $EMPRESSPATH. Ab PHP4 unterstützt diese Option nur Empress Version 8.60 und höher.

--with-birdstep[=DIR]

Inkludiert Birdstep Unterstützung. DIR ist das Birdstep Installationsverzeichnis. Default ist /usr/local/birdstep.

--with-custom-odbc[=DIR]

Inkludiert benutzerdefinierte ODBC Unterstützung. DIR ist das ODBC Installationsverzeichnis. Default ist /usr/local. Stellen Sie sicher, dass CUSTOM_ODBC_LIBS definiert ist und dass sich eine odbc.h in Ihrem Include Verzeichnis befindet. Z.B sollten Sie folgendes für Sybase SQL Anywhere 5.5.00 auf QNX definieren, bevor Sie das Configure Skript starten: CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Inkludiert iODBC Unterstützung. DIR ist das iODBC Installationsverzeichnis. Default ist /usr/local.

--with-esoob[=DIR]

Inkludiert Easysoft OOB Unterstützung. DIR ist das OOB Installationsverzeichnis. Default ist /usr/local/easysoft/oob/client. defaults to

--with-unixODBC[=DIR]

Inkludiert unixODBC Unterstützung. DIR ist das unixODBC Installationsverzeichnis. Default ist //usr/local.

--with-openlink[=DIR]

Inkludiert OpenLink ODBC Unterstützung. DIR ist das OpenLink Installationsverzeichnis. Default ist /usr/local. Dies ist das gleiche wie iODBC.

--with-dbmaker[=DIR]

Inkludiert DBMaker Unterstützung. DIR ist das DBMaker Installationsverzeichnis. Default ist, wo die letzte Version von DBMaker installiert ist (wie z.B. /home/dbmaker/3.6).

Um unified ODBC Unterstützung in PHP 3 zu deaktivieren, verwenden Sie die Option --disable-unified-odbc. Nur anwendbar, wenn iODBC, Adabas, Solid, Velocis oder eine spezielle ODBC Schnittstelle aktiviert ist.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Laufzeit Konfiguration

Das Verhalten der ODBC-Funktionen wird von den Einstellungen in der globalen Konfigurationsdatei php.ini bestimmt.

Tabelle 1. ODBC-Konfigurationsoptionen

Name | Standard | Einstellbar in
odbc.default_db * | NULL | PHP_INI_ALL
odbc.default_user * | NULL | PHP_INI_ALL
odbc.default_pw * | NULL | PHP_INI_ALL
odbc.allow_persistent | "1" | PHP_INI_SYSTEM
odbc.check_persistent | "1" | PHP_INI_SYSTEM
odbc.max_persistent | "-1" | PHP_INI_SYSTEM
odbc.max_links | "-1" | PHP_INI_SYSTEM
odbc.defaultlrl | "4096" | PHP_INI_ALL
odbc.defaultbinmode | "1" | PHP_INI_ALL

Anmerkung: Mit * markierte Einträge sind noch nicht implementiert.

Weitere Informationen und Definitionen der PHP_INI_*- Einstellungen finden Sie bei ini_set().

Hier eine kurze Erklärung der Konfigurationsoptionen:

odbc.default_db string

Standard-ODBC-Datenquelle, wenn in odbc_connect() oder odbc_pconnect() keine definiert wird.

odbc.default_user string

Nutzername, wenn in odbc_connect() oder odbc_pconnect() keiner angegeben wird.

odbc.default_pw string

Passwort, wenn keines in odbc_connect() oder odbc_pconnect() angegeben wird.

odbc.allow_persistent boolean

Einstellung, ob persistente ODBC-Verbindungen genutzt werden sollen.

odbc.check_persistent boolean

Aktiviert eine Überprüfung, ob eine persistente Datenbankverbindung noch aktiv ist, bevor sie weitergenutzt wird.

odbc.max_persistent integer

Die maximale Anzahl von persistenten ODBC-Verbindungen pro Prozess.

odbc.max_links integer

Die maximale Anzahl von ODBC-Verbindungen pro Prozess, inklusive persistenten Verbindungen.

odbc.defaultlrl integer

Bestimmt die Anzahl Bytes, mit denen ein LONG-Feld an PHP übergeben wird.

odbc.defaultbinmode integer

Definiert die Behandlung von Binärdaten.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

ODBC_TYPE (integer)

ODBC_BINMODE_PASSTHRU (integer)

ODBC_BINMODE_RETURN (integer)

ODBC_BINMODE_CONVERT (integer)

SQL_ODBC_CURSORS (integer)

SQL_CUR_USE_DRIVER (integer)

SQL_CUR_USE_IF_NEEDED (integer)

SQL_CUR_USE_ODBC (integer)

SQL_CONCURRENCY (integer)

SQL_CONCUR_READ_ONLY (integer)

SQL_CONCUR_LOCK (integer)

SQL_CONCUR_ROWVER (integer)

SQL_CONCUR_VALUES (integer)

SQL_CURSOR_TYPE (integer)

SQL_CURSOR_FORWARD_ONLY (integer)

SQL_CURSOR_KEYSET_DRIVEN (integer)

SQL_CURSOR_DYNAMIC (integer)

SQL_CURSOR_STATIC (integer)

SQL_KEYSET_SIZE (integer)

SQL_CHAR (integer)

SQL_VARCHAR (integer)

SQL_LONGVARCHAR (integer)

SQL_DECIMAL (integer)

SQL_NUMERIC (integer)

SQL_BIT (integer)

SQL_TINYINT (integer)

SQL_SMALLINT (integer)

SQL_INTEGER (integer)

SQL_BIGINT (integer)

SQL_REAL (integer)

SQL_FLOAT (integer)

SQL_DOUBLE (integer)

SQL_BINARY (integer)

SQL_VARBINARY (integer)

SQL_LONGVARBINARY (integer)

SQL_DATE (integer)

SQL_TIME (integer)

SQL_TIMESTAMP (integer)

SQL_TYPE_DATE (integer)

SQL_TYPE_TIME (integer)

SQL_TYPE_TIMESTAMP (integer)

SQL_BEST_ROWID (integer)

SQL_ROWVER (integer)

SQL_SCOPE_CURROW (integer)

SQL_SCOPE_TRANSACTION (integer)

SQL_SCOPE_SESSION (integer)

SQL_NO_NULLS (integer)

SQL_NULLABLE (integer)

SQL_INDEX_UNIQUE (integer)

SQL_INDEX_ALL (integer)

SQL_ENSURE (integer)

SQL_QUICK (integer)

Inhaltsverzeichnis
odbc_autocommit -- Ändert das Autocommit-Verhalten
odbc_binmode -- Die Behandlung von Binärdaten
odbc_close_all -- Beendet alle ODBC-Verbindungen
odbc_close -- Beendet eine ODBC-Verbindung
odbc_columnprivileges -- Returns a result identifier that can be used to fetch a list of columns and associated privileges
odbc_columns -- Lists the column names in specified tables. Returns a result identifier containing the information.
odbc_commit -- Führt eine ODBC-Transaktion aus
odbc_connect -- Baut die Verbindung zu einer ODBC-Datenquelle auf
odbc_cursor -- Findet den Cursornamen heraus
odbc_data_source -- Returns information about a current connection
odbc_do -- Ein Synonym für odbc_exec()
odbc_error -- Get the last error code
odbc_errormsg -- Get the last error message
odbc_exec -- Bereitet einen SQL-Befehl auf und führt ihn aus
odbc_execute -- Führt ein vorbereiteten SQL-Befehl aus
odbc_fetch_array -- Fetch a result row as an associative array
odbc_fetch_into -- Eine Ergebniszeile in ein Array stellen
odbc_fetch_object -- Fetch a result row as an object
odbc_fetch_row -- Liefert eine Datenzeile zurück
odbc_field_len -- Bestimmt die Länge eines Feldes
odbc_field_name -- Liefert die Spaltenbezeichnung
odbc_field_num -- Liefert die Spaltennummer für eine Spaltenbezeichnung
odbc_field_precision -- Synonym for odbc_field_len()
odbc_field_scale -- Get the scale of a field
odbc_field_type -- Liefert den Datentyp eines Feldes
odbc_foreignkeys -- Returns a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table
odbc_free_result -- Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei
odbc_gettypeinfo -- Returns a result identifier containing information about data types supported by the data source.
odbc_longreadlen -- Steuert die Nutzung von LONG-Spalten
odbc_next_result -- Checks if multiple results are available
odbc_num_fields -- Liefert die Anzahl der Ergebnisspalten
odbc_num_rows -- Ergibt die Zeilenzahl des Abfrageergebnisses
odbc_pconnect -- Öffnet eine persistente Datenbankverbindung
odbc_prepare -- Stellt einen SQL-Befehl zur Ausführung bereit
odbc_primarykeys -- Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table
odbc_procedurecolumns -- Retrieve information about parameters to procedures
odbc_procedures -- Get the list of procedures stored in a specific data source. Returns a result identifier containing the information.
odbc_result_all -- Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus
odbc_result -- Erlaubt den Zugriff auf die Ergebnisdaten
odbc_rollback -- Hebt eine Transaktion wieder auf
odbc_setoption -- Verändert die ODBC-Einstellungen
odbc_specialcolumns -- Returns either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction
odbc_statistics -- Retrieve statistics about a table
odbc_tableprivileges -- Lists tables and the privileges associated with each table
odbc_tables -- Get the list of table names stored in a specific data source. Returns a result identifier containing the information.

Zurück | Zum Anfang | Nach vorne
nsapi_virtual | Nach oben | odbc_autocommit


odbc_autocommit

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_autocommit -- Ändert das Autocommit-Verhalten

Beschreibung

int odbc_autocommit ( int connection_id [, int OnOff])

Ohne den Parameter OnOff gibt odbc_autocommit() den aktuellen autocommit-Status für die Datenbankverbindung connection_id zurück. Wenn autocommit aktiviert ist, wird TRUE zurückgeliefert, FALSE wenn es deaktiviert ist oder ein Fehler auftritt.

In der Standardeinstellung ist autocommit für eine Datenbankverbindung aktiviert. Das Deaktivieren von autocommit enspricht dem Durchführen einer Transaktion.

Siehe auch odbc_commit() und odbc_rollback().

Zurück | Zum Anfang | Nach vorne
ODBC Funktionen | Nach oben | odbc_binmode


odbc_binmode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_binmode -- Die Behandlung von Binärdaten

Beschreibung

int odbc_binmode ( int result_id, int mode)

(Betrifft die ODBC SQL Typen: BINARY, VARBINARY und LONGVARBINARY)

  • ODBC_BINMODE_PASSTHRU: gibt Binärdaten direkt zum Output durch

  • ODBC_BINMODE_RETURN: liefert die Binärdaten unverändert zurück

  • ODBC_BINMODE_CONVERT: konvertiert die Binärdaten zu Zeichen und liefere sie zurück

Im ODBC_BINMODE_CONVERT werden die Binärdaten zu Character-C-data gewandelt. Jedes Byte (8 Bits) der ursprünglichen Daten wird zu zwei ASCII-Zeichen, die der hexadezimalen Darstellung des Wertes entsprechen. Der Binärwert 00000001 wird zum Beispiel zu "01" gewandelt, der Binärwert 11111111 zu "FF".

Tabelle 1. Die Benutzung von LONGVARBINARY

binmode | longreadlen | Resultat
ODBC_BINMODE_PASSTHRU | 0 | Direkte Ausgabe
ODBC_BINMODE_RETURN | 0 | Direkte Ausgabe
ODBC_BINMODE_CONVERT | 0 | Direkte Ausgabe
ODBC_BINMODE_PASSTHRU | 0 | Direkte Ausgabe
ODBC_BINMODE_PASSTHRU | >0 | Direkte Ausgabe
ODBC_BINMODE_RETURN | >0 | Direkte Ausgabe
ODBC_BINMODE_CONVERT | >0 | Rückgabe als CHAR-Werte

Wenn odbc_fetch_into() genutzt wird, wird bei direkter Ausgabe ein leerer String als Spaltenwert zurückgeliefert.

Wenn result_id gleich 0 ist, wird die Einstellung als Defaultwert für die nächsten Transaktionen gesetzt.

Anmerkung: Der Defahltwert für longreadlen ist 4096, für odbc_binmode() ODBC_BINMODE_RETURN, also die unveränderte Rückgabe. Das Verhalten von LONGVARBINARY wird ebenfalls durch die Funktion odbc_longreadlen() bestimmt.

Zurück | Zum Anfang | Nach vorne
odbc_autocommit | Nach oben | odbc_close_all


odbc_close_all

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_close_all -- Beendet alle ODBC-Verbindungen

Beschreibung

void odbc_close_all ( void )

odbc_close_all() beendet alle bestehenden Verbindungen zu allen Datenbankservern.

Anmerkung: Wie odbc_close() scheitert auch dieser Befehl, wenn auf einer Datenbankverbindung noch Transaktionen ausstehen oder aktiv sind. In diesem Fall bleibt die betroffene Verbindung auch nach dem odbc_close_all() bestehen.

Zurück | Zum Anfang | Nach vorne
odbc_binmode | Nach oben | odbc_close


odbc_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_close -- Beendet eine ODBC-Verbindung

Beschreibung

void odbc_close ( int connection_id)

odbc_close() beendete die Verbindung zum Datenbankserver, die durch das Verbindungskennzeichen connection_id gekennzeichnet wird.

Anmerkung: Diese Funktion scheitert, wenn auf dieser Datenbankverbindung noch Transaktionen ausstehen. In diesem Fall bleibt die Verbindung bestehen.

Zurück | Zum Anfang | Nach vorne
odbc_close_all | Nach oben | odbc_columnprivileges


odbc_columnprivileges

(PHP 4 , PHP 5)

odbc_columnprivileges -- Returns a result identifier that can be used to fetch a list of columns and associated privileges

Description

int odbc_columnprivileges ( resource connection_id [, string qualifier [, string owner [, string table_name [, string column_name]]]])

Lists columns and associated privileges for the given table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The column_name argument accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

Zurück | Zum Anfang | Nach vorne
odbc_close | Nach oben | odbc_columns


odbc_columns

(PHP 4 , PHP 5)

odbc_columns -- Lists the column names in specified tables. Returns a result identifier containing the information.

Description

resource odbc_columns ( resource connection_id [, string qualifier [, string schema [, string table_name [, string column_name]]]])

Lists all columns in the requested range. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_SCHEM

  • TABLE_NAME

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

The result set is ordered by TABLE_QUALIFIER, TABLE_SCHEM and TABLE_NAME.

The schema, table_name and column_name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

See also odbc_columnprivileges() to retrieve associated privileges.

Zurück | Zum Anfang | Nach vorne
odbc_columnprivileges | Nach oben | odbc_commit


odbc_commit

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_commit -- Führt eine ODBC-Transaktion aus

Beschreibung

int odbc_commit ( int connection_id)

Gibt bei Erfolg TRUE zurück, bei Mißerfolg FALSE. Alle ausstehenden Transaktionen auf der Datenbankverbindung connection_id werden ausgeführt.

Zurück | Zum Anfang | Nach vorne
odbc_columns | Nach oben | odbc_connect


odbc_connect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_connect -- Baut die Verbindung zu einer ODBC-Datenquelle auf

Beschreibung

int odbc_connect ( string dsn, string user, string password [, int cursor_type])

Liefert eine ODBC-Verbindungskennung connection_id oder 0 (FALSE) bei Fehlfunktion zurück.

Die Verbindungskennung connection_id wird von den anderen ODBC-Funktionen benötigt. Es können mehrere ODBC-Verbindungen nebeneinander bestehen. Der optionale vierte Parameter cursor_type setzt die Art des Cursors, der für diese Verbindung genutzt werden soll. Normalerweise wird er nicht benötigt, kann aber bei manchen ODBC-Treiberproblemen nützlich sein.

Es können etwa Probleme bei der Ausführung von komplexen Prozeduren auftreten. Die Fehlermeldung lautet dann zum Beispiel "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Dieser Fehler kann durch die Verwendung von SQL_CUR_USE_ODBC als cursor_type kann hier helfen. Einige ODBC-Treiber unterstützen den optionalen Parameter row_number in der Funktion odbc_fetch_row() nicht. Auch in diesem Fall kann SQL_CUR_USE_ODBC helfen.

Folgende Konstanten sind als Cursortyp definiert:

  • SQL_CUR_USE_IF_NEEDED

  • SQL_CUR_USE_ODBC

  • SQL_CUR_USE_DRIVER

  • SQL_CUR_DEFAULT

Für persistente Verbindungen schauen Sie sich bitte odbc_pconnect() an.

Zurück | Zum Anfang | Nach vorne
odbc_commit | Nach oben | odbc_cursor


odbc_cursor

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_cursor -- Findet den Cursornamen heraus

Beschreibung

string odbc_cursor ( int result_id)

odbc_cursor() liefert einen Cursornamen für die gegebene Ergebniskennung result_id zurück.

Zurück | Zum Anfang | Nach vorne
odbc_connect | Nach oben | odbc_data_source


odbc_data_source

(PHP 4 >= 4.3.0, PHP 5)

odbc_data_source -- Returns information about a current connection

Description

resource odbc_data_source ( resource connection_id, constant fetch_type)

Returns FALSE on error, and an array upon success.

This function will return information about the active connection following the information from within the DSN. The connection_id is required to be a valid ODBC connection. The fetch_type can be one of two constant types: SQL_FETCH_FIRST, SQL_FETCH_NEXT. Use SQL_FETCH_FIRST the first time this function is called, thereafter use the SQL_FETCH_NEXT.

Zurück | Zum Anfang | Nach vorne
odbc_cursor | Nach oben | odbc_do


odbc_do

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_do -- Ein Synonym für odbc_exec()

Beschreibung

int odbc_do ( int conn_id, string query)

odbc_do() führt eine Anfrage auf der gegebenen Verbindung durch.

Zurück | Zum Anfang | Nach vorne
odbc_data_source | Nach oben | odbc_error


odbc_error

(PHP 4 >= 4.0.5, PHP 5)

odbc_error -- Get the last error code

Description

string odbc_error ( [resource connection_id])

Returns a six-digit ODBC state, or an empty string if there has been no errors. If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

See also: odbc_errormsg() and odbc_exec().

Zurück | Zum Anfang | Nach vorne
odbc_do | Nach oben | odbc_errormsg


odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5)

odbc_errormsg -- Get the last error message

Description

string odbc_errormsg ( [resource connection_id])

Returns a string containing the last ODBC error message, or an empty string if there has been no errors. If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

See also: odbc_error() and odbc_exec().

Zurück | Zum Anfang | Nach vorne
odbc_error | Nach oben | odbc_exec


odbc_exec

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_exec -- Bereitet einen SQL-Befehl auf und führt ihn aus

Beschreibung

int odbc_exec ( int connection_id, string query_string)

Liefert bei einem Fehler FALSE zurück, sonst eine ODBC-Ergebniskennung result_id.

odbc_exec() sendet einen SQL-Befehl zu dem Datenbankserver, der durch die Verbindungskennung connection_id bezeichnet wird. Dieser Parameter muss durch odbc_connect() oder odbc_pconnect() erzeugt worden sein.

Siehe auch: odbc_prepare() und odbc_execute() für die gleichzeitige Ausführung von mehreren SQL-Befehlen.

Zurück | Zum Anfang | Nach vorne
odbc_errormsg | Nach oben | odbc_execute


odbc_execute

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_execute -- Führt ein vorbereiteten SQL-Befehl aus

Beschreibung

int odbc_execute ( int result_id [, array parameters_array])

Führt ein oder mehrere durch odbc_prepare() vorbereitete SQL-Befehle aus. Nach erfolgreicher Ausführung wird TRUE zurückgeliefert, sonst FALSE. Das Array parameters_array braucht nur angegeben zu werden, wenn im Befehl tatsächlich Parameter vorhanden sind.

Zurück | Zum Anfang | Nach vorne
odbc_exec | Nach oben | odbc_fetch_array


odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_array -- Fetch a result row as an associative array

Description

array odbc_fetch_array ( resource result [, int rownumber])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
odbc_execute | Nach oben | odbc_fetch_into


odbc_fetch_into

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_fetch_into -- Eine Ergebniszeile in ein Array stellen

Beschreibung

int odbc_fetch_into ( int result_id [, int rownumber, array result_array])

Liefert die Anzahl der Ergebnisspalten zurück, bei einem Fehler FALSE. Das Zielarray result_array muss immer übergeben werden, kann aber einen beliebigen Typ haben - es wird ohnehin zu einem Array gemacht. Das Array enthält die Ergebnisspalten beginnend mit 0.

Zurück | Zum Anfang | Nach vorne
odbc_fetch_array | Nach oben | odbc_fetch_object


odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_object -- Fetch a result row as an object

Description

object odbc_fetch_object ( resource result [, int rownumber])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
odbc_fetch_into | Nach oben | odbc_fetch_row


odbc_fetch_row

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_fetch_row -- Liefert eine Datenzeile zurück

Beschreibung

int odbc_fetch_row ( int result_id [, int row_number])

Wenn odbc_fetch_row() erfolgreich durchgeführt wurde (also eine oder mehrere Datenzeilen gefunden wurden), dann wird TRUE zurückgeliefert. Wenn keine (weitere) Zeile vorhanden ist, wird FALSE zurückgegeben.

odbc_fetch_row() stellt eine Zeile der von odbc_do()/odbc_exec() zurückgegeben Daten bereit. Nachdem odbc_fetch_row() aufgerufen wurde, können die Felder dieser Zeile mit odbc_result() genutzt werden.

Wenn row_number nicht definiert ist, versucht odbc_fetch_row() die nächste Zeile aus dem Abfrageergebnis result_id zu holen. odbc_fetch_row() kann abwechselnd ohne und mit dem Parameter row_number genutzt werden.

Um durch ein Abfrageergebnis mehrfach zu durchlaufen, kann man odbc_fetch_row() mit row_number gleich 1 aufrufen, um dann wie gewohnt mit odbc_fetch_row() ohne Zeilenparameter fortzufahren. Wenn der ODBC-Treiber die Herausgabe von bestimmten Zeilen nicht unterstützt, wird der Parameter ignoriert.

Zurück | Zum Anfang | Nach vorne
odbc_fetch_object | Nach oben | odbc_field_len


odbc_field_len

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_len -- Bestimmt die Länge eines Feldes

Beschreibung

int odbc_field_len ( int result_id, int field_number)

odbc_field_len() gibt die Länge eines Feldes an. Das Feld wird durch die Feldnummer field_number im Abfrageergebnis result_id bestimmt. Die Feldnummerierung beginnt mit 1.

Zurück | Zum Anfang | Nach vorne
odbc_fetch_row | Nach oben | odbc_field_name


odbc_field_name

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_name -- Liefert die Spaltenbezeichnung

Beschreibung

string odbc_field_name ( int result_id, int field_number)

odbc_field_name() gibt den Namen der Spalte mit der Nummer field_number für des Abfrageergebnisses result_id zurück. Die Nummerierung der Spalten beginnt mit 1. Bei einem Fehler wird FALSE zurückgegeben.

Zurück | Zum Anfang | Nach vorne
odbc_field_len | Nach oben | odbc_field_num


odbc_field_num

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_num -- Liefert die Spaltennummer für eine Spaltenbezeichnung

Beschreibung

int odbc_field_num ( int result_id, string field_name)

odbc_field_num() will return the number of the column slot that corresponds to the named field in the given ODBC result identifier. Field numbering starts at 1. FALSE is returned on error.

Zurück | Zum Anfang | Nach vorne
odbc_field_name | Nach oben | odbc_field_precision


odbc_field_precision

(PHP 4 , PHP 5)

odbc_field_precision -- Synonym for odbc_field_len()

Description

string odbc_field_precision ( resource result_id, int field_number)

odbc_field_precision() will return the precision of the field referenced by number in the given ODBC result identifier.

See also: odbc_field_scale() to get the scale of a floating point number.

Zurück | Zum Anfang | Nach vorne
odbc_field_num | Nach oben | odbc_field_scale


odbc_field_scale

(PHP 4 , PHP 5)

odbc_field_scale -- Get the scale of a field

Description

string odbc_field_scale ( resource result_id, int field_number)

odbc_field_precision() will return the scale of the field referenced by number in the given ODBC result identifier.

Zurück | Zum Anfang | Nach vorne
odbc_field_precision | Nach oben | odbc_field_type


odbc_field_type

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_type -- Liefert den Datentyp eines Feldes

Beschreibung

string odbc_field_type ( int result_id, int field_number)

odbc_field_type() liefert den SQL-Datentyp eines Feldes zurück, das in dem Abfrageergebnis result_id an der Stelle field_number zu finden ist.

Zurück | Zum Anfang | Nach vorne
odbc_field_scale | Nach oben | odbc_foreignkeys


odbc_foreignkeys

(PHP 4 , PHP 5)

odbc_foreignkeys -- Returns a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table

Description

resource odbc_foreignkeys ( resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)

odbc_foreignkeys() retrieves information about foreign keys. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PKTABLE_QUALIFIER

  • PKTABLE_OWNER

  • PKTABLE_NAME

  • PKCOLUMN_NAME

  • FKTABLE_QUALIFIER

  • FKTABLE_OWNER

  • FKTABLE_NAME

  • FKCOLUMN_NAME

  • KEY_SEQ

  • UPDATE_RULE

  • DELETE_RULE

  • FK_NAME

  • PK_NAME

If pk_table contains a table name, odbc_foreignkeys() returns a result set containing the primary key of the specified table and all of the foreign keys that refer to it.

If fk_table contains a table name, odbc_foreignkeys() returns a result set containing all of the foreign keys in the specified table and the primary keys (in other tables) to which they refer.

If both pk_table and fk_table contain table names, odbc_foreignkeys() returns the foreign keys in the table specified in fk_table that refer to the primary key of the table specified in pk_table. This should be one key at most.

Zurück | Zum Anfang | Nach vorne
odbc_field_type | Nach oben | odbc_free_result


odbc_free_result

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_free_result -- Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei

Beschreibung

int odbc_free_result ( int result_id)

Gibt immer TRUE zurück.

odbc_free_result() braucht nur aufgerufen zu werden, wenn Sie einen zu hohen Speicherverbrauch durch das aktuell laufende Skript vermeiden wollen. Das gesamte Abfrageergebnis wird automatisch nach Beendigung des Skriptes gelöscht. Aber wenn Sie sicher sind, dass Sie dieses Ergebnis nicht länger benötigen, dann können Sie bei Speicherproblemen die Funktion odbc_free_result() benutzen.

Anmerkung: Wenn autocommit deaktiviert ist (siehe odbc_autocommit()) und Sie odbc_free_result() bevor ein Commit gemacht wird, werden alle austehenden Transaktionen zurückgenommen.

Zurück | Zum Anfang | Nach vorne
odbc_foreignkeys | Nach oben | odbc_gettypeinfo


odbc_gettypeinfo

(PHP 4 , PHP 5)

odbc_gettypeinfo -- Returns a result identifier containing information about data types supported by the data source.

Description

int odbc_gettypeinfo ( resource connection_id [, int data_type])

Retrieves information about data types supported by the data source. Returns an ODBC result identifier or FALSE on failure. The optional argument data_type can be used to restrict the information to a single data type.

The result set has the following columns:

  • TYPE_NAME

  • DATA_TYPE

  • PRECISION

  • LITERAL_PREFIX

  • LITERAL_SUFFIX

  • CREATE_PARAMS

  • NULLABLE

  • CASE_SENSITIVE

  • SEARCHABLE

  • UNSIGNED_ATTRIBUTE

  • MONEY

  • AUTO_INCREMENT

  • LOCAL_TYPE_NAME

  • MINIMUM_SCALE

  • MAXIMUM_SCALE

The result set is ordered by DATA_TYPE and TYPE_NAME.

Zurück | Zum Anfang | Nach vorne
odbc_free_result | Nach oben | odbc_longreadlen


odbc_longreadlen

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_longreadlen -- Steuert die Nutzung von LONG-Spalten

Beschreibung

int odbc_longreadlen ( int result_id, int length)

(Betrifft folgende ODBC-SQL-Typen: LONG, LONGVARBINARY) Die Anzahl der an PHP zurückgelieferten Bytes wird von durch den Parameter length bestimmt. Wenn er auf 0 gesetzt ist, wird der Inhalt von LONG-Spalten direkt an den Klienten weitergegeben.

Anmerkung: Die Behandlung von LONGVARBINARY-Spalten wird auch von odbc_binmode() beeinflußt.

Zurück | Zum Anfang | Nach vorne
odbc_gettypeinfo | Nach oben | odbc_next_result


odbc_next_result

(PHP 4 >= 4.0.5, PHP 5)

odbc_next_result -- Checks if multiple results are available

Description

bool odbc_next_result ( resource result_id)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
odbc_longreadlen | Nach oben | odbc_num_fields


odbc_num_fields

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_num_fields -- Liefert die Anzahl der Ergebnisspalten

Beschreibung

int odbc_num_fields ( int result_id)

odbc_num_fields() liefert die Anzahl der Spalten, die in einem ODBC-Ergebnis vorhanden sind, zurück. Bei einem Fehler ergibt odbc_num_fields() -1.

Zurück | Zum Anfang | Nach vorne
odbc_next_result | Nach oben | odbc_num_rows


odbc_num_rows

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_num_rows -- Ergibt die Zeilenzahl des Abfrageergebnisses

Beschreibung

int odbc_num_rows ( int result_id)

odbc_num_rows() liefert die Anzahl Zeilen eines ODBC-Abfrageergebnisses. Tritt ein Fehler auf, ist sie -1. Bei INSERT, UPDATE und DELETE-Befehlen wird die Zahl der betroffenen Zeilen zurückgegeben. Bei einer SELECT-Abfrage kann dies die Anzahl der vorhanden Zeilen sein.

Anmerkung: Bei vielen Treibern wird -1 als Anzahl möglicher Zeilen nach einem SELECT-Befehl zurückgeliefert.

Zurück | Zum Anfang | Nach vorne
odbc_num_fields | Nach oben | odbc_pconnect


odbc_pconnect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_pconnect -- Öffnet eine persistente Datenbankverbindung

Beschreibung

int odbc_pconnect ( string dsn, string user, string password [, int cursor_type])

Gibt eine ODBC-Verbindungskennung zurück, bei einem Fehler 0 (FALSE). Diese Funktion ist odbc_connect() sehr ähnlich. Der einzige Unterschied besteht darin, dass die Verbindung nach dem Ende des Skriptes erhalten bleibt. Folgende Verbindungen mit gleicher Datenquelle, Nutzer und Passwort-Kombination über odbc_connect() oder odbc_pconnect() können dann die bestehende Verbindung weiterbenutzen.

Anmerkung: Persistente Verbindungen können bei einem CGI-PHP nicht benutzt werden. In diesem Fall entspricht odbc_pconnect() odbc_connect().

Für weitere Informationen über den optionalen Parameter cursor_type schauen Sie bitte bei odbc_connect(). Weitere Informationen über persistente Datenbankverbindungen finden Sie in der PHP-FAQ

Zurück | Zum Anfang | Nach vorne
odbc_num_rows | Nach oben | odbc_prepare


odbc_prepare

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_prepare -- Stellt einen SQL-Befehl zur Ausführung bereit

Beschreibung

int odbc_prepare ( int connection_id, string query_string)

Liefert bei einem Fehler FALSE zurück.

Gibt eine ODBC-Ergebniskennung zurück, wenn der SQL-Befehl erfolgreich bereitgestellt wurde. Die Ergebniskennung kann später zur Ausführung des Befehles mit odbc_execute() genutzt werden.

Zurück | Zum Anfang | Nach vorne
odbc_pconnect | Nach oben | odbc_primarykeys


odbc_primarykeys

(PHP 4 , PHP 5)

odbc_primarykeys -- Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table

Description

resource odbc_primarykeys ( resource connection_id, string qualifier, string owner, string table)

Returns the column names that comprise the primary key for a table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • COLUMN_NAME

  • KEY_SEQ

  • PK_NAME

Zurück | Zum Anfang | Nach vorne
odbc_prepare | Nach oben | odbc_procedurecolumns


odbc_procedurecolumns

(PHP 4 , PHP 5)

odbc_procedurecolumns -- Retrieve information about parameters to procedures

Description

resource odbc_procedurecolumns ( resource connection_id [, string qualifier [, string owner [, string proc [, string column]]]])

Returns the list of input and output parameters, as well as the columns that make up the result set for the specified procedures. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • COLUMN_NAME

  • COLUMN_TYPE

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

The result set is ordered by PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME and COLUMN_TYPE.

The owner, proc and column arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Zurück | Zum Anfang | Nach vorne
odbc_primarykeys | Nach oben | odbc_procedures


odbc_procedures

(PHP 4 , PHP 5)

odbc_procedures -- Get the list of procedures stored in a specific data source. Returns a result identifier containing the information.

Description

resource odbc_procedures ( resource connection_id [, string qualifier [, string owner [, string name]]])

Lists all procedures in the requested range. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • NUM_INPUT_PARAMS

  • NUM_OUTPUT_PARAMS

  • NUM_RESULT_SETS

  • REMARKS

  • PROCEDURE_TYPE

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Zurück | Zum Anfang | Nach vorne
odbc_procedurecolumns | Nach oben | odbc_result_all


odbc_result_all

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_result_all -- Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus

Beschreibung

int odbc_result_all ( int result_id [, string format])

Liefert die Anzahl Reihen im Abfrageergebnis result_id zurück, wenn ein Fehler auftritt FALSE.

odbc_result_all() gibt alle Reihen eines SQL-Abfrageergebnisses result_id aus einem odbc_exec()-Aufruf als HTML-Tabelle aus. Mit dem optionalen String format kann ein allgemeines Tabellenformat angegeben werden.

Zurück | Zum Anfang | Nach vorne
odbc_procedures | Nach oben | odbc_result


odbc_result

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_result -- Erlaubt den Zugriff auf die Ergebnisdaten

Beschreibung

string odbc_result ( int result_id, mixed field)

Liefert den Inhalt eines bestimmtes Feldes zurück.

Der Feldparameter field kann entweder der Integerwert der Spaltennummer oder ein String mit dem Spaltennamen sein. Als Beispiel:

$produkt_3 = odbc_result ($Query_ID, 3 );
$produkt_wert = odbc_result ($Query_ID, "wert");

Der erste Aufruf von odbc_result() liefert den Wert des drittes Feldes im aktuellen Datensatz im Abfrageergebnis zurück. Der zweite Funktionsaufruf gibt den Wert der Spalte "wert" im aktuellen Datensatz zurück. Wenn die Spaltennummer kleiner als 1 oder größer als die Spaltenzahl ist, tritt ein Fehler auf. Gleiches gilt für einen Spaltennamen, der im Abfrageergebnis nicht vorkommt.

Die Spaltennummern beginngen mit 1. Für die Nutzung von Binärdaten und LONG-Spalten schauen Sie bitte bei odbc_binmode() und odbc_longreadlen() nach.

Zurück | Zum Anfang | Nach vorne
odbc_result_all | Nach oben | odbc_rollback


odbc_rollback

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_rollback -- Hebt eine Transaktion wieder auf

Beschreibung

int odbc_rollback ( int connection_id)

Hebt alle ausstehenden Transaktionen auf der Verbindung connection_id wieder auf. Bei Erfolg wird TRUE zurückgegeben, sonst FALSE.

Zurück | Zum Anfang | Nach vorne
odbc_result | Nach oben | odbc_setoption


odbc_setoption

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_setoption -- Verändert die ODBC-Einstellungen

Beschreibung

int odbc_setoption ( int id, int function, int option, int param)

Diese Funktion erlaubt das Einstellen der ODBC-Optionen für eine einzelne Verbindung. Sie soll beim Auffinden und Beheben von Problemen mit ODBC-Treibern helfen. Es empfiehlt sich, diese Funktionen nur zu nutzen, wenn man einige Erfahrung mit ODBC-Programmierung gesammelt hat und die Wirkungen der einzelnen Parameter kennt. Um mit Ihnen zu arbeiten, benötigen Sie eine Referenz der aktuellen Treiberversion des eingesetzten ODBC-Treibers, denn die Optionen sind von Treiber zu Treiber und von Version zu Version unterschiedlich.

Weil die Effekte je nach ODBC-Treiber unterschiedlich sind, sollte Skripte mit diesen Funktionen nicht veröffentlich werden. Einige Optionen stehen nicht zur Verfügung, weil sie vor dem Aufbau einer ODBC-Verbindung eingestellt sein müssen. Wie auch immer, in einigen Fällen hilft diese Funktion zu vermeiden, dass man von seinem Vorgesetzten gezwungen wird, ein kommerzielles Programm einzusetzen - und darauf kommt es doch an ;-) .

Id ist die Verbindungs oder Ergebniskennung, deren Optionen geändert werden sollen. Bei SQLSetConnectOption() ist es eine Verbindungskennung, bei SQLSetStmtOption() eine Ergebniskennung.

function ist die ODBC-Funktion, die genutzt werden soll. Die Werte sind 1 für SQLSetConnectOption() und 2 für SQLSetStntOption().

Der Parameter option ist die Option, die gesetzt werden soll.

Der Parameter param ist der Wert für die gegebene option.

Beispiel 1. odbc.setoption Beispiele

// 1. Option 102 von SQLSetConnectOption() ist SQL_AUTOCOMMIT.
//    Wert 1 für SQL_AUTOCOMMIT entspricht SQL_AUTOCOMMIT_ON.
//    Dieses Beispiel hat denselben Effekt wie
//    odbc_autocommit($conn, true);

odbc_setoption ($conn, 1, 102, 1);

// 2. Option 0 von SQLSetStmtOption() ist SQL_QUERY_TIMEOUT.
//    Dieses Beispiel setzt den Timeout auf 30 Sekunden.

$result = odbc_prepare ($conn, $sql);
odbc_setoption ($result, 2, 0, 30);
odbc_execute ($result);

Zurück | Zum Anfang | Nach vorne
odbc_rollback | Nach oben | odbc_specialcolumns


odbc_specialcolumns

(PHP 4 , PHP 5)

odbc_specialcolumns -- Returns either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction

Description

resource odbc_specialcolumns ( resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable)

When the type argument is SQL_BEST_ROWID, odbc_specialcolumns() returns the column or columns that uniquely identify each row in the table.

When the type argument is SQL_ROWVER, odbc_specialcolumns() returns the optimal column or set of columns that, by retrieving values from the column or columns, allows any row in the specified table to be uniquely identified.

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • SCOPE

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • PSEUDO_COLUMN

The result set is ordered by SCOPE.

Zurück | Zum Anfang | Nach vorne
odbc_setoption | Nach oben | odbc_statistics


odbc_statistics

(PHP 4 , PHP 5)

odbc_statistics -- Retrieve statistics about a table

Description

resource odbc_statistics ( resource connection_id, string qualifier, string owner, string table_name, int unique, int accuracy)

Get statistics about a table and its indexes. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • NON_UNIQUE

  • INDEX_QUALIFIER

  • INDEX_NAME

  • TYPE

  • SEQ_IN_INDEX

  • COLUMN_NAME

  • COLLATION

  • CARDINALITY

  • PAGES

  • FILTER_CONDITION

The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME and SEQ_IN_INDEX.

Zurück | Zum Anfang | Nach vorne
odbc_specialcolumns | Nach oben | odbc_tableprivileges


odbc_tableprivileges

(PHP 4 , PHP 5)

odbc_tableprivileges -- Lists tables and the privileges associated with each table

Description

int odbc_tableprivileges ( resource connection_id [, string qualifier [, string owner [, string name]]])

Lists tables in the requested range and the privileges associated with each table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Zurück | Zum Anfang | Nach vorne
odbc_statistics | Nach oben | odbc_tables


odbc_tables

(PHP 3>= 3.0.17, PHP 4 , PHP 5)

odbc_tables -- Get the list of table names stored in a specific data source. Returns a result identifier containing the information.

Description

int odbc_tables ( resource connection_id [, string qualifier [, string owner [, string name [, string types]]]])

Lists all tables in the requested range. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • TABLE_TYPE

  • REMARKS

The result set is ordered by TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

To support enumeration of qualifiers, owners, and table types, the following special semantics for the qualifier, owner, name, and table_type are available:

  • If qualifier is a single percent character (%) and owner and name are empty strings, then the result set contains a list of valid qualifiers for the data source. (All columns except the TABLE_QUALIFIER column contain NULLs.)

  • If owner is a single percent character (%) and qualifier and name are empty strings, then the result set contains a list of valid owners for the data source. (All columns except the TABLE_OWNER column contain NULLs.)

  • If table_type is a single percent character (%) and qualifier, owner and name are empty strings, then the result set contains a list of valid table types for the data source. (All columns except the TABLE_TYPE column contain NULLs.)

If table_type is not an empty string, it must contain a list of comma-separated values for the types of interest; each value may be enclosed in single quotes (') or unquoted. For example, "'TABLE','VIEW'" or "TABLE, VIEW". If the data source does not support a specified table type, odbc_tables() does not return any results for that type.

See also odbc_tableprivileges() to retrieve associated privileges.

Zurück | Zum Anfang | Nach vorne
odbc_tableprivileges | Nach oben | Object Aggregation/Composition Functions


Object Aggregation/Composition Functions

PHP Handbuch
Zurück Nach vorne

LXXIII. Object Aggregation/Composition Functions

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Einführung

In Object Oriented Programming, it is common to see the composition of simple classes (and/or instances) into a more complex one. This is a flexible strategy for building complicated objects and object hierarchies and can function as a dynamic alternative to multiple inheritance. There are two ways to perform class (and/or object) composition depending on the relationship between the composed elements: Association and Aggregation.

An Association is a composition of independently constructed and externally visible parts. When we associate classes or objects, each one keeps a reference to the ones it is associated with. When we associate classes statically, one class will contain a reference to an instance of the other class. For example:

Beispiel 1. Class association

<?php
class DateTime {

   function DateTime()
   {
       // empty constructor
   }

   function now()
   {
       return date("Y-m-d H:i:s");
   }
}

class Report {
   var $_dt;
   // more properties ...

   function Report()
   {
       $this->_dt = new DateTime();
       // initialization code ...
   }

   function generateReport()
   {
       $dateTime = $_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
?>
We can also associate instances at runtime by passing a reference in a constructor (or any other method), which allow us to dynamically change the association relationship between objects. We will modify the example above to illustrate this point:

Beispiel 2. Object association

<?php
class DateTime {
   // same as previous example
}

class DateTimePlus {
   var $_format;

   function DateTimePlus($format="Y-m-d H:i:s")
   {
       $this->_format = $format;
   }

   function now()
   {
       return date($this->_format);
   }
}

class Report {
   var $_dt;    // we'll keep the reference to DateTime here
   // more properties ...

   function Report()
   {
       // do some initialization
   }

   function setDateTime(&$dt)
   {
       $this->_dt =& $dt;
   }

   function generateReport()
   {
       $dateTime = $this->_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
$dt = new DateTime();
$dtp = new DateTimePlus("l, F j, Y (h:i:s a, T)");

// generate report with simple date for web display
$rep->setDateTime(&$dt);
echo $rep->generateReport();

// later on in the code ...

// generate report with fancy date
$rep->setDateTime(&$dtp);
$output = $rep->generateReport();
// save $output in database
// ... etc ...
?>

Aggregation, on the other hand, implies encapsulation (hidding) of the parts of the composition. We can aggregate classes by using a (static) inner class (PHP does not yet support inner classes), in this case the aggregated class definition is not accessible, except through the class that contains it. The aggregation of instances (object aggregation) involves the dynamic creation of subobjects inside an object, in the process, expanding the properties and methods of that object.

Object aggregation is a natural way of representing a whole-part relationship, (for example, molecules are aggregates of atoms), or can be used to obtain an effect equivalent to multiple inheritance, without having to permanently bind a subclass to two or more parent classes and their interfaces. In fact object aggregation can be more flexible, in which we can select what methods or properties to "inherit" in the aggregated object.

Beispiele

We define 3 classes, each implementing a different storage method:

Beispiel 3. storage_classes.inc

<?php
class FileStorage {
    var $data;

    function FileStorage($data)
    {
        $this->data = $data;
    }

    function write($name)
    {
        $fp = fopen(name, "w");
        fwrite($fp, $this->data);
        fclose($data);
    }
}

class WDDXStorage {
    var $data;
    var $version = "1.0";
    var $_id; // "private" variable

    function WDDXStorage($data)
    {
        $this->data = $data;
        $this->_id = $this->_genID();
    }

    function store()
    {
        if ($this->_id) {
            $pid = wddx_packet_start($this->_id);
            wddx_add_vars($pid, "this->data");
            $packet = wddx_packet_end($pid);
        } else {
            $packet = wddx_serialize_value($this->data);
        }
        $dbh = dba_open("varstore", "w", "gdbm");
        dba_insert(md5(uniqid("", true)), $packet, $dbh);
        dba_close($dbh);
    }

    // a private method
    function _genID()
    {
        return md5(uniqid(rand(), true));
    }
}

class DBStorage {
    var $data;
    var $dbtype = "mysql";

    function DBStorage($data)
    {
        $this->data = $data;
    }

    function save()
    {
        $dbh = mysql_connect();
        mysql_select_db("storage", $dbh);
        $serdata = serialize($this->data);
        mysql_query("insert into vars ('$serdata',now())", $dbh);
        mysql_close($dbh);
    }
}

?>

We then instantiate a couple of objects from the defined classes, and perform some aggregations and deaggregations, printing some object information along the way:

Beispiel 4. test_aggregation.php

<?php
include "storageclasses.inc";

// some utilty functions

function p_arr($arr)
{
    foreach ($arr as $k => $v)
        $out[] = "\t$k => $v";
    return implode("\n", $out);
}

function object_info($obj)
{
    $out[] = "Class: " . get_class($obj);
    foreach (get_object_vars($obj) as $var=>$val) {
        if (is_array($val)) {
            $out[] = "property: $var (array)\n" . p_arr($val);
        } else {
            $out[] = "property: $var = $val";
        }
    }
    foreach (get_class_methods($obj) as $method) {
        $out[] = "method: $method";
    }
    return implode("\n", $out);
}

$data = array(M_PI, "kludge != cruft");

// we create some basic objects
$fs = new FileStorage($data);
$ws = new WDDXStorage($data);

// print information on the objects
echo "\$fs object\n";
echo object_info($fs) . "\n";
echo "\n\$ws object\n";
echo object_info($ws) . "\n";

// do some aggregation

echo "\nLet's aggregate \$fs to the WDDXStorage class\n";
aggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nNow let us aggregate it to the DBStorage class\n";
aggregate($fs, "DBStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nAnd finally deaggregate WDDXStorage\n";
deaggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

?>

We will now consider the output to understand some of the side-effects and limitation of object aggregation in PHP. First, the newly created $fs and $ws objects give the expected output (according to their respective class declaration). Note that for the purposes of object aggregation, private elements of a class/object begin with an underscore character ("_"), even though there is not real distinction between public and private class/object elements in PHP.

$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
method: filestorage
method: write

$ws object
Class: wddxstorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: _id = ID::9bb2b640764d4370eb04808af8b076a5
method: wddxstorage
method: store
method: _genid

We then aggregate $fs with the WDDXStorage class, and print out the object information. We can see now that even though nominally the $fs object is still of FileStorage, it now has the property $version, and the method store(), both defined in WDDXStorage. One important thing to note is that it has not aggregated the private elements defined in the class, which are present in the $ws object. Also absent is the constructor from WDDXStorage, which will not be logical to aggegate.

Let's aggregate $fs to the WDDXStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
method: filestorage
method: write
method: store

The proccess of aggregation is cummulative, so when we aggregate $fs with the class DBStorage, generating an object that can use the storage methods of all the defined classes.

Now let us aggregate it to the DBStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: dbtype = mysql
method: filestorage
method: write
method: store
method: save

Finally, the same way we aggregated properties and methods dynamically, we can also deaggregate them from the object. So, if we deaggregate the class WDDXStorage from $fs, we will obtain:

And deaggregate the WDDXStorage methods and properties
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: dbtype = mysql
method: filestorage
method: write
method: save

One point that we have not mentioned above, is that the process of aggregation will not override existing properties or methods in the objects. For example, the class FileStorage defines a $data property, and the class WDDXStorage also defines a similar property which will not override the one in the object acquired during instantiation from the class FileStorage.

Inhaltsverzeichnis
aggregate_info -- Returns an associative array of the methods and properties from each class that has been aggregated to the object.
aggregate_methods_by_list -- Selective dynamic class methods aggregation to an object
aggregate_methods_by_regexp -- Selective class methods aggregation to an object using a regular expression
aggregate_methods -- Dynamic class and object aggregation of methods
aggregate_properties_by_list -- Selective dynamic class properties aggregation to an object
aggregate_properties_by_regexp -- Selective class properties aggregation to an object using a regular expression
aggregate_properties -- Dynamic aggregation of class properties to an object
aggregate -- Dynamic class and object aggregation of methods and properties
aggregation_info -- Alias of aggregate_info()
deaggregate -- Removes the aggregated methods and properties from an object

Zurück | Zum Anfang | Nach vorne
odbc_tables | Nach oben | aggregate_info


aggregate_info

(no version information, might be only in CVS)

aggregate_info -- Returns an associative array of the methods and properties from each class that has been aggregated to the object.

Description

array aggregate_info ( object object)

Will return the aggregation information for a particular object as an associative array of arrays of methods and properties. The key for the main array is the name of the aggregated class.

For example the code below

Beispiel 1. Using aggregate_info()

<?php

class Slicer {
    var $vegetable;

    function Slicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function slice_it($num_cuts)
    {
        echo "Doing some simple slicing\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some slicing
        }
    }
}

class Dicer {
    var $vegetable;
    var $rotation_angle = 90;   // degrees

    function Dicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function dice_it($num_cuts)
    {
        echo "Cutting in one direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some cutting
        }
        $this->rotate($this->rotation_angle);
        echo "Cutting in a second direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some more cutting
        }
    }

    function rotate($deg)
    {
        echo "Now rotating {$this->vegetable} {$deg} degrees\n";
    }

    function _secret_super_dicing($num_cuts)
    {
        // so secret we cannot show you ;-)
    }
}

$obj = new Slicer('onion');
aggregate($obj, 'Dicer');
print_r(aggregate_info($obj));
?>

Will produce the output

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)
As you can see, all properties and methods of the Dicer class have been aggregated into our new object, with the exception of the class constructor and the method _secret_super_dicing

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Zurück | Zum Anfang | Nach vorne
Object Aggregation/Composition Functions | Nach oben | aggregate_methods_by_list


aggregate_methods_by_list

(PHP 4 >= 4.2.0)

aggregate_methods_by_list -- Selective dynamic class methods aggregation to an object

Description

void aggregate_methods_by_list ( object object, string class_name, array methods_list [, bool exclude])

Aggregates methods from a class to an existing object using a list of method names. The optional paramater exclude is used to decide whether the list contains the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Zurück | Zum Anfang | Nach vorne
aggregate_info | Nach oben | aggregate_methods_by_regexp


aggregate_methods_by_regexp

(PHP 4 >= 4.2.0)

aggregate_methods_by_regexp -- Selective class methods aggregation to an object using a regular expression

Description

void aggregate_methods_by_regexp ( object object, string class_name, string regexp [, bool exclude])

Aggregates methods from a class to an existing object using a regular expresion to match method names. The optional paramater exclude is used to decide whether the regular expression will select the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Zurück | Zum Anfang | Nach vorne
aggregate_methods_by_list | Nach oben | aggregate_methods


aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methods -- Dynamic class and object aggregation of methods

Description

void aggregate_methods ( object object, string class_name)

Aggregates all methods defined in a class to an existing object, except for the class constructor, or methods whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_info(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Zurück | Zum Anfang | Nach vorne
aggregate_methods_by_regexp | Nach oben | aggregate_properties_by_list


aggregate_properties_by_list

(PHP 4 >= 4.2.0)

aggregate_properties_by_list -- Selective dynamic class properties aggregation to an object

Description

void aggregate_properties_by_list ( object object, string class_name, array properties_list [, bool exclude])

Aggregates properties from a class to an existing object using a list of property names. The optional paramater exclude is used to decide whether the list contains the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Zurück | Zum Anfang | Nach vorne
aggregate_methods | Nach oben | aggregate_properties_by_regexp


aggregate_properties_by_regexp

(PHP 4 >= 4.2.0)

aggregate_properties_by_regexp -- Selective class properties aggregation to an object using a regular expression

Description

void aggregate_properties_by_regexp ( object object, string class_name, string regexp [, bool exclude])

Aggregates properties from a class to an existing object using a regular expresion to match their names. The optional paramater exclude is used to decide whether the regular expression will select the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_info(),
deaggregate()

Zurück | Zum Anfang | Nach vorne
aggregate_properties_by_list | Nach oben | aggregate_properties


aggregate_properties

(PHP 4 >= 4.2.0)

aggregate_properties -- Dynamic aggregation of class properties to an object

Description

void aggregate_properties ( object object, string class_name)

Aggregates all properties defined in a class to an existing object, except for properties whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Zurück | Zum Anfang | Nach vorne
aggregate_properties_by_regexp | Nach oben | aggregate


aggregate

(PHP 4 >= 4.2.0)

aggregate -- Dynamic class and object aggregation of methods and properties

Description

void aggregate ( object object, string class_name)

Aggregates methods and properties defined in a class to an existing object. Methods and properties with names starting with an underscore character (_) are considered private to the aggregated class and are not used, constructors are also excluded from the aggregation procedure.

See also
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Zurück | Zum Anfang | Nach vorne
aggregate_properties | Nach oben | aggregation_info


aggregation_info

aggregation_info -- Alias of aggregate_info()

Description

This function is an alias of aggregate_info().

Zurück | Zum Anfang | Nach vorne
aggregate | Nach oben | deaggregate


deaggregate

(PHP 4 >= 4.2.0)

deaggregate -- Removes the aggregated methods and properties from an object

Description

void deaggregate ( object object [, string class_name])

Removes the methods and properties from classes that were aggregated to an object. If the optional class_name parameters is passed, only those methods and properties defined in that class are removed, otherwise all aggregated methods and properties are eliminated.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info()

Zurück | Zum Anfang | Nach vorne
aggregation_info | Nach oben | Oracle 8 Funktionen


Oracle 8 Funktionen

PHP Handbuch
Zurück Nach vorne

LXXIV. Oracle 8 Funktionen

Diese Funktionen gestatten den Zugriff auf Oracle7 und Oracle8 Datenbanken. Es wird hierbei das Oracle8 Call-Interface (OCI8) verwendet, welches installierte Oracle8 Client Bibliotheken (Libraries) benötigt.

Diese Schnittstelle ist flexibler als die Standard Oracle Funktionen. Es unterstützt Binding von localen und globalen PHP Variablen an Oracle Platzhalter und hat volle LOB,FILE und ROWID Unterstützung und gestattet dem Benutzer die Verwendung von Variablendefines.

Vor der Benutzung dieser Erweiterung sollten Sie sicherstellen die folgenden Umgebungsvariablen für den Webserveruser VOR dem Start des Webservers gesetzt zu haben.

  • ORACLE_HOME

  • ORACLE_SID

  • LD_PRELOAD

  • LD_LIBRARY_PATH

  • NLS_LANG

  • ORA_NLS33

Nachdem Sie die Umgebungsvariablen festgelegt haben, stellen Sie sicher, das die Dateien im ORACLE_HOME/network/admin für den Webserver lesbar sind.

Wenn der Webserver abstürzt nach dem Start, oder nicht startet: Überprüfen Sie, ob der Apache gegen -lpthread gelink ist:

# ldd /www/apache/bin/httpd
    libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
    libm.so.6 => /lib/libm.so.6 (0x4002f000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
    libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
    libc.so.6 => /lib/libc.so.6 (0x4007e000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Wenn libpthread hier nicht gelistet ist, dann muss der Webserver neu übersetzt werden:

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Beispiel 1. OCI Hinweise

<?php
// by sergo@bacup.ru

// Die Option OCI_DEFAULT führt die Anweisung in einer Transaktion aus
OCIExecute($stmt, OCI_DEFAULT);

// for retrieve data use (after fetch):

$result = OCIResult($stmt, $n);
if (is_object ($result)) $result = $result->load();

// For INSERT or UPDATE statement use:

$sql = "insert into table (field1, field2) values (field1 = 'value',
field2 = empty_clob()) returning field2 into :field2";
OCIParse($conn, $sql);
$clob = OCINewDescriptor($conn, OCI_D_LOB);
OCIBindByName ($stmt, ":field2", &$clob, -1, OCI_B_CLOB);
OCIExecute($stmt, OCI_DEFAULT);
$clob->save ("some text");
OCICommit($conn);

?>

Man kann auf Stored Procedures auf einfache Weise zugreifen.

Beispiel 2. Stored Procedures benutzen

<?php
// by webmaster@remoterealty.com
$sth = OCIParse ( $dbh, "begin sp_newaddress( :address_id, '$firstname',
'$lastname', '$company', '$address1', '$address2', '$city', '$state',
'$postalcode', '$country', :error_code );end;" );

// This calls stored procedure sp_newaddress, with :address_id being an
// in/out variable and :error_code being an out variable.
// Then you do the binding:

   OCIBindByName ( $sth, ":address_id", $addr_id, 10 );
   OCIBindByName ( $sth, ":error_code", $errorcode, 10 );
   OCIExecute ( $sth );

?>

Inhaltsverzeichnis
oci_bind_by_name -- Binds the PHP variable to the Oracle placeholder
oci_cancel -- Cancels reading from cursor
oci_close -- Closes Oracle connection
collection->append -- Appends an object to the collection
collection->assign -- Assigns a value to the collection from another existing collection
collection->assignElem -- Assigns a value to the element of the collection
collection->getElem -- Returns value of the element
collection->max -- Gets the maximum number of elements in the collection
collection->size -- Returns size of the collection
collection->trim -- Trims elements from the end of the collection
oci_commit -- Commits outstanding statements
oci_connect -- Establishes a connection to Oracle server
oci_define_by_name -- Uses a PHP variable for the define-step during a SELECT
oci_error -- Returns the last error found
oci_execute -- Executes a statement
oci_fetch_all -- Fetches all rows of result data into an array
oci_fetch_array -- Returns the next row from the result data as an associative or numeric array, or both
oci_fetch_assoc -- Returns the next row from the result data as an associative array
oci_fetch_object -- Returns the next row from the result data as an object
oci_fetch_row -- Returns the next row from the result data as a numeric array
oci_fetch -- Fetches the next row into result-buffer
oci_field_is_null -- Checks if the field is NULL
oci_field_name -- Returns the name of a field from the statement
oci_field_precision -- Tell the precision of a field
oci_field_scale -- Tell the scale of the field
oci_field_size -- Returns field's size
oci_field_type_raw -- Tell the raw Oracle data type of the field
oci_field_type -- Returns field's data type
collection->free -- Frees resources associated with collection object
descriptor->free -- Frees resources associated with descriptor
oci_free_statement -- Frees all resources associated with statement or cursor
oci_internal_debug -- Enables or disables internal debug output
lob->append -- Appends data from the large object to another large object
lob->close -- Closes LOB descriptor
oci_lob_copy -- Copies large object
lob->eof -- Tests for end-of-file on a large object's descriptor
lob->erase -- Erases a specified portion of the internal LOB data
lob->export -- Exports LOB's contents to a file
lob->flush -- Flushes/writes buffer of the LOB to the server
lob->import -- Imports file data to the LOB
oci_lob_is_equal -- Compares two LOB/FILE locators for equality
lob->load -- Returns large object's contents
lob->read -- Reads part of large object
lob->rewind -- Moves the internal pointer to the beginning of the large object
lob->save -- Saves data to the large object
lob->seek -- Sets the internal pointer of the large object
lob->size -- Returns size of large object
lob->tell -- Returns current position of internal pointer of large object
lob->truncate -- Truncates large object
lob->writeTemporary -- Writes temporary large object
lob->write -- Writes data to the large object
oci_new_collection -- Allocates new collection object
oci_new_connect -- Establishes a new connection to the Oracle server
oci_new_cursor -- Allocates and returns a new cursor (statement handle)
oci_new_descriptor -- Initializes a new empty LOB or FILE descriptor
oci_num_fields -- Returns the number of result columns in a statement
oci_num_rows -- Returns number of rows affected during statement execution
oci_parse -- Prepares Oracle statement for execution
oci_password_change -- Changes password of Oracle's user
oci_pconnect -- Connect to an Oracle database using a persistent connection
oci_result -- Returns field's value from the fetched row
oci_rollback -- Rolls back outstanding transaction
oci_server_version -- Returns server version
oci_set_prefetch -- Sets number of rows to be prefetched
oci_statement_type -- Returns the type of an OCI statement
ocibindbyname -- Bindet eine PHP-Variable an einen Oracle Platzhalter
ocicancel -- bricht das lesen von einem cursor ab
ocicloselob -- Closes lob descriptor
ocicollappend -- Append an object to the collection
ocicollassign -- Kommt noch.
ocicollassignelem -- Kommt noch.
ocicollgetelem -- Kommt noch.
ocicollmax -- Kommt noch.
ocicollsize -- Kommt noch.
ocicolltrim -- Kommt noch.
ocicolumnisnull -- Testet eine Spalte ob deren Inhalt NULL ist
ocicolumnname -- Liefert den Namen der Spalte zurück.
ocicolumnprecision -- Kommt noch.
ocicolumnscale -- Kommt noch.
ocicolumnsize -- Gibt die Grösse einer Spalte zurück
ocicolumntype -- Liefert den Datentyp einer Spalte zurück.
ocicolumntyperaw -- Kommt noch.
ocicommit -- Committet eine ausstehende Transaktion.
ocidefinebyname -- Definiert eine PHP Variable als Platzhalter für die Werte eines SELECTs
ocierror -- Gibt den letzten Fehler von stmt|conn|global zurück oder FALSE, wenn kein Fehler aufgetreten ist.
ociexecute -- führt ein Statement aus.
ocifetch -- Fetcht die nächste Ergebniszeile in den Ergebnispuffer
ocifetchinto -- Fetcht die nächste Zeile eines Ergebnisses in ein Array
ocifetchstatement -- Fetcht die Ergebnisse in ein Array
ocifreecollection -- Kommt noch.
ocifreecursor -- Gibt alle mit dem cursor verbundenen Ressourcen frei.
ocifreedesc -- Deletes a large object descriptor
ocifreestatement -- Gibt alle mit dem Statement verbundenen Ressourcen frei.
lob->getBuffering -- Returns current state of buffering for large object
ociinternaldebug -- Aktiviert oder deaktiviert die interne Debugausgabe. Die Voreinstellung ist deaktiviert.
ociloadlob -- Kommt noch.
ocilogoff -- Schliesst eine Datenbankverbindung zu Oracle
ocilogon -- Baut eine OCI-Verbindung auf
ocinewcollection -- Kommt noch.
ocinewcursor -- return a new cursor (Statement-Handle) - use this to bind ref-cursors!
ocinewdescriptor -- Initialize a new empty descriptor LOB/FILE (LOB is default)
ocinlogon -- Logt sich in die Oracle Datenbank ein und erzeugt dabei eine neue Oracle Session.
ocinumcols -- Gibt die Anzahl der Spalten in einem Statement zurück
ociparse -- Analysiert eine Abfrage und gibt eine Anweisung zurück.
ociplogon -- Logt sich persistent in die Oracle Datenbank ein und erzeugt eine neue Oracle Session.
ociresult -- Gibt einen Spaltenwert für das gefetchte Statement zurück
ocirollback -- Macht ausstehende Transaktionen rückgängig
ocirowcount -- Gibt die Anzahl der betroffenen Zeilen zurück
ocisavelob -- Kommt noch.
ocisavelobfile -- Kommt noch.
ociserverversion -- Return a string containing server version information.
lob->setBuffering -- Changes current state of buffering for large object
ocisetprefetch -- setzt die Anzahl der Zeilen die vorab gefetcht werden sollen
ocistatementtype -- Gibt den Typ eine Statements zurück
ociwritelobtofile -- Kommt noch.
ociwritetemporarylob -- Writes temporary blob

Zurück | Zum Anfang | Nach vorne
deaggregate | Nach oben | oci_bind_by_name


oci_bind_by_name

(PHP 5)

oci_bind_by_name -- Binds the PHP variable to the Oracle placeholder

Description

bool oci_bind_by_name ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]])

oci_bind_by_name() binds the PHP variable variable to the Oracle placeholder ph_name. Whether it will be used for input or output will be determined at run-time and the necessary storage space will be allocated. The length parameter sets the maximum length for the bind. If you set length to -1 oci_bind_by_name() will use the current length of variable to set the maximum length.

If you need to bind an abstract datatype (LOB/ROWID/BFILE) you need to allocate it first using the oci_new_descriptor() function. The length is not used for abstract datatypes and should be set to -1. The type parameter tells Oracle which descriptor is used. Possible values are:

  • OCI_B_FILE - for BFILEs;

  • OCI_B_CFILE - for CFILEs;

  • OCI_B_CLOB - for CLOBs;

  • OCI_B_BLOB - for BLOBs;

  • OCI_B_ROWID - for ROWIDs;

  • OCI_B_NTY - for named datatypes;

  • OCI_B_CURSOR - for cursors, that were created before with oci_new_cursor().

Beispiel 1. oci_bind_by_name()example

<?php
/* oci_bind_by_name example thies at thieso dot net (980221)
  inserts 3 records into emp, and uses the ROWID for updating the
  records just after the insert.
*/

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "
                          INSERT INTO
                                     emp (empno, ename)
                                              VALUES
                                     (:empno,:ename)
                            RETURNING
                                     ROWID
                                 INTO
                                     :rid
                                         ");

$data = array(
              1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim"
             );

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);

oci_bind_by_name($stmt, ":empno", $empno, 32);
oci_bind_by_name($stmt, ":ename", $ename, 32);
oci_bind_by_name($stmt, ":rid",   $rowid, -1, OCI_B_ROWID);

$update = oci_parse($conn, "
                            UPDATE
                                  emp
                               SET
                                  sal = :sal
                             WHERE
                                  ROWID = :rid
                             ");
oci_bind_by_name($update, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($update, ":sal", $sal,   32);

$sal = 10000;

while (list($empno, $ename) = each($data)) {
    oci_execute($stmt);
oci_execute($update);
}

$rowid->free();

oci_free_statement($update);
oci_free_statement($stmt);

$stmt = oci_parse($conn, "
                          SELECT
                                *
                            FROM
                                emp
                           WHERE
                                empno
                              IN
                                (1111,2222,3333)
                              ");
oci_execute($stmt);

while ($row = oci_fetch_assoc($stmt)) {
    var_dump($row);
}

oci_free_statement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = oci_parse($conn, "
                          DELETE FROM
                                     emp
                                WHERE
                                     empno
                                   IN
                                     (1111,2222,3333)
                                   ");
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

Remember, that this function strips trailing whitespace. See the following example:

Beispiel 2. oci_bind_by_name() example

<?php
    $connection = oci_connect('apelsin','kanistra');
    $query = "INSERT INTO test_table VALUES(:id, :text)";

    $statement = oci_parse($query);
    oci_bind_by_name($statement, ":id", 1);
    oci_bind_by_name($statement, ":text", "trailing spaces follow     ");
    oci_execute($statement);
    /*
     This code will insert into DB string 'trailing spaces follow', without
     trailing spaces
    */
?>

Beispiel 3. oci_bind_by_name() example

<?php
    $connection = oci_connect('apelsin','kanistra');
    $query = "INSERT INTO test_table VALUES(:id, 'trailing spaces follow      ')";

    $statement = oci_parse($query);
    oci_bind_by_name($statement, ":id", 1);
    oci_execute($statement);
    /*
     And this code will add 'trailing spaces follow      ', preserving
     trailing whitespaces
    */
?>

Warnung

Do not use magic_quotes_gpc or addslashes() and oci_bind_by_name() simultaneously as no quoting is needed and any magically applied quotes will be written into your database as oci_bind_by_name() is not able to distinguish magically added quotings from those added intentionally.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ocibindbyname() instead. This name still can be used, it was left as alias of oci_bind_by_name() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
Oracle 8 Funktionen | Nach oben | oci_cancel


oci_cancel

(PHP 5)

oci_cancel -- Cancels reading from cursor

Description

bool oci_cancel ( resource stmt)

oci_cancel() invalidates a cursor, freeing all associated resources and cancels the ability to read from it.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

In PHP versions before 5.0.0 you must use ocicancel() instead. This name still can be used, it was left as alias of oci_cancel() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_bind_by_name | Nach oben | oci_close


oci_close

(PHP 5)

oci_close -- Closes Oracle connection

Description

bool oci_close ( resource connection)

oci_close() closes the Oracle connection connection.

Anmerkung: As non-persistent links are closed automatically at the end of script execution, calling this function is not required. Because of this and the method the extension uses to handle connection resources, oci_close() currently provides no actual functionality.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ociclose() instead. This name still can be used, it was left as alias of oci_close() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_cancel | Nach oben | collection->append


collection->append

(no version information, might be only in CVS)

collection->append -- Appends an object to the collection

Description

bool collection->append ( mixed value)

Appends an object to the end of the collection. Parameter value can be a string or a number.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
oci_close | Nach oben | collection->assign


collection->assign

(no version information, might be only in CVS)

collection->assign -- Assigns a value to the collection from another existing collection

Description

bool collection->assign ( object from)

Assigns a value to the collection from another, previously created collection. Both collections must be created with oci_new_collection() prior to using them.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
collection->append | Nach oben | collection->assignElem


collection->assignElem

(no version information, might be only in CVS)

collection->assignElem -- Assigns a value to the element of the collection

Description

bool collection->assignElem ( int index, mixed value)

Assigns a value to the element with index index. Parameter value can be a string or a number.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
collection->assign | Nach oben | collection->getElem


collection->getElem

(no version information, might be only in CVS)

collection->getElem -- Returns value of the element

Description

mixed collection->getElem ( int index)

Method collection->getElem() returns value of the element with index index (1-based).

collection->getElem() will return FALSE if such element doesn't exist; NULL if element is NULL; string if element is column of a string datatype or number if element is numeric field.

collection->getElem() will return FALSE in case of error.

Zurück | Zum Anfang | Nach vorne
collection->assignElem | Nach oben | collection->max


collection->max

(no version information, might be only in CVS)

collection->max -- Gets the maximum number of elements in the collection

Description

int collection->max ( void )

Returns the maximum number of elements in the collection. If the returned value is 0, then the number of elements is not limited. collection->max() returns FALSE in case of error.

See also oci_collection_size().

Zurück | Zum Anfang | Nach vorne
collection->getElem | Nach oben | collection->size


collection->size

(no version information, might be only in CVS)

collection->size -- Returns size of the collection

Description

int collection->size ( void )

Returns the number of elements in the collection.

See also oci_collection_max().

Zurück | Zum Anfang | Nach vorne
collection->max | Nach oben | collection->trim


collection->trim

(no version information, might be only in CVS)

collection->trim -- Trims elements from the end of the collection

Description

bool collection->trim ( int num)

Trims num of elements from the end of the collection.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also oci_collection_size().

Zurück | Zum Anfang | Nach vorne
collection->size | Nach oben | oci_commit


oci_commit

(PHP 5)

oci_commit -- Commits outstanding statements

Description

bool oci_commit ( resource connection)

oci_commit() commits all outstanding statements for the active transaction on the Oracle connection connection.

Beispiel 1. oci_commit() example

<?php
    // Login to Oracle server
    $conn = oci_connect('scott', 'tiger');

    // Parse SQL
    $stmt = oci_parse($conn, "
                              INSERT INTO
                                         employees (name, surname)
                                   VALUES
                                         ('Maxim', 'Maletsky')
                             ");

    /* Execute statement
       OCI_DEFAULT tells oci_execute()
       not to commit statement immediately */
    oci_execute($stmt, OCI_DEFAULT);

    /*
    ....
    Parsing and executing other statements here ...
    ....
    */

    // Commit transaction
    $committed = oci_commit($conn);

    // Test whether commit was successful. If error occurred, return error message
    if (!$committed) {
        $error = oci_error($conn);
        echo 'Commit failed. Oracle reports: ' . $error['message'];
    }

?>

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ocicommit() instead. This name still can be used, it was left as alias of oci_commit() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_rollback() and oci_execute().

Zurück | Zum Anfang | Nach vorne
collection->trim | Nach oben | oci_connect


oci_connect

(PHP 5)

oci_connect -- Establishes a connection to Oracle server

Description

resource oci_connect ( string username, string password [, string db])

oci_connect() returns a connection identifier needed for most other OCI calls. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora to which you want to connect. If the optional third parameter is not specified, PHP uses the environment variables ORACLE_SID (Oracle instance) or TWO_TASK (tnsnames.ora) to determine which database to connect to.

Anmerkung: oci_connect() does not reestablish the connection, if a connection with such parameters was established before. In this case, oci_connect() will return identifier of previously opened connection. This means, that you cannot use this function to separate transactions. To establish a distinctly new connection, use oci_new_connect().

Beispiel 1. oci_connect() example

<?php
echo "<pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " [" . oci_result($stmt, "TEST") . "]\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2

select_data($c1);   // Results of both inserts are returned
select_data($c2);

rollback($c1);      // Rollback using c1

select_data($c1);   // Both inserts have been rolled back
select_data($c2);

insert_data($c2);   // Insert a row using c2
commit($c2);        // Commit using c2

select_data($c1);   // Result of c2 insert is returned

delete_data($c1);   // Delete all rows in table using c1
select_data($c1);   // No rows returned
select_data($c2);   // No rows returned
commit($c1);        // Commit using c1

select_data($c1);   // No rows returned
select_data($c2);   // No rows returned

drop_table($c1);
echo "</pre>";
?>

oci_connect() returns FALSE if an error occured.

Anmerkung: In PHP versions before 5.0.0 you must use ocilogon() instead. This name still can be used, it was left as alias of oci_connect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_pconnect() and oci_new_connect().

Zurück | Zum Anfang | Nach vorne
oci_commit | Nach oben | oci_define_by_name


oci_define_by_name

(PHP 5)

oci_define_by_name -- Uses a PHP variable for the define-step during a SELECT

Description

bool oci_define_by_name ( resource statement, string column_name, mixed &variable [, int type])

oci_define_by_name() defines PHP variables for fetches of SQL-Columns. Be careful that Oracle uses ALL-UPPERCASE column names, whereby in your select you can also write lowercase. oci_define_by_name() expects the column_name to be in uppercase. If you define a variable that doesn't exists in your select statement, no error will issued.

If you need to define an abstract datatype (LOB/ROWID/BFILE) you must allocate it first using oci_new_descriptor(). See also the oci_bind_by_name() function.

Beispiel 1. oci_define_by_name() example

<?php
/* oci_define_by_name example - thies at thieso dot net (980219) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "SELECT empno, ename FROM emp");

/* the define MUST be done BEFORE oci_execute! */

oci_define_by_name($stmt, "EMPNO", $empno);
oci_define_by_name($stmt, "ENAME", $ename);

oci_execute($stmt);

while (oci_fetch($stmt)) {
    echo "empno:" . $empno . "\n";
    echo "ename:" . $ename . "\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>

Anmerkung: In PHP versions before 5.0.0 you must use ocidefinebyname() instead. This name still can be used, it was left as alias of oci_define_by_name() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_connect | Nach oben | oci_error


oci_error

(PHP 5)

oci_error -- Returns the last error found

Description

array ocierror ( [resource source])

oci_error() returns the last error found. If the optional source is not provided, the last error encountered is returned. You can use connection or statement resources as value of parameter source. If no error is found, oci_error() returns FALSE. oci_error() returns the error as an associative array. In this array, code consists the oracle error code and message the oracle error string.

As of PHP 4.3: offset and sqltext will also be included in the return array to indicate the location of the error and the original SQL text which caused it.

Anmerkung: In PHP versions before 5.0.0 you must use ocierror() instead. This name still can be used, it was left as alias of oci_error() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_define_by_name | Nach oben | oci_execute


oci_execute

(PHP 5)

oci_execute -- Executes a statement

Description

bool oci_execute ( resource stmt [, int mode])

oci_execute() executes a previously parsed statement (see oci_parse()). The optional mode allows you to specify the execution mode (default is OCI_COMMIT_ON_SUCCESS). If you don't want statements to be committed automatically, you should specify OCI_DEFAULT as your mode.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ociexecute() instead. This name still can be used, it was left as alias of oci_execute() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_error | Nach oben | oci_fetch_all


oci_fetch_all

(PHP 5)

oci_fetch_all -- Fetches all rows of result data into an array

Description

int oci_fetch_all ( resource statement, array &output [, int skip [, int maxrows [, int flags]]])

oci_fetch_all() fetches all the rows from a result into a user-defined array. oci_fetch_all() returns the number of rows fetched or FALSE in case of error. skip is the number of initial rows to ignore when fetching the result (default value of 0, to start at the first line). maxrows is the number of rows to read, starting at the skipth row (default to -1, meaning all the rows).

Parameter flags can be any combination of the following:

OCI_FETCHSTATEMENT_BY_ROW
OCI_FETCHSTATEMENT_BY_COLUMN (default value)
OCI_NUM
OCI_ASSOC

Beispiel 1. oci_fetch_all() example

<?php
/* oci_fetch_all example mbritton at verinet dot com (990624) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);
if ($nrows > 0) {
   echo "<table border=\"1\">\n";
   echo "<tr>\n";
   while (list($key, $val) = each($results)) {
      echo "<th>$key</th>\n";
   }
   echo "</tr>\n";

   for ($i = 0; $i < $nrows; $i++) {
      reset($results);
      echo "<tr>\n";
      while ($column = each($results)) {
         $data = $column['value'];
         echo "<td>$data[$i]</td>\n";
      }
      echo "</tr>\n";
   }
   echo "</table>\n";
} else {
   echo "No data found<br />\n";
}
echo "$nrows Records Selected<br />\n";

oci_free_statement($stmt);
oci_close($conn);
?>

oci_fetch_all() returns FALSE in case of error.

Anmerkung: In PHP versions before 5.0.0 you must use ocifetchstatement() instead. This name still can be used, it was left as alias of oci_fetch_all() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_execute | Nach oben | oci_fetch_array


oci_fetch_array

(PHP 5)

oci_fetch_array -- Returns the next row from the result data as an associative or numeric array, or both

Description

array oci_fetch_array ( resource statement [, int mode])

Returns an array, which corresponds to the next result row or FALSE in case of error or there is no more rows in the result.

oci_fetch_array() returns an array with both associative and numeric indices.

Optional second paramater can be any combination of the following constants:

OCI_BOTH - return an array with both associative and numeric indices (the same as OCI_ASSOC + OCI_NUM). This is the default behavior.
OCI_ASSOC - return an associative array (as oci_fetch_assoc() works).
OCI_NUM - return a numeric array, (as oci_fetch_row() works).
OCI_RETURN_NULLS - create empty elements for the NULL fields.
OCI_RETURN_LOBS - return the value of a LOB of the descriptor.

Default mode is OCI_BOTH.

It should be mentioned here, that oci_fetch_array() is insignificantly slower, than oci_fetch_row(), but much more handy.

Anmerkung: Don't forget, that Oracle returns all field names in uppercase and associative indices in the result array will be uppercased too.

Beispiel 1. oci_fetch_array() with OCI_BOTH example

<?php
$connection = oci_connect("apelsin", "kanistra");

$query = "SELECT id, name FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_BOTH)) {
    echo $row[0]." and ".$row['ID']." is the same<br>";
    echo $row[1]." and ".$row['NAME']." is the same<br>";
}
?>

Beispiel 2. oci_fetch_array() with OCI_NUM example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row[2]->read(100)."<br>";  //this will output first 100 bytes from LOB
}
?>

Beispiel 3. oci_fetch_array() with OCI_ASSOC example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row['ID']."<br>";
    echo $row['NAME']."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output "Object id #1"
}
?>

Beispiel 4. oci_fetch_array() with OCI_RETURN_LOBS example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output LOB's content
}
?>

See also oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row() and
oci_fetch_all().

Zurück | Zum Anfang | Nach vorne
oci_fetch_all | Nach oben | oci_fetch_assoc


oci_fetch_assoc

(PHP 5)

oci_fetch_assoc -- Returns the next row from the result data as an associative array

Description

array oci_fetch_assoc ( resource statement)

oci_fetch_assoc() returns the next row from the result data as an associative array (identical to oci_fetch_array() call with OCI_ASSOC flag).

Subsequent call to oci_fetch_assoc() will return next row or FALSE if there is no more rows.

Anmerkung: Don't forget, that Oracle returns all field names in uppercase and associative indices in the result array will be uppercased too.

See also oci_fetch_array(),
oci_fetch_object(),
oci_fetch_row() and
oci_fetch_all().

Zurück | Zum Anfang | Nach vorne
oci_fetch_array | Nach oben | oci_fetch_object


oci_fetch_object

(PHP 5)

oci_fetch_object -- Returns the next row from the result data as an object

Description

object oci_fetch_object ( resource statement)

oci_fetch_object() returns the next row from the result data as an object, which attributes correspond to fields in statement.

Subsequent calls to oci_fetch_object() will return the next row from the result or FALSE if there is no more rows.

Anmerkung: Don't forget, that Oracle returns all field names in uppercase and attributes' names in the result object will be in uppercase as well.

See also oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_row() and
oci_fetch_all().

Zurück | Zum Anfang | Nach vorne
oci_fetch_assoc | Nach oben | oci_fetch_row


oci_fetch_row

(PHP 5)

oci_fetch_row -- Returns the next row from the result data as a numeric array

Description

array oci_fetch_row ( resource statement)

Calling oci_fetch_row() is identical to oci_fetch_array() with OCI_NUM flag and returns the next row from the result data as a numeric array.

Subsequent calls to oci_fetch_row() will return the next row from the result data or FALSE if there is no more rows.

See also oci_fetch_array(),
oci_fetch_object(),
oci_fetch_assoc() and
oci_fetch_all().

Zurück | Zum Anfang | Nach vorne
oci_fetch_object | Nach oben | oci_fetch


oci_fetch

(PHP 5)

oci_fetch -- Fetches the next row into result-buffer

Description

bool oci_fetch ( resource statement)

oci_fetch() fetches the next row (for SELECT statements) into the internal result-buffer.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ocifetch() instead. This name still can be used, it was left as alias of oci_fetch() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_fetch_row | Nach oben | oci_field_is_null


oci_field_is_null

(PHP 5)

oci_field_is_null -- Checks if the field is NULL

Description

bool oci_field_is_null ( resource stmt, mixed field)

oci_field_is_null() returns TRUE if field field from the statement is NULL. Parameter field could be a field's index or a field's name (uppercased).

Anmerkung: In PHP versions before 5.0.0 you must use ocicolumnisnull() instead. This name still can be used, it was left as alias of oci_field_is_null() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_fetch | Nach oben | oci_field_name


oci_field_name

(PHP 5)

oci_field_name -- Returns the name of a field from the statement

Description

string oci_field_name ( resource statement, int field)

oci_field_name() returns the name of the field corresponding to the field number (1-based).

Beispiel 1. oci_field_name() example

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";
    oci_free_statement($stmt);
    oci_close($conn);
?>

Anmerkung: In PHP versions before 5.0.0 you must use ocicolumnname() instead. This name still can be used, it was left as alias of oci_field_name() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_num_fields(),
oci_field_type(),
and oci_field_size().

Zurück | Zum Anfang | Nach vorne
oci_field_is_null | Nach oben | oci_field_precision


oci_field_precision

(PHP 5)

oci_field_precision -- Tell the precision of a field

Description

int oci_field_precision ( resource statement, int field)

Returns precision of the field with field index (1-based).

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Anmerkung: In PHP versions before 5.0.0 you must use ocicolumnprecision() instead. This name still can be used, it was left as alias of oci_field_precision() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_field_scale() and oci_field_type().

Zurück | Zum Anfang | Nach vorne
oci_field_name | Nach oben | oci_field_scale


oci_field_scale

(PHP 5)

oci_field_scale -- Tell the scale of the field

Description

int oci_field_scale ( resource statement, int field)

Returns scale of the column with field index (1-based) or FALSE if there is no such field.

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Anmerkung: In PHP versions before 5.0.0 you must use ocicolumnscale() instead. This name still can be used, it was left as alias of oci_field_scale() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_field_precision() and oci_field_type().

Zurück | Zum Anfang | Nach vorne
oci_field_precision | Nach oben | oci_field_size


oci_field_size

(PHP 5)

oci_field_size -- Returns field's size

Description

int oci_field_size ( resource stmt, mixed field)

oci_field_size() returns the size of a field in bytes. Value of field parameter can be the field's index (1-based) or it's name.

Beispiel 1. oci_field_size()example

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);
        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Anmerkung: In PHP versions before 5.0.0 you must use ocicolumnsize() instead. This name still can be used, it was left as alias of oci_field_size() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_num_fields() and oci_field_name().

Zurück | Zum Anfang | Nach vorne
oci_field_scale | Nach oben | oci_field_type_raw


oci_field_type_raw

(PHP 5)

oci_field_type_raw -- Tell the raw Oracle data type of the field

Description

int oci_field_type_raw ( resource statement, int field)

oci_field_type_raw() returns Oracle's raw data type of the field.

Anmerkung: In PHP versions before 5.0.0 you must use ocicolumntyperaw() instead. This name still can be used, it was left as alias of oci_field_type_raw() for downwards compatability. This, however, is deprecated and not recommended.

However, if you want to get field's type, then oci_field_type() will suit you better. See oci_field_type() for additional information.

Zurück | Zum Anfang | Nach vorne
oci_field_size | Nach oben | oci_field_type


oci_field_type

(PHP 5)

oci_field_type -- Returns field's data type

Description

mixed ocicolumntype ( resource stmt, int field)

oci_field_type() returns a field's data type. Parameter field is an index of the field in the statement (1-based).

Beispiel 1. oci_field_type() example

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Anmerkung: In PHP versions before 5.0.0 you must use ocicolumntype() instead. This name still can be used, it was left as alias of oci_field_type() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_num_fields(),
oci_field_name(),
and oci_field_size().

Zurück | Zum Anfang | Nach vorne
oci_field_type_raw | Nach oben | collection->free


collection->free

(no version information, might be only in CVS)

collection->free -- Frees resources associated with collection object

Description

bool collection->free ( void )

Frees resources associated with collection object.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
oci_field_type | Nach oben | descriptor->free


descriptor->free

(no version information, might be only in CVS)

descriptor->free -- Frees resources associated with descriptor

Description

bool descriptor->free ( void )

descriptor->free() frees resources associated with descriptor, previously allocated with oci_new_descriptor().

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
collection->free | Nach oben | oci_free_statement


oci_free_statement

(PHP 5)

oci_free_statement -- Frees all resources associated with statement or cursor

Description

bool oci_free_statement ( resource statement)

oci_free_statement() frees resources associated with Oracle's cursor or statement, which was received from as a result of oci_parse() or obtained from Oracle.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
descriptor->free | Nach oben | oci_internal_debug


oci_internal_debug

(PHP 5)

oci_internal_debug -- Enables or disables internal debug output

Description

void oci_internal_debug ( int onoff)

oci_internal_debug() enables or disables internal debug output. Set onoff to 0 to turn debug output off or 1 to turn it on.

Anmerkung: In PHP versions before 5.0.0 you must use ociinternaldebug() instead. This name still can be used, it was left as alias of oci_internal_debug() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_free_statement | Nach oben | lob->append


lob->append

(no version information, might be only in CVS)

lob->append -- Appends data from the large object to another large object

Description

bool lob->append ( object lob_from)

Appends data from the large object to the end of another large object.

Writing to the large object with lob->append() will fail if buffering was previously enabled. You must disable buffering before appending. You may need to flush buffers with oci_lob_flush() before disabling buffering.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also oci_lob_flush(),
ocisetbufferinglob() and
ocigetbufferinglob().

Zurück | Zum Anfang | Nach vorne
oci_internal_debug | Nach oben | lob->close


lob->close

(no version information, might be only in CVS)

lob->close -- Closes LOB descriptor

Description

bool lob->close ( void )

lob->close() closes descriptor of LOB or FILE. This function should be used only with lob->writeTemporary().

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ocicloselob() instead. This name still can be used, it was left as alias of oci_lob_close() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_lob_write_temporary().

Zurück | Zum Anfang | Nach vorne
lob->append | Nach oben | oci_lob_copy


oci_lob_copy

(PHP 5)

oci_lob_copy -- Copies large object

Description

bool oci_lob_copy ( [int length])

Copies large object or a part of large object to another large object. Parameter length indicates the length of data to be copied. Old data of LOB-recipient will be overwritten.

If you need to copy a particular part of LOB to a particular position of LOB, you can use oci_lob_seek() to move internal pointers of LOBs.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
lob->close | Nach oben | lob->eof


lob->eof

(no version information, might be only in CVS)

lob->eof -- Tests for end-of-file on a large object's descriptor

Description

bool lob->eof ( void )

Returns TRUE if internal pointer of large object is at the end of LOB. Otherwise returns FALSE.

See also oci_lob_size().

Zurück | Zum Anfang | Nach vorne
oci_lob_copy | Nach oben | lob->erase


lob->erase

(no version information, might be only in CVS)

lob->erase -- Erases a specified portion of the internal LOB data

Description

int lob->erase ( [int offset [, int length]])

Erases a specified portion of the internal LOB data starting at a specified offset. Parameters length and offset are optional. lob->erase() erases all LOB data by default.

For BLOBs, erasing means that the existing LOB value is overwritten with zero-bytes. For CLOBs, the existing LOB value is overwritten with spaces.

lob->erase() returns the actual number of characters/bytes erased or FALSE in case of error.

Zurück | Zum Anfang | Nach vorne
lob->eof | Nach oben | lob->export


lob->export

(no version information, might be only in CVS)

lob->export -- Exports LOB's contents to a file

Description

bool ociwritelobtofile ( string filename [, int start [, int length]])

Exports LOB's contents to a file, which name is given in parameter filename. Optional parameter start indicates from what position to start export and parameter length - length of data to be exported.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
lob->erase | Nach oben | lob->flush


lob->flush

(no version information, might be only in CVS)

lob->flush -- Flushes/writes buffer of the LOB to the server

Description

bool lob->flush ( [int flag])

lob->flush() actually writes data to the server. By default, resources are not freed, but using flag OCI_LOB_BUFFER_FREE you can do it explicitly. Be sure you know what you're doing - next read/write operation to the same part of LOB will involve a round-trip to the server and initialize new buffer resources. Tt is recommended to use OCI_LOB_BUFFER_FREE flag only when you are not going to work with the LOB anymore.

lob->flush() returns FALSE if buffering was not enabled or an error occurred.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
lob->export | Nach oben | lob->import


lob->import

(no version information, might be only in CVS)

lob->import -- Imports file data to the LOB

Description

bool lob->import ( string filename)

Writes data from filename in to the current position of large object.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ocisavelobfile() instead. This name still can be used, it was left as alias of oci_lob_import() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
lob->flush | Nach oben | oci_lob_is_equal


oci_lob_is_equal

(PHP 5)

oci_lob_is_equal -- Compares two LOB/FILE locators for equality

Description

bool oci_lob_is_equal ( object lob1, object lob2)

Compares two LOB/FILE locators. Returns TRUE if these objects are equal and FALSE otherwise.

Zurück | Zum Anfang | Nach vorne
lob->import | Nach oben | lob->load


lob->load

(no version information, might be only in CVS)

lob->load -- Returns large object's contents

Description

string lob->load ( void )

Returns large object's contents. As script execution is terminated when the memory_limit is reached, ensure that the LOB does not exceed this limit. In most cases it's recommended to use oci_lob_read() instead. In case of error lob->load() returns FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ociloadlob() instead. This name still can be used, it was left as alias of oci_lob_load() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_lob_is_equal | Nach oben | lob->read


lob->read

(no version information, might be only in CVS)

lob->read -- Reads part of large object

Description

string lob->read ( int length)

Reads length bytes from the current position of LOB's internal pointer. Reading stops when length bytes have been read or end of large object is reached. Internal pointer of large object will be shifted on the amount of bytes read.

Returns FALSE in case of error.

See also oci_lob_eof(),
oci_lob_seek(),
oci_lob_tell() and
oci_lob_write().

Zurück | Zum Anfang | Nach vorne
lob->load | Nach oben | lob->rewind


lob->rewind

(no version information, might be only in CVS)

lob->rewind -- Moves the internal pointer to the beginning of the large object

Description

bool lob->rewind ( void )

Sets the internal pointer to the beginning of the large object.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also oci_lob_seek() and oci_lob_tell().

Zurück | Zum Anfang | Nach vorne
lob->read | Nach oben | lob->save


lob->save

(no version information, might be only in CVS)

lob->save -- Saves data to the large object

Description

bool lob->save ( string data [, int offset])

Saves data to the large object. Parameter offset can be used to indicate offset from the beginning of the large object.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ocisavelob() instead. This name still can be used, it was left as alias of oci_lob_save() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_lob_write() and oci_lob_import().

Zurück | Zum Anfang | Nach vorne
lob->rewind | Nach oben | lob->seek


lob->seek

(no version information, might be only in CVS)

lob->seek -- Sets the internal pointer of the large object

Description

bool lob->seek ( int offset [, int whence])

Sets the internal pointer of the large object. Parameter offset indicates the amount of bytes, on which internal pointer should be moved from the position, pointed by whence:

OCI_SEEK_SET - sets the position equal to offset
OCI_SEEK_CUR - adds offset bytes to the current position
OCI_SEEK_END - adds offset bytes to the end of large object (use negative value to move to a position before the end of large object)

See also oci_lob_rewind() and oci_lob_tell().

Zurück | Zum Anfang | Nach vorne
lob->save | Nach oben | lob->size


lob->size

(no version information, might be only in CVS)

lob->size -- Returns size of large object

Description

int lob->size ( void )

Returns length of large object value or FALSE in case of error. Empty objects have zero length.

Zurück | Zum Anfang | Nach vorne
lob->seek | Nach oben | lob->tell


lob->tell

(no version information, might be only in CVS)

lob->tell -- Returns current position of internal pointer of large object

Description

int lob->tell ( void )

Returns current position of a LOB's internal pointer or FALSE if an error occured.

See also oci_lob_size() and oci_lob_eof().

Zurück | Zum Anfang | Nach vorne
lob->size | Nach oben | lob->truncate


lob->truncate

(no version information, might be only in CVS)

lob->truncate -- Truncates large object

Description

bool lob->truncate ( [int length])

If parameter length is given, lob->truncate() truncates large object to length bytes. Otherwise, lob->truncate() will purge the LOB completely.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also oci_lob_erase().

Zurück | Zum Anfang | Nach vorne
lob->tell | Nach oben | lob->writeTemporary


lob->writeTemporary

(no version information, might be only in CVS)

lob->writeTemporary -- Writes temporary large object

Description

bool lob->writeTemporary ( string data [, int lob_type])

Creates a temporary large object and writes data to it.

Parameter lob_type can be one of the following:

OCI_TEMP_BLOB is used to create temporary BLOBs
OCI_TEMP_CLOB is used to create temporary CLOBs

lob->writeTemporary() creates a CLOB by default.

You should use oci_lob_close() when the work with the object is over.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ociwritetemporarylob() instead. This name still can be used, it was left as alias of oci_lob_write_temporary() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_lob_close().

Zurück | Zum Anfang | Nach vorne
lob->truncate | Nach oben | lob->write


lob->write

(no version information, might be only in CVS)

lob->write -- Writes data to the large object

Description

int lob->write ( string data [, int length])

Writes data from the parameter data into the current position of LOB's internal pointer. If the parameter length is given, writing will stop after length bytes have been written or the end of data is reached, whichever comes first.

lob->write() returns the number of bytes written or FALSE in case of error.

See also oci_lob_read().

Zurück | Zum Anfang | Nach vorne
lob->writeTemporary | Nach oben | oci_new_collection


oci_new_collection

(PHP 5)

oci_new_collection -- Allocates new collection object

Description

object oci_new_collection ( resource connection, string tdo [, string schema])

Allocates new collection object. Parameter tdo should be a valid named type (uppercased). Third, optional parameter schema should point to the scheme, where the named type was created. oci_new_collection() uses name of the current user as default value of schema.

oci_new_collection() returns FALSE on error.

Anmerkung: In PHP versions before 5.0.0 you must use ocinewcollection() instead. This name still can be used, it was left as alias of oci_new_collection() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
lob->write | Nach oben | oci_new_connect


oci_new_connect

(PHP 5)

oci_new_connect -- Establishes a new connection to the Oracle server

Description

resource oci_new_connect ( string username, string password [, string db])

oci_new_connect() creates a new connection to an Oracle server and logs on. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora. If the third parameter is not specified, PHP uses environment variables ORACLE_SID and TWO_TASK to determine the name of local Oracle instance and location of tnsnames.ora accordingly.

oci_new_connect() forces the creation of a new connection. This should be used if you need to isolate a set of transactions. By default, connections are shared and subsequent calls to oci_connect() will return the same connection identifier.

The following demonstrates how you can separate connections.

Beispiel 1. oci_new_connect() example

<?php
echo "<html><pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test
varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . "----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo "</pre></html>";
?>

oci_new_connect() returns FALSE on error.

Anmerkung: In PHP versions before 5.0.0 you must use ocinlogon() instead. This name still can be used, it was left as alias of oci_new_connect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_connect() and oci_pconnect().

Zurück | Zum Anfang | Nach vorne
oci_new_collection | Nach oben | oci_new_cursor


oci_new_cursor

(PHP 5)

oci_new_cursor -- Allocates and returns a new cursor (statement handle)

Description

resource oci_new_cursor ( resource connection)

oci_new_cursor() allocates a new statement handle on the specified connection.

Beispiel 1. Using REF CURSOR in an Oracle's stored procedure

<?php
// suppose your stored procedure info.output returns a ref cursor in :data

$conn = oci_connect("scott", "tiger");
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin info.output(:data); end;");

oci_bind_by_name($stmt, "data", &$curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);

while ($data = oci_fetch_row($curs)) {
    var_dump($data);
}

oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);
?>

Beispiel 2. Using REF CURSOR in an Oracle's select statement

<?php
echo "<html><body>";
$conn = oci_connect("scott", "tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = oci_parse($conn, "select deptno,dname,$count_cursor");

oci_execute($stmt);
echo "<table border=\"1\">";
echo "<tr>";
echo "<th>DEPT NAME</th>";
echo "<th>DEPT #</th>";
echo "<th># EMPLOYEES</th>";
echo "</tr>";

while ($data = oci_fetch_assoc($stmt)) {
    echo "<tr>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    echo "<td>$dname</td>";
    echo "<td>$deptno</td>";
    oci_execute($data["EMPCNT"]);
    while ($subdata = oci_fetch_assoc($data["EMPCNT"])) {
        $num_emps = $subdata["NUM_EMPS"];
        echo  "<td>$num_emps</td>";
    }
    echo "</tr>";
}
echo "</table>";
echo "</body></html>";
oci_free_statement($stmt);
oci_close($conn);
?>

oci_new_cursor() returns FALSE on error.

Anmerkung: In PHP versions before 5.0.0 you must use ocinewcursor() instead. This name still can be used, it was left as alias of oci_new_cursor() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_new_connect | Nach oben | oci_new_descriptor


oci_new_descriptor

(PHP 5)

oci_new_descriptor -- Initializes a new empty LOB or FILE descriptor

Description

object oci_new_descriptor ( resource connection [, int type])

oci_new_descriptor() allocates resources to hold descriptor or LOB locator. Valid values for type are: OCI_D_FILE, OCI_D_LOB and OCI_D_ROWID.

Beispiel 1. oci_new_descriptor() example

<?php
    /* This script is designed to be called from a HTML form.
     * It expects $user, $password, $table, $where, and $commitsize
     * to be passed in from the form.  The script then deletes
     * the selected rows using the ROWID and commits after each
     * set of $commitsize rows. (Use with care, there is no rollback)
     */
    $conn = oci_connect($user, $password);
    $stmt = oci_parse($conn, "select rowid from $table $where");
    $rowid = oci_new_descriptor($conn, OCI_D_ROWID);
    oci_define_by_name($stmt, "ROWID", $rowid);
    oci_execute($stmt);
    while (oci_fetch($stmt)) {
       $nrows = oci_num_rows($stmt);
       $delete = oci_parse($conn, "delete from $table where ROWID = :rid");
       oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
       oci_execute($delete);
       echo "$nrows\n";
       if (($nrows % $commitsize) == 0) {
           oci_commit($conn);
       }
    }
    $nrows = oci_num_rows($stmt);
    echo "$nrows deleted...\n";
    oci_free_statement($stmt);
    oci_close($conn);
?>
<?php
    /* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <form action="upload.php" method="post" enctype="multipart/form-data">
     * <input type="file" name="lob_upload" />
     * ...
     */
  if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
  } else {

     // $lob_upload contains the temporary filename of the uploaded file

     // see also the features section on file upload,
     // if you would like to use secure uploads

     $conn = oci_connect($user, $password);
     $lob = oci_new_descriptor($conn, OCI_D_LOB);
     $stmt = oci_parse($conn, "insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);
     oci_execute($stmt, OCI_DEFAULT);
     if ($lob->savefile($lob_upload)){
        oci_execute($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     oci_free_descriptor($lob);
     oci_free_statement($stmt);
     oci_close($conn);
  }
?>

Beispiel 2. oci_new_descriptor() example

<?php
    /* Calling PL/SQL stored procedures which contain clobs as input
     * parameters (PHP 4 >= 4.0.6).
     * Example PL/SQL stored procedure signature is:
     *
     * PROCEDURE save_data
     *   Argument Name                  Type                    In/Out Default?
     *   ------------------------------ ----------------------- ------ --------
     *   KEY                            NUMBER(38)              IN
     *   DATA                           CLOB                    IN
     *
     */

    $conn = oci_connect($user, $password);
    $stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
    $clob = oci_new_descriptor($conn, OCI_D_LOB);
    oci_bind_by_name($stmt, ':key', $key);
    oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
    $clob->write($data);
    oci_execute($stmt, OCI_DEFAULT);
    oci_commit($conn);
    $clob->free();
    oci_free_statement($stmt);
?>

oci_new_descriptor() returns FALSE on error.

Anmerkung: In PHP versions before 5.0.0 you must use ocinewdescriptor() instead. This name still can be used, it was left as alias of oci_new_descriptor() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_new_cursor | Nach oben | oci_num_fields


oci_num_fields

(PHP 5)

oci_num_fields -- Returns the number of result columns in a statement

Description

int oci_num_fields ( resource statement)

oci_num_fields() returns the number of columns in the statement.

Beispiel 1. oci_num_fields() example

<?php
    echo "<pre>\n";
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "select * from emp");

    oci_execute($stmt);

    while (oci_fetch($stmt)) {
        echo "\n";
        $ncols = oci_num_fields($stmt);
        for ($i = 1; $i <= $ncols; $i++) {
            $column_name  = oci_field_name($stmt, $i);
            $column_value = oci_result($stmt, $i);
            echo $column_name . ': ' . $column_value . "\n";
        }
        echo "\n";
    }

    oci_free_statement($stmt);
    oci_close($conn);

    echo "</pre>";
?>

oci_num_fields() returns FALSE on error.

Anmerkung: In PHP versions before 5.0.0 you must use ocinumcols() instead. This name still can be used, it was left as alias of oci_num_fields() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_new_descriptor | Nach oben | oci_num_rows


oci_num_rows

(PHP 5)

oci_num_rows -- Returns number of rows affected during statement execution

Description

int oci_num_rows ( resource stmt)

oci_num_rows() returns number of rows affected during statement execution.

Anmerkung: This function does not return number of rows selected! For SELECT statements this function will return the number of rows, that were fetched to the buffer with oci_fetch*() functions.

Beispiel 1. oci_num_rows() example

<?php
    echo "<pre>";
    $conn = oci_connect("scott", "tiger");

    $stmt = oci_parse($conn, "create table emp2 as select * from emp");
    oci_execute($stmt);
    echo oci_num_rows($stmt) . " rows inserted.<br />";
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "delete from emp2");
    oci_execute($stmt, OCI_DEFAULT);
    echo oci_num_rows($stmt) . " rows deleted.<br />";
    oci_commit($conn);
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "drop table emp2");
    oci_execute($stmt);
    oci_free_statement($stmt);

    oci_close($conn);
    echo "</pre>";
?>

oci_num_rows() returns FALSE on error.

Anmerkung: In PHP versions before 5.0.0 you must use ocirowcount() instead. This name still can be used, it was left as alias of oci_num_rows() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_num_fields | Nach oben | oci_parse


oci_parse

(PHP 5)

oci_parse -- Prepares Oracle statement for execution

Description

resource oci_parse ( resource connection, string query)

oci_parse() prepares the query using connection and returns the statement identifier, which can be used with oci_bind_by_name(), oci_execute() and other functions.

Anmerkung: This function does not validate query. The only way to find out if query is valid SQL or PL/SQL statement - is to execute it.

oci_parse() returns FALSE on error.

Anmerkung: In PHP versions before 5.0.0 you must use ociparse() instead. This name still can be used, it was left as alias of oci_parse() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_num_rows | Nach oben | oci_password_change


oci_password_change

(PHP 5)

oci_password_change -- Changes password of Oracle's user

Description

bool oci_password_change ( resource connection, string username, string old_password, string new_password)

Changes password for user with username. Parameters old_password and new_password should indicate old and new passwords respectively.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ocipasswordchange() instead. This name still can be used, it was left as alias of oci_password_change() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_parse | Nach oben | oci_pconnect


oci_pconnect

(PHP 5)

oci_pconnect -- Connect to an Oracle database using a persistent connection

Description

resource oci_pconnect ( string username, string password [, string db])

oci_pconnect() creates a new persistent connection to an Oracle server and logs on. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora. If the third parameter is not specified, PHP uses environment variables ORACLE_SID and TWO_TASK to determine the name of local Oracle instance and location of tnsnames.ora accordingly.

oci_pconnect() returns connection identifier or FALSE on error.

Anmerkung: Note, that these kind of links only work if you are using a module version of PHP. See the Persistent Database Connections section for more information.

Anmerkung: In PHP versions before 5.0.0 you must use ociplogon() instead. This name still can be used, it was left as alias of oci_pconnect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_connect() and oci_new_connect().

Zurück | Zum Anfang | Nach vorne
oci_password_change | Nach oben | oci_result


oci_result

(PHP 5)

oci_result -- Returns field's value from the fetched row

Description

mixed oci_result ( resource statement, mixed field)

oci_result() returns the data from the field field in the current row, fetched by oci_fetch(). oci_result() returns everything as strings except for abstract types (ROWIDs, LOBs and FILEs). oci_result() returns FALSE on error.

You can either use the column number (1-based) or the column name (in uppercase) for the field() parameter.

Anmerkung: In PHP versions before 5.0.0 you must use ociresult() instead. This name still can be used, it was left as alias of oci_result() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row() and
oci_fetch_all().

Zurück | Zum Anfang | Nach vorne
oci_pconnect | Nach oben | oci_rollback


oci_rollback

(PHP 5)

oci_rollback -- Rolls back outstanding transaction

Description

bool oci_rollback ( resource connection)

oci_rollback() rolls back all outstanding statements for Oracle connection connection.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: In PHP versions before 5.0.0 you must use ocirollback() instead. This name still can be used, it was left as alias of oci_rollback() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_commit().

Zurück | Zum Anfang | Nach vorne
oci_result | Nach oben | oci_server_version


oci_server_version

(PHP 5)

oci_server_version -- Returns server version

Description

string oci_server_version ( resource connection)

Returns a string with version information of the Oracle server, which uses connection connection or returns FALSE on error.

Beispiel 1. oci_server_version() example

<?php
    $conn = oci_connect("scott", "tiger");
    echo "Server Version: " . oci_server_version($conn);
    oci_close($conn);
?>

Anmerkung: In PHP versions before 5.0.0 you must use ociserverversion() instead. This name still can be used, it was left as alias of oci_server_version() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_rollback | Nach oben | oci_set_prefetch


oci_set_prefetch

(PHP 5)

oci_set_prefetch -- Sets number of rows to be prefetched

Description

bool oci_set_prefetch ( resource statement [, int rows])

Sets the number of rows to be prefetched after successful call to oci_execute(). The default value for rows is 1.

Anmerkung: In PHP versions before 5.0.0 you must use ocisetprefetch() instead. This name still can be used, it was left as alias of oci_set_prefetch() for downwards compatability. This, however, is deprecated and not recommended.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
oci_server_version | Nach oben | oci_statement_type


oci_statement_type

(PHP 5)

oci_statement_type -- Returns the type of an OCI statement

Description

string oci_statement_type ( resource statement)

oci_statement_type() returns the query type of statement statement as one of the following values:

  1. SELECT

  2. UPDATE

  3. DELETE

  4. INSERT

  5. CREATE

  6. DROP

  7. ALTER

  8. BEGIN

  9. DECLARE

  10. UNKNOWN

Parameter statement is a valid OCI statement identifier, returned from oci_parse().

Beispiel 1. oci_statement_type() example

<?php
    $conn = oci_connect("scott", "tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = oci_parse($conn, $sql);
    if (oci_statement_type($stmt) == "DELETE") {
        die("You are not allowed to delete from this table<br />");
    }

    oci_close($conn);
?>

oci_statement_type() returns FALSE on error.

Anmerkung: In PHP versions before 5.0.0 you must use ocistatementtype() instead. This name still can be used, it was left as alias of oci_statement_type() for downwards compatability. This, however, is deprecated and not recommended.

Zurück | Zum Anfang | Nach vorne
oci_set_prefetch | Nach oben | ocibindbyname


ocibindbyname

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocibindbyname -- Bindet eine PHP-Variable an einen Oracle Platzhalter

Beschreibung

int OCIBindByName ( int stmt, string Platzhaltername, mixed & Variable, int Länge [, int Typ])

OCIBindByName() bindet die PHP Variable variable an den Oracle Platzhalter ph_name. Es wird genutzt um den benötigten Speicherplatz fuer die Ein/Ausgabe zu Laufzeit festzulegen. length gibt dabei die maximale Grösse des Speicherplatzes an. Wenn length auf -1 gesetzt wird, nimmt OCIBindByName() die Grösse des Inhalts von variable als maximale Grösse.

Wenn ein abstrakter Datentyp wie (LOB/ROWID/BFILE) gebunden werden soll, muss zuerst OCINewDescriptor() verwendet werden. length gilt nicht für abstrakte Datentypen und sollte denn auf -1 gesetzt sein. type zeigt Oracle, welchen Typ wir binden wollen. Mögliche Typen sind: OCI_B_FILE (Binärdatei), OCI_B_CFILE (Textdatei), OCI_B_CLOB (Text-LOB), OCI_B_BLOB (Binär-LOB) and OCI_B_ROWID (ROWID).

Beispiel 1. OCIDefineByName

<?php
/* OCIBindByPos example thies@thieso.net (980221)

  trägt 3 Datensätze in emp ein und benutzt ROWID für das UPDATE nach dem
  INSERT
*/

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"insert into emp (empno, ename) ".
                       "values (:empno,:ename) ".
                       "returning ROWID into :rid");

$data = array(1111 => "Larry", 2222 => "Bill", 3333 => "Jim");

$rowid = OCINewDescriptor($conn,OCI_D_ROWID);

OCIBindByName($stmt,":empno",&$empno,32);
OCIBindByName($stmt,":ename",&$ename,32);
OCIBindByName($stmt,":rid",&$rowid,-1,OCI_B_ROWID);

$update = OCIParse($conn,"update emp set sal = :sal where ROWID = :rid");
OCIBindByName($update,":rid",&$rowid,-1,OCI_B_ROWID);
OCIBindByName($update,":sal",&$sal,32);

$sal = 10000;

while (list($empno,$ename) = each($data)) {
    OCIExecute($stmt);
    OCIExecute($update);
}

$rowid->free();

OCIFreeStatement($update);
OCIFreeStatement($stmt);

$stmt = OCIParse($conn,"select * from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
while (OCIFetchInto($stmt,&$arr,OCI_ASSOC)) {
    var_dump($arr);
}
OCIFreeStatement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = OCIParse($conn,"delete from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
OCIFreeStatement($stmt);

OCILogoff($conn);
?>

Zurück | Zum Anfang | Nach vorne
oci_statement_type | Nach oben | ocicancel


ocicancel

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocicancel -- bricht das lesen von einem cursor ab

Beschreibung

int OCICancel ( int stmt)

Wenn keine weiteren Zeilen gefetched werden sollen, kann der Cursor durch OCICancel() abgebrochen werden.

Zurück | Zum Anfang | Nach vorne
ocibindbyname | Nach oben | ocicloselob


ocicloselob

(no version information, might be only in CVS)

ocicloselob -- Closes lob descriptor

Description

bool ocicloselob ( void )

Anmerkung: This function was renamed to oci_lob_close() after PHP >= 5.0.0. For downward compatibility ocicloselob() can also be used. This is deprecated, however.

Zurück | Zum Anfang | Nach vorne
ocicancel | Nach oben | ocicollappend


ocicollappend

(PHP 4 >= 4.0.6, PHP 5)

ocicollappend -- Append an object to the collection

Description

bool ocicollappend ( string value)

Anmerkung: This function was renamed to oci_collection_append() after PHP >= 5.0.0. For downward compatibility ocicollappend() can also be used. This is deprecated, however.

Zurück | Zum Anfang | Nach vorne
ocicloselob | Nach oben | ocicollassign


ocicollassign

(PHP 4 >= 4.0.6)

ocicollassign -- Kommt noch.

Beschreibung

string OCICollAssign ( object collection, object object)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocicollappend | Nach oben | ocicollassignelem


ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollassignelem -- Kommt noch.

Beschreibung

string OCICollAssignElem ( object collection, string ndx, string val)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocicollassign | Nach oben | ocicollgetelem


ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollgetelem -- Kommt noch.

Beschreibung

string OCICollGetElem ( object collection, string ndx)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocicollassignelem | Nach oben | ocicollmax


ocicollmax

(PHP 4 >= 4.0.6, PHP 5)

ocicollmax -- Kommt noch.

Beschreibung

string OCICollMax ( object collection)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocicollgetelem | Nach oben | ocicollsize


ocicollsize

(PHP 4 >= 4.0.6, PHP 5)

ocicollsize -- Kommt noch.

Beschreibung

string OCICollSize ( object collection)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocicollmax | Nach oben | ocicolltrim


ocicolltrim

(PHP 4 >= 4.0.6, PHP 5)

ocicolltrim -- Kommt noch.

Beschreibung

string OCICollTrim ( object collection, int num)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocicollsize | Nach oben | ocicolumnisnull


ocicolumnisnull

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumnisnull -- Testet eine Spalte ob deren Inhalt NULL ist

Beschreibung

int OCIColumnIsNULL ( int stmt, mixed column)

OCIColumnIsNULL() gibt TRUE zurück, wenn die Spalte col vom Statement stmt NULL ist. Für den Parameter column kann wahlweise die Splatennummer (beginnend bei 1) oder der Spaltenname genommen werden.

Zurück | Zum Anfang | Nach vorne
ocicolltrim | Nach oben | ocicolumnname


ocicolumnname

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumnname -- Liefert den Namen der Spalte zurück.

Beschreibung

string OCIColumnName ( int stmt, int col)

OCIColumnName() liefert den Name einer Spalte zurück passend zu der Spaltennummer (beginnend bei 1).

Beispiel 1. OCIColumnName

<?php
    print "<HTML><PRE>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    print "<TABLE BORDER=\"1\">";
    print "<TR>";
    print "<TH>Name</TH>";
    print "<TH>Type</TH>";
    print "<TH>Length</TH>";
    print "</TR>";
    $ncols = OCINumCols($stmt);
    for ( $i = 1; $i <= $ncols; $i++ ) {
        $column_name  = OCIColumnName($stmt,$i);
        $column_type  = OCIColumnType($stmt,$i);
        $column_size  = OCIColumnSize($stmt,$i);
        print "<TR>";
        print "<TD>$column_name</TD>";
        print "<TD>$column_type</TD>";
        print "<TD>$column_size</TD>";
        print "</TR>";
    }
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    print "</PRE>";
    print "</HTML>\n";
?>

Bitte beachten Sie auch OCINumCols(), OCIColumnType(), und OCIColumnSize().

Zurück | Zum Anfang | Nach vorne
ocicolumnisnull | Nach oben | ocicolumnprecision


ocicolumnprecision

(PHP 4 , PHP 5)

ocicolumnprecision -- Kommt noch.

Beschreibung

int OCIColumnPrecision ( int stmt, int col)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocicolumnname | Nach oben | ocicolumnscale


ocicolumnscale

(PHP 4 , PHP 5)

ocicolumnscale -- Kommt noch.

Beschreibung

int OCIColumnScale ( int stmt, int col)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocicolumnprecision | Nach oben | ocicolumnsize


ocicolumnsize

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumnsize -- Gibt die Grösse einer Spalte zurück

Beschreibung

int OCIColumnSize ( int stmt, mixed column)

OCIColumnSize() gibt die grösse einer Oracle Spalte zurück. Für den Parameter column kann wahlweise die Splatennummer (beginnend bei 1) oder der Spaltenname genommen werden.

Beispiel 1. OCIColumnSize

<?php
    print "<HTML><PRE>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    print "<TABLE BORDER=\"1\">";
    print "<TR>";
    print "<TH>Name</TH>";
    print "<TH>Type</TH>";
    print "<TH>Length</TH>";
    print "</TR>";
    $ncols = OCINumCols($stmt);
    for ( $i = 1; $i <= $ncols; $i++ ) {
        $column_name  = OCIColumnName($stmt,$i);
        $column_type  = OCIColumnType($stmt,$i);
        $column_size  = OCIColumnSize($stmt,$i);
        print "<TR>";
        print "<TD>$column_name</TD>";
        print "<TD>$column_type</TD>";
        print "<TD>$column_size</TD>";
        print "</TR>";
    }
    print "</TABLE>";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    print "</PRE>";
    print "</HTML>\n";
?>

Beachte bitte auch OCINumCols(), OCIColumnName(), und OCIColumnSize().

Zurück | Zum Anfang | Nach vorne
ocicolumnscale | Nach oben | ocicolumntype


ocicolumntype

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumntype -- Liefert den Datentyp einer Spalte zurück.

Beschreibung

mixed OCIColumnName ( int stmt, int col)

OCIColumnType() liefert den Datentyp einer Spalte zurück passend zu der Spaltennummer (beginnend bei 1).

Beispiel 1. OCIColumnType

<?php
    print "<HTML><PRE>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    print "<TABLE BORDER=\"1\">";
    print "<TR>";
    print "<TH>Name</TH>";
    print "<TH>Type</TH>";
    print "<TH>Length</TH>";
    print "</TR>";
    $ncols = OCINumCols($stmt);
    for ( $i = 1; $i <= $ncols; $i++ ) {
        $column_name  = OCIColumnName($stmt,$i);
        $column_type  = OCIColumnType($stmt,$i);
        $column_size  = OCIColumnSize($stmt,$i);
        print "<TR>";
        print "<TD>$column_name</TD>";
        print "<TD>$column_type</TD>";
        print "<TD>$column_size</TD>";
        print "</TR>";
    }
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    print "</PRE>";
    print "</HTML>\n";
?>

Bitte beachten Sie auch OCINumCols(), OCIColumnName(), und OCIColumnSize().

Zurück | Zum Anfang | Nach vorne
ocicolumnsize | Nach oben | ocicolumntyperaw


ocicolumntyperaw

(PHP 4 , PHP 5)

ocicolumntyperaw -- Kommt noch.

Beschreibung

mixed OCIColumnTypeRaw ( int stmt, int col)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocicolumntype | Nach oben | ocicommit


ocicommit

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocicommit -- Committet eine ausstehende Transaktion.

Beschreibung

int OCICommit ( int Verbindungskennung)

OCICommit() schreibt alle Datenbankänderungen seit dem letzten implizit oder explizitem Commit der Verbindungskennung fest.

Zurück | Zum Anfang | Nach vorne
ocicolumntyperaw | Nach oben | ocidefinebyname


ocidefinebyname

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocidefinebyname -- Definiert eine PHP Variable als Platzhalter für die Werte eines SELECTs

Beschreibung

int OCIDefineByName ( int stmt, string Spaltenname, mixed & Variable [, int Typ])

OCIDefineByName() legt eine PHP Variable als Ziel für den Inhalt einer Spalte nach dem Fetchen fest. Es ist zu beachten, dass Oracle alle Spalten GROSSBUCHSTABIG ausliefert. Daher erwartet OCIDefineByName() den Parameter Spaltenname grossbuchstabig. Wird ein Spaltenname benutzt, der nicht im SELECT vorhanden ist, wird keine Fehlermeldung ausgegeben.

Soll ein abstrakter Datentyp (LOB/ROWID/BFILE) definiert werden, so muss er zuerst angefordert werden mit der OCINewDescriptor() Funktion. In diesem Zusammenhang ist auch die OCIBindByName() zu beachten.

Beispiel 1. OCIDefineByName

<?php
/* OCIDefineByPos example thies@thieso.net (980219) */

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"select empno, ename from emp");

/* the define MUST be done BEFORE ociexecute! */

OCIDefineByName($stmt,"EMPNO",&$empno);
OCIDefineByName($stmt,"ENAME",&$ename);

OCIExecute($stmt);

while (OCIFetch($stmt)) {
    echo "empno:".$empno."\n";
    echo "ename:".$ename."\n";
}

OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Zurück | Zum Anfang | Nach vorne
ocicommit | Nach oben | ocierror


ocierror

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocierror -- Gibt den letzten Fehler von stmt|conn|global zurück oder FALSE, wenn kein Fehler aufgetreten ist.

Beschreibung

mixed OCIError ( [array stmt|conn])

OCIError() liefert den letzten Fehler. Ist der optionale Parameter stmt|conn nicht angegeben, wird der zuletzt aufgetretene Fehler zurückgeliefert. Ist kein Fehler gefunden, gibt OCIError() FALSE zurück. OCIError() gibt den Fehler als assoziatives Array zurück, wobei code den Oracle Fehlercode und message den Fehlerstring beinhaltet.

Zurück | Zum Anfang | Nach vorne
ocidefinebyname | Nach oben | ociexecute


ociexecute

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociexecute -- führt ein Statement aus.

Beschreibung

int OCIExecute ( int statement [, int mode])

OCIExecute() führt ein vorbereitetes Statement aus (beachte OCIParse()). Der optionale Parameter mode ermöglicht die Wahl des Ausführungsmodus. Voreingestellt ist OCI_COMMIT_ON_SUCCESS, wenn das Statement aber nicht gleich endgültig gemacht werden soll, ist OCI_DEFAULT zu verwenden.

Zurück | Zum Anfang | Nach vorne
ocierror | Nach oben | ocifetch


ocifetch

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocifetch -- Fetcht die nächste Ergebniszeile in den Ergebnispuffer

Beschreibung

int OCIFetch ( int statement)

OCIFetch() fetcht die nächste Ergebniszeile eines SELECTs in den internen Ergebnispuffer.

Zurück | Zum Anfang | Nach vorne
ociexecute | Nach oben | ocifetchinto


ocifetchinto

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocifetchinto -- Fetcht die nächste Zeile eines Ergebnisses in ein Array

Beschreibung

int OCIFetchInto ( int stmt, array & result [, int mode])

OCIFetchInto() fetcht die nächste Zeile eines SELECT Ergebnisses in das result Array. OCIFetchInto() überschreibt dabei den Inhalt in result. Voreingestellt beinhaltet dann result ein bei 0 beginnendes indiziertes Array mit allen Spalten, welche nicht NULL sind.

Der mode Parameter erlaubt die Art der Form des result Arrays zu ändern. Dabei können verschiedene Parameter benutzt werden, es reicht, diese einfach zu addieren (z.B. OCI_ASSOC+OCI_RETURN_NULLS). Verfügbare Parameter sind:

OCI_ASSOC Gibt ein assoziatives Array zurück.
OCI_NUM Gibt ein indiziertes Array zurück, beginnend bei 0. (voreingestellt)
OCI_RETURN_NULLS Gibt auch leere Spalten zurück.
OCI_RETURN_LOBS Gibt den Wert eines LOBs zurück, anstatt nur des Descriptors.

Zurück | Zum Anfang | Nach vorne
ocifetch | Nach oben | ocifetchstatement


ocifetchstatement

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocifetchstatement -- Fetcht die Ergebnisse in ein Array

Beschreibung

int OCIFetchStatement ( int stmt, array & variable)

OCIFetchStatement() fetcht alle zurückgelieferten Reihen eines SELECT in ein Array. Dabei liefert OCIFetchStatement() die Anzahl der zurückgelieferten Zeilen zurück.

Beispiel 1. OCIFetchStatement

<?php
/* OCIFetchStatement example mbritton@verinet.com (990624) */

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"select * from emp");

OCIExecute($stmt);

$nrows = OCIFetchStatement($stmt,$results);
if ( $nrows > 0 ) {
   print "<TABLE BORDER=\"1\">\n";
   print "<TR>\n";
   while ( list( $key, $val ) = each( $results ) ) {
      print "<TH>$key</TH>\n";
   }
   print "</TR>\n";

   for ( $i = 0; $i < $nrows; $i++ ) {
      reset($results);
      print "<TR>\n";
      while ( $column = each($results) ) {
         $data = $column['value'];
         print "<TD>$data[$i]</TD>\n";
      }
      print "</TR>\n";
   }
   print "</TABLE>\n";
} else {
   echo "No data found<BR>\n";
}
print "$nrows Records Selected<BR>\n";

OCIFreeStatement($stmt);
OCILogoff($conn);

?>

Zurück | Zum Anfang | Nach vorne
ocifetchinto | Nach oben | ocifreecollection


ocifreecollection

(PHP 4 >= 4.1.0, PHP 5)

ocifreecollection -- Kommt noch.

Beschreibung

string OCIFreeCollection ( object lob)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocifetchstatement | Nach oben | ocifreecursor


ocifreecursor

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocifreecursor -- Gibt alle mit dem cursor verbundenen Ressourcen frei.

Beschreibung

int OCIFreeCursor ( int stmt)

OCIFreeCursor() gibt TRUE zurück, wenn die Aktion erfolgreich war, FALSE, wenn nicht.

Zurück | Zum Anfang | Nach vorne
ocifreecollection | Nach oben | ocifreedesc


ocifreedesc

(PHP 4 , PHP 5)

ocifreedesc -- Deletes a large object descriptor

Description

bool ocifreedesc ( void )

ocifreedesc() deletes a large object descriptor. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: This function was renamed to oci_free_descriptor() after PHP >= 5.0.0. For downward compatibility ocifreedesc() can also be used. This is deprecated, however.

Zurück | Zum Anfang | Nach vorne
ocifreecursor | Nach oben | ocifreestatement


ocifreestatement

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

ocifreestatement -- Gibt alle mit dem Statement verbundenen Ressourcen frei.

Beschreibung

int OCIFreeStatement ( int stmt)

OCIFreeStatement() gibt TRUE zurück, wenn es erfolgreich war, FALSE, wenn nicht.

Zurück | Zum Anfang | Nach vorne
ocifreedesc | Nach oben | lob->getBuffering


lob->getBuffering

(no version information, might be only in CVS)

lob->getBuffering -- Returns current state of buffering for large object

Description

bool lob->getBuffering ( void )

Returns FALSE if buffering for the large object is off and TRUE if buffering is used.

See also ocisetbufferinglob().

Zurück | Zum Anfang | Nach vorne
ocifreestatement | Nach oben | ociinternaldebug


ociinternaldebug

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociinternaldebug -- Aktiviert oder deaktiviert die interne Debugausgabe. Die Voreinstellung ist deaktiviert.

Beschreibung

void OCIInternalDebug ( int onoff)

OCIInternalDebug() aktiviert die interne Debugausgabe. onoff kann auf 0 gesetzt werden, um die Ausgabe abzuschalten und auf 1, um sie anzuschalten.

Zurück | Zum Anfang | Nach vorne
lob->getBuffering | Nach oben | ociloadlob


ociloadlob

(PHP 4 , PHP 5)

ociloadlob -- Kommt noch.

Beschreibung

string OCILoadLob ( object lob)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ociinternaldebug | Nach oben | ocilogoff


ocilogoff

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocilogoff -- Schliesst eine Datenbankverbindung zu Oracle

Beschreibung

int OCILogOff ( int Verbindungskennung)

OCILogOff() schliesst die Verbindung zu Oracle.

Zurück | Zum Anfang | Nach vorne
ociloadlob | Nach oben | ocilogon


ocilogon

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocilogon -- Baut eine OCI-Verbindung auf

Beschreibung

int OCILogon ( string Benutzername, string Passwort [, string Datenbankname])

OCILogon() gibt bei erfolgreicher Verbindung einen Verbindungsindex zurück. Bei einem Fehler FALSE. Der optionale dritte Parameter kann auf die lokale Oracleinstanz gesetzt werden oder auf die, zu welcher sich verbunden werden soll. Diese sollte in der tnsnames.ora aufgeführt sein. Wird der dritte Parameter nicht gesetzt nimmt PHP automatisch den Wert aus der Umgebungsvariable ORACLE_SID oder TWO_TASK.

Verbindungen werden gemeinsam wärend eines Skriptes genutzt, wenn OCILogon() benutzt wird. Das heisst, dass commits und rollbacks sich auf alle offenen Transaktionen im Skript auswirken, ausser wenn explizit mehrere Verbindungen aufgebaut werden.

Dies Beispiel zeigt, wie die Verbindungen gemeinsam genutzt werden.

Beispiel 1. OCILogon

<?php
print "<HTML><PRE>";
$db = "";

$c1 = ocilogon("scott","tiger",$db);
$c2 = ocilogon("scott","tiger",$db);

function create_table($conn)
{ $stmt = ociparse($conn,"create table scott.hallo (test
varchar2(64))");
  ociexecute($stmt);
  echo $conn." created table\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
  ociexecute($stmt);
  echo $conn." dropped table\n\n";
}

function insert_data($conn)
{ $stmt = ociparse($conn,"insert into scott.hallo
                   values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." inserted hallo\n\n";
}

function delete_data($conn)
{ $stmt = ociparse($conn,"delete from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." deleted hallo\n\n";
}

function commit($conn)
{ ocicommit($conn);
  echo $conn." commited\n\n";
}

function rollback($conn)
{ ocirollback($conn);
  echo $conn." rollback\n\n";
}

function select_data($conn)
{ $stmt = ociparse($conn,"select * from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (ocifetch($stmt))
    echo $conn." <".ociresult($stmt,"TEST").">\n\n";
  echo $conn."----done\n\n";
}

create_table($c1);
insert_data($c1);   // trägt eine Zeile ein und benutzt dabei c1
insert_data($c2);   // trägt eine Zeile ein und benutzt dabei c2

select_data($c1);   // die Ergebnisse beider Eintragungen wird zurückgegeben
select_data($c2);

rollback($c1);      // Rollback benutzt c1

select_data($c1);   // ein Rollback auf beide Eintragungen
select_data($c2);

insert_data($c2);   // trägt eine Zeile ein und benutzt dabei c2
commit($c2);        // der commit für c2

select_data($c1);   // das Ergebnis der Eintragung über c2 wird zurückgegeben

delete_data($c1);   // löschen aller Zeilen über c1
select_data($c1);   // keine Zeile zurückgegeben
select_data($c2);   // keine Zeile zurückgegeben
commit($c1);        // commit für c1

select_data($c1);   // keine Zeile zurückgegeben
select_data($c2);   // keine Zeile zurückgegeben

drop_table($c1);
print "</PRE></HTML>";
?>

Bitte beachte auch OCIPLogon() und OCINLogon().

Zurück | Zum Anfang | Nach vorne
ocilogoff | Nach oben | ocinewcollection


ocinewcollection

(PHP 4 >= 4.0.6, PHP 5)

ocinewcollection -- Kommt noch.

Beschreibung

string OCINewCollection ( int conn, string tdo [, string shema])

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocilogon | Nach oben | ocinewcursor


ocinewcursor

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocinewcursor -- return a new cursor (Statement-Handle) - use this to bind ref-cursors!

Beschreibung

int OCINewCursor ( int conn)

OCINewCursor() allocates a new statement handle on the specified connection.

Beispiel 1. Using a REF CURSOR from a stored procedure

<?php
// suppose your stored procedure info.output returns a ref cursor in :data

$conn = OCILogon("scott","tiger");
$curs = OCINewCursor($conn);
$stmt = OCIParse($conn,"begin info.output(:data); end;");

ocibindbyname($stmt,"data",&$curs,-1,OCI_B_CURSOR);
ociexecute($stmt);
ociexecute($curs);

while (OCIFetchInto($curs,&$data)) {
    var_dump($data);
}

OCIFreeCursor($stmt);
OCIFreeStatement($curs);
OCILogoff($conn);
?>

Beispiel 2. Using a REF CURSOR in a select statement

<?php
print "<HTML><BODY>";
$conn = OCILogon("scott","tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = OCIParse($conn,"select deptno,dname,$count_cursor");

ociexecute($stmt);
print "<TABLE BORDER=\"1\">";
print "<TR>";
print "<TH>DEPT NAME</TH>";
print "<TH>DEPT #</TH>";
print "<TH># EMPLOYEES</TH>";
print "</TR>";

while (OCIFetchInto($stmt,&$data,OCI_ASSOC)) {
    print "<TR>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    print "<TD>$dname</TD>";
    print "<TD>$deptno</TD>";
    ociexecute($data[ "EMPCNT" ]);
    while (OCIFetchInto($data[ "EMPCNT" ],&$subdata,OCI_ASSOC)) {
        $num_emps = $subdata["NUM_EMPS"];
        print  "<TD>$num_emps</TD>";
    }
    print "</TR>";
}
print "</TABLE>";
print "</BODY></HTML>";
OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Zurück | Zum Anfang | Nach vorne
ocinewcollection | Nach oben | ocinewdescriptor


ocinewdescriptor

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocinewdescriptor -- Initialize a new empty descriptor LOB/FILE (LOB is default)

Beschreibung

string OCINewDescriptor ( int connection [, int type])

OCINewDescriptor() Allocates storage to hold descriptors or LOB locators. Valid values for the valid type are OCI_D_FILE, OCI_D_LOB, OCI_D_ROWID. For LOB desriptors, the methods load, save, and savefile are associated with the descriptor, for BFILE only the load method exists. See the second example usage hints.

Beispiel 1. OCINewDescriptor

<?php
    /* This script is designed to be called from a HTML form.
     * It expects $user, $password, $table, $where, and $commitsize
     * to be passed in from the form.  The script then deletes
     * the selected rows using the ROWID and commits after each
     * set of $commitsize rows. (Use with care, there is no rollback)
     */
    $conn = OCILogon($user, $password);
    $stmt = OCIParse($conn,"select rowid from $table $where");
    $rowid = OCINewDescriptor($conn,OCI_D_ROWID);
    OCIDefineByName($stmt,"ROWID",&$rowid);
    OCIExecute($stmt);
    while ( OCIFetch($stmt) ) {
       $nrows = OCIRowCount($stmt);
       $delete = OCIParse($conn,"delete from $table where ROWID = :rid");
       OCIBindByName($delete,":rid",&$rowid,-1,OCI_B_ROWID);
       OCIExecute($delete);
       print "$nrows\n";
       if ( ($nrows % $commitsize) == 0 ) {
           OCICommit($conn);
       }
    }
    $nrows = OCIRowCount($stmt);
    print "$nrows deleted...\n";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>
<?php
    /* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <form action="upload.php3" method="post" enctype="multipart/form-data">
     * <input type="file" name="lob_upload">
     * ...
     */
  if(!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php3" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload"><br>
<input type="submit" value="Upload"> - <input type="reset">
</form>
<?php
  } else {
     // $lob_upload contains the temporary filename of the uploaded file
     $conn = OCILogon($user, $password);
     $lob = OCINewDescriptor($conn, OCI_D_LOB);
     $stmt = OCIParse($conn,"insert into $table (id, the_blob) values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     OCIBindByName($stmt, ':the_blob', &$lob, -1, OCI_B_BLOB);
     OCIExecute($stmt);
     if($lob->savefile($lob_upload)){
        OCICommit($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     OCIFreeDescriptor($lob);
     OCIFreeStatement($stmt);
     OCILogoff($conn);
  }
?>

Zurück | Zum Anfang | Nach vorne
ocinewcursor | Nach oben | ocinlogon


ocinlogon

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocinlogon -- Logt sich in die Oracle Datenbank ein und erzeugt dabei eine neue Oracle Session.

Beschreibung

int OCINLogon ( string username, string password [, string db])

OCINogon() gibt bei erfolgreicher Verbindung einen Verbindungsindex zurück. Bei einem Fehler FALSE. Der optionale dritte Parameter kann auf die lokale Oracleinstanz gesetzt werden oder auf die, zu welcher sich verbunden werden soll. Diese sollte in der tnsnames.ora aufgeführt sein. Wird der dritte Parameter nicht gesetzt nimmt PHP automatisch den Wert aus der Umgebungsvariable ORACLE_SID oder TWO_TASK.

OCINLogon() erzeugt eine neue Verbindung mit einer neuen Oracle Session, dies ist zum Beispiel erforderlich, wenn man mit voneinander getrennten Transaktionen arbeitet. Normalerweise wird die Oracle Session gemeinsam genutzt, wenn man OCILogon() oder auf Webserverebene OCIPLogon() . Wenn man allerdings unterschiedliche Verbindungen mit OCINLogon() öffnet, beeinflussen sich die Commits und Rollbacks der einzelnen Datenbankverbindungen nicht.

Dieses Beispiel zeigt, dass es sich um unterschiedliche Verbindungen handelt:

Beispiel 1. OCINLogon

<?php
print "<HTML><PRE>";
$db = "";

$c1 = ocilogon("scott","tiger",$db);
$c2 = ocinlogon("scott","tiger",$db);

function create_table($conn)
{ $stmt = ociparse($conn,"create table scott.hallo (test
varchar2(64))");
  ociexecute($stmt);
  echo $conn." created table\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
  ociexecute($stmt);
  echo $conn." dropped table\n\n";
}

function insert_data($conn)
{ $stmt = ociparse($conn,"insert into scott.hallo values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." inserted hallo\n\n";
}

function delete_data($conn)
{ $stmt = ociparse($conn,"delete from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." deleted hallo\n\n";
}

function commit($conn)
{ ocicommit($conn);
  echo $conn." commited\n\n";
}

function rollback($conn)
{ ocirollback($conn);
  echo $conn." rollback\n\n";
}

function select_data($conn)
{ $stmt = ociparse($conn,"select * from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (ocifetch($stmt))
    echo $conn." <".ociresult($stmt,"TEST").">\n\n";
  echo $conn."----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
print "</PRE></HTML>";
?>

Bitte beachten OCILogon() und OCIPLogon().

Zurück | Zum Anfang | Nach vorne
ocinewdescriptor | Nach oben | ocinumcols


ocinumcols

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocinumcols -- Gibt die Anzahl der Spalten in einem Statement zurück

Beschreibung

int OCINumCols ( int stmt)

OCINumCols() gibt die Anzahl der Spalten in einem Statement zurück.

Beispiel 1. OCINumCols

<?php
    print "<HTML><PRE>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn,"select * from emp");
    OCIExecute($stmt);
    while ( OCIFetch($stmt) ) {
        print "\n";
        $ncols = OCINumCols($stmt);
        for ( $i = 1; $i <= $ncols; $i++ ) {
            $column_name  = OCIColumnName($stmt,$i);
            $column_value = OCIResult($stmt,$i);
            print $column_name . ': ' . $column_value . "\n";
        }
        print "\n";
    }
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    print "</PRE>";
    print "</HTML>\n";
?>

Zurück | Zum Anfang | Nach vorne
ocinlogon | Nach oben | ociparse


ociparse

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociparse -- Analysiert eine Abfrage und gibt eine Anweisung zurück.

Beschreibung

int OCIParse ( int conn, string query)

OCIParse() analysiert die query und benutzt dabei die conn. Es liefert TRUE zurück, wenn die Abfrage gültig ist, FALSE, wenn nicht. query kann jede Form einer gültigen SQL Anfrage sein.

Zurück | Zum Anfang | Nach vorne
ocinumcols | Nach oben | ociplogon


ociplogon

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ociplogon -- Logt sich persistent in die Oracle Datenbank ein und erzeugt eine neue Oracle Session.

Beschreibung

int OCIPLogon ( string username, string password [, string Datenbank])

OCIPLogon() gibt bei erfolgreicher Öffnung einer persistenten Verbindung einen Verbindungsindex zurück. Bei einem Fehler FALSE. Der optionale dritte Parameter kann auf die lokale Oracleinstanz gesetzt werden oder auf die, zu welcher sich verbunden werden soll. Diese sollte in der tnsnames.ora aufgeführt sein. Wird der dritte Parameter nicht gesetzt nimmt PHP automatisch den Wert aus der Umgebungsvariable ORACLE_SID oder TWO_TASK.

Bitte ebenfalls beachten OCILogon() und OCINLogon().

Zurück | Zum Anfang | Nach vorne
ociparse | Nach oben | ociresult


ociresult

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociresult -- Gibt einen Spaltenwert für das gefetchte Statement zurück

Beschreibung

mixed OCIResult ( int statement, mixed Spaltenname)

OCIResult() gibt den Inhalt der Spalte mit dem Spaltenname in der aktuellen Zeile zurück (dazu wichtig OCIFetch()).OCIResult() gibt alles als Zeichenkette zurück, ausser es sind abstrakte Datentypen (ROWIDs, LOBs and FILEs).

Zurück | Zum Anfang | Nach vorne
ociplogon | Nach oben | ocirollback


ocirollback

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocirollback -- Macht ausstehende Transaktionen rückgängig

Beschreibung

int OCIRollback ( int Verbindungskennung)

OCIRollback() macht alle Änderungen seid dem letzten Commit rückgängig und gibt auch Sperren auf den Tabellen frei. Mit der Verbindungskennung legt man die Datenbankverbindung fest, für welche diese Aktion gelten soll.

Zurück | Zum Anfang | Nach vorne
ociresult | Nach oben | ocirowcount


ocirowcount

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocirowcount -- Gibt die Anzahl der betroffenen Zeilen zurück

Beschreibung

int OCIRowCount ( int statement)

OCIRowCount() gibt die Anzahl der betroffenen Zeilen zum Beispiel einer UPDATE Aktion zurück. Sie gibt nicht die Anzahl der zurückgelieferten Zeilen von einem SELECT Statements zurück!

Beispiel 1. OCIRowCount

<?php
    print "<HTML><PRE>";
    $conn = OCILogon("scott","tiger");
    $stmt = OCIParse($conn,"create table emp2 as select * from emp");
    OCIExecute($stmt);
    print OCIRowCount($stmt) . " rows inserted.<BR>";
    OCIFreeStatement($stmt);
    $stmt = OCIParse($conn,"delete from emp2");
    OCIExecute($stmt);
    print OCIRowCount($stmt) . " rows deleted.<BR>";
    OCICommit($conn);
    OCIFreeStatement($stmt);
    $stmt = OCIParse($conn,"drop table emp2");
    OCIExecute($stmt);
    OCIFreeStatement($stmt);
    OCILogOff($conn);
    print "</PRE></HTML>";
?>

Zurück | Zum Anfang | Nach vorne
ocirollback | Nach oben | ocisavelob


ocisavelob

(PHP 4 , PHP 5)

ocisavelob -- Kommt noch.

Beschreibung

string OCISaveLob ( object lob)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocirowcount | Nach oben | ocisavelobfile


ocisavelobfile

(PHP 4 , PHP 5)

ocisavelobfile -- Kommt noch.

Beschreibung

string OCISaveLobFile ( object lob)

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocisavelob | Nach oben | ociserverversion


ociserverversion

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociserverversion -- Return a string containing server version information.

Beschreibung

string OCIServerVersion ( int conn)

Beispiel 1. OCIServerVersion

<?php
   $conn = OCILogon("scott","tiger");
   print "Server Version: " . OCIServerVersion($conn);
   OCILogOff($conn);
?>

Zurück | Zum Anfang | Nach vorne
ocisavelobfile | Nach oben | lob->setBuffering


lob->setBuffering

(no version information, might be only in CVS)

lob->setBuffering -- Changes current state of buffering for large object

Description

bool lob->setBuffering ( bool on_off)

lob->setBuffering() sets the buffering for the large object, depending on the value of the on_off parameter. Repeated calls to lob->setBuffering() with the same flag will return TRUE. The values for on_off are: TRUE for on and FALSE for off.

Use of this function may provide perfomance improvements by buffering small reads and writes of LOBs by reducing the number of network round-trips and LOB versions. oci_lob_flush() should be used to flush buffers, when you have finished working with the large object.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also ocigetbufferinglob().

Zurück | Zum Anfang | Nach vorne
ociserverversion | Nach oben | ocisetprefetch


ocisetprefetch

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

ocisetprefetch -- setzt die Anzahl der Zeilen die vorab gefetcht werden sollen

Beschreibung

int OCISetPrefetch ( int stmt, int rows)

OCISetPrefetch() setzt sie Anzahl der Zeilen fest, welche bereits vorab gefetcht werden sollen. Der Grundwert ist 1.

Zurück | Zum Anfang | Nach vorne
lob->setBuffering | Nach oben | ocistatementtype


ocistatementtype

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

ocistatementtype -- Gibt den Typ eine Statements zurück

Beschreibung

string OCIStatementType ( int stmt)

OCIStatementType() kann folgende Werte liefern:

  1. "SELECT"

  2. "UPDATE"

  3. "DELETE"

  4. "INSERT"

  5. "CREATE"

  6. "DROP"

  7. "ALTER"

  8. "BEGIN"

  9. "DECLARE"

  10. "UNKNOWN"

Beispiel 1. Beispiel:

<?php
    print "<HTML><PRE>";
    $conn = OCILogon("scott","tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = OCIParse($conn,$sql);
    if ( OCIStatementType($stmt) == "DELETE" ) {
        die "You are not allowed to delete from this table<BR>";
    }

    OCILogoff($conn);
    print "</PRE></HTML>";
?>

Zurück | Zum Anfang | Nach vorne
ocisetprefetch | Nach oben | ociwritelobtofile


ociwritelobtofile

(PHP 4 , PHP 5)

ociwritelobtofile -- Kommt noch.

Beschreibung

void OCIWriteLobToFile ( object lob [, string filename [, int start [, int lenght]]])

Kommt noch.

Zurück | Zum Anfang | Nach vorne
ocistatementtype | Nach oben | ociwritetemporarylob


ociwritetemporarylob

(no version information, might be only in CVS)

ociwritetemporarylob -- Writes temporary blob

Description

bool ociwritetemporarylob ( string var [, int lob_type])

Anmerkung: This function was renamed to oci_lob_write_temporary() after PHP >= 5.0.0. For downward compatibility ociwritetemporarylob() can also be used. This is deprecated, however.

Zurück | Zum Anfang | Nach vorne
ociwritelobtofile | Nach oben | OpenSSL Funktionen


OpenSSL Funktionen

PHP Handbuch
Zurück Nach vorne

LXXV. OpenSSL Funktionen

Einführung

Dieses Modul nutzt die Funktionen von OpenSSL zur Erzeugung und Überprüfung von Signaturen und zum versiegeln (verschlüsseln) und öffnen (entschlüsseln) von Daten. OpenSSL bietet viele Möglichkeiten die dieses Modul zum jetzigen Zeitpunkt nicht unterstützt. Einige dieser Möglichkeiten werden vielleicht in zukünftigen Versionen zur Verfügung stehen.

Anforderungen

Bevor Sie die Openssl-Funktionen nutzen können, müssen Sie das OpenSSL Paket installieren. PHP-4.0.4pl1 setzt OpenSSL >= 0.9.6 voraus, PHP-4.0.5 und folgende funktionieren auch mit OpenSSL >= 0.9.5.

Installation

Um Openssl mit PHP nutzen zu können, müssen Sie PHP mit der Option --with-openssl[=DIR] übersetzen.

Hinnweis für Win32 Benutzer: Um dieses Modul unter Windows benutzen zu können, müssen Sie die Datei libeay32.dll vom DLL Ordner Ihrer PHP/Win32 Binärdistribution in den SYSTEM32 Ordner von Windows kopieren.(Zum Beispiel nach: C:\WINNT\SYSTEM32 oder C:\WINDOWS\SYSTEM32).

Wenn Sie vorhaben, Schlüssel erzeugende und Zertifikats signierende Funktionen zu benutzen, müssen Sie eine gültige Konfigurationsdatei für OpenSSL, openssl.cnf, installieren. Ab PHP 4.3.0 finden Sie bei der win32 Binärdistribution im Ordner openssl eine Beispielkonfigurationsdatei, die Sie benutzen können. Falls Sie PHP 4.2.0 oder eine höhere Version benutzen und diese Datei in Ihrer Distribution fehlt, finden Sie diese Datei auf der OpenSSL Homepage, oder Sie laden sich PHP 4.3.0 herunter und verwenden die in diesem Paket enthaltene Datei.

Hinnweis für Win32 Benutzer: PHP verwendet folgende Logik um die Konfigurationsdatei openssl.cnf zu finden:

  • Die Umgebungsvariable OPENSSL_CONF wird, falls gesetzt, als Pfad zur Konfigurationsdatei benutzt (den Dateinamen mit eingeschlossen).

  • Die Umgebungsvariable SSLEAY_CONF wird, falls gesetzt, als Pfad zur Konfigurationsdatei benutzt (den Dateinamen mit eingeschlossen).

  • PHP sucht die Datei openssl.cnf an dem Ort, der bei der Kompilierung der openssl DLL als Speicherort für Zertifikate angegeben wurde. Üblicherweise ist der Standarddateiname c:\usr\local\ssl\openssl.cnf.

Damit diese Datei gefunden wird, müsssen Sie sich bei der Installation entscheiden, entweder die Konfigurationsdatei unter c:\usr\local\ssl\openssl.cnf anzulegen, oder diese Datei an einem anderen Ort abzulegen und Umgebungsvariablen zu benutzen (möglicherweise auf Basis verschiedener Virtual-Host Konfigurationen). Bei Funktionen, die diese Konfigurationsdatei benötigen, ist es möglich, durch die Angabe des Parameters configargs den Standardpfad zu dieser Datei in einem Skript zu überschreiben.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Schlüssel/Zertifikat Parameter

Ziemlich viele der OpenSSL Funktionen benötigen einen Schlüssel- oder einen Zertifikatparameter. PHP 4.0.5 und frühere Versionen müssen eine Schlüssel- oder Zertifikatsresource nutzen, die von einer der openssl_get_xxx Funktionen zurückgegeben wird. Spätere Versionen können eine der folgenden Methoden benutzen:

  • Zertifikate

    1. Eine X.509 Resource die von openssl_x509_read zurückgegeben wird.

    2. Eine Zeichenkette mit dem Format file://pfad/zu/cert.pem; die angegebene Datei muss ein PEM verschlüsseltes Zertifikat enthalten.

    3. Eine Zeichenkette die den Inhalt eines Zertifikats enthält, PEM verschlüsselt.

  • Öffentliche/Private Schlüssel

    1. Eine Schlüsselresource die von openssl_get_publickey() oder openssl_get_privatekey() zurückgegeben wird.

    2. Nur für öffentliche Schlüssel: eine X.509 Resource.

    3. Eine Zeichenkette mit dem Format file://pfad/zu/datei.pem - die angegebene Datei muss ein PEM verschlüsseltes Zertifikat/privaten Schlüssel enthalten (kann auch beides enthalten).

    4. Eine Zeichenkette die den Inhalt eines Zertifikats/Schlüssels enthält, PEM verschlüsselt.

    5. Für private Schlüssel können Sie auch die Syntax array($key, $passphrase) verwenden. $key repräsentiert einen Schlüssel, den Sie entweder mit der Notation file:// oder dem textlichen Inhalt wie oben angeben. $passphrase ist eine Zeichenfolge, die die Passphrase für den privaten Schlüssel enthält.

Zertifikat Nachweis

Wenn Sie eine Funktion aufrufen, die eine Signatur/ein Zertifikat überprüft, ist der Parameter cainfo ein Array, das Datei- und Verzeichnisnamen enthält, die auf vertrauenswürdige CA Dateien verweisen. Falls Sie ein Verzeichnis angeben, muss dies ein korrekt geformtes gehashdes Verzeichnis sein, in der Art, wie es der Befehl openssl verwenden würde.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Zweckprüfende Flags

X509_PURPOSE_SSL_CLIENT (integer)

X509_PURPOSE_SSL_SERVER (integer)

X509_PURPOSE_NS_SSL_SERVER (integer)

X509_PURPOSE_SMIME_SIGN (integer)

X509_PURPOSE_SMIME_ENCRYPT (integer)

X509_PURPOSE_CRL_SIGN (integer)

X509_PURPOSE_ANY (integer)

Padding Flags

OPENSSL_PKCS1_PADDING (integer)

OPENSSL_SSLV23_PADDING (integer)

OPENSSL_NO_PADDING (integer)

OPENSSL_PKCS1_OAEP_PADDING (integer)

Key types

OPENSSL_KEYTYPE_RSA (integer)

OPENSSL_KEYTYPE_DSA (integer)

OPENSSL_KEYTYPE_DH (integer)

PKCS7 Flags/Konstanten

Die S/MIME Funktionen nutzen Flags die sich dadurch auszeichnen, dass sie ein Bitfeld benutzen, das einen oder mehrere der folgenden Werte enthalten kann:

Tabelle 1. PKCS7 KONSTANTEN

Konstante | Beschreibung
PKCS7_TEXT | Fügt den Inhaltstyp Header text/plain einer verschlüsselten/signierten Nachricht hinzu. Wenn Sie entschlüsseln oder überprüfen, werden diese Header von der Ausgabe entfernt. Entspricht die entschlüsselte oder geprüfte Nachricht nicht dem MIME Typ text/plain, tritt ein Fehler auf.
PKCS7_BINARY | Normalerweise wird die Nachricht in ein "kanonisches" Format konvertiert, das effektiv CR und LF als Zeilende benutzt, wie von der S/MIME Spezifikation gefordert. Wird diese Option angegeben, findet keine Konvertierung statt. Das kann sich als nützlich erweisen, wenn Sie es mit binären Daten zu tun haben, die nicht dem MIME Format entprechen.
PKCS7_NOINTERN | Wenn Sie eine Nachricht überprüfen, werden in der Nachricht enthaltene Zertifikate (falls es welche gibt) nach dem unterzeichnenden Zertifikat durchsucht. Mit dieser Option werden nur Zertifikate benutzt, die mit dem Parameter extracerts in der Funktion openssl_pkcs7_verify() angegeben wurden. Die mitgelieferten Zertifikate können aber dennoch als nicht vertrauenswürdige CAs benutzt werden.
PKCS7_NOVERIFY | Keine Überprüfung des signierenden Zertifikats einer signierten Nachricht.
PKCS7_NOCHAIN | Keine Verknüpfung der Überprüfung des Zertifikats mit den Zertifikaten des Unterzeichners: das bedeutet, die Zertifikate in der signierten Nachricht werden nicht als nicht vertrauenswürdige CAs benutzt.
PKCS7_NOCERTS | Beim Signieren einer Nachricht wird normalerweise das Zertifikat des Unterzeichnenden mit in die Nachricht aufgenommen - mit dieser Option wird das Zertifikat nicht mit aufgenommen. Diese Option verringert die Größe der signierten Nachricht, aber der Überprüfende muss eine lokale Kopie des Zertifikats vom Unterzeichnenden besitzen (zum Beispiel durch Angabe des Parameters extracerts in der Funktion openssl_pkcs7_verify()).
PKCS7_NOATTR | Beim Signieren einer Nachricht wird normalerweise eine Reihe von Attributen mit angehängt. Diese enthalten die Zeit der Signierung und die unterstützen symmetrischen Algorithmen. Mit dieser Option werden diese Attribute nicht mit aufgenommen.
PKCS7_DETACHED | Beim Signieren einer Nachricht wird Klartext-Signierung verwendet mit dem MIME Typ multipart/signed. Das ist der Standard, wenn Sie keinen optionalen Parameter flags an die Funktion openssl_pkcs7_sign() übergeben. Wenn Sie diese Option ausschalten wird die Nachricht mit einer undurchsichtigen Signatur unterzeichnet. Dieses Verhalten ist robuster gegenüber der Übersetzung durch Mail-Relays, kann aber nicht mit Mailprogrammen gelesen werden, die nicht den S/Mime Standard unterstützen.
PKCS7_NOSIGS | Kein Versuch und keine Überprüfung der Signaturen einer Nachricht.

Anmerkung: Diese Konstanten wurden in 4.0.6 hinzugefügt.

Inhaltsverzeichnis
openssl_csr_export_to_file -- Exportiert ein CSR in eine Datei
openssl_csr_export -- Exportiert einen CSR als Zeichenkette
openssl_csr_new -- Erzeugt einen CSR
openssl_csr_sign -- Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat
openssl_error_string -- Liefert eine OpenSSL Fehlermeldung
openssl_free_key -- Freigabe einer Schlüsselressource
openssl_get_privatekey -- Liefert einen privaten Schlüssel
openssl_get_publickey -- Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet ihn für den Gebrauch vor
openssl_open -- Öffnet versiegelte Daten
openssl_pkcs7_decrypt -- Entschlüssen einer S/MIME verschlüsselten Nachricht
openssl_pkcs7_encrypt -- Verschlüsseln einer S/MIME Nachricht
openssl_pkcs7_sign -- Signieren einer S/MIME Nachricht
openssl_pkcs7_verify -- Überprüft die Unterschrift einer mit S/MIME unterschriebenen Nachricht
openssl_pkey_export_to_file -- Liefert eine exportierbare Representation eines Schlüssels in einer Datei
openssl_pkey_export -- Liefert eine exportierbare Representation eines Schlüssels in einem String
openssl_pkey_get_private -- Liefert einen privaten SchlÃ¼ssel
openssl_pkey_get_public -- Extrahiert einen Ã¶ffentlichen SchlÃ¼ssel aus einem Zertifikat und bereitet diesen zur Nutzung vor
openssl_pkey_new -- Erzeugt einen neuen privaten Schlüssel
openssl_private_decrypt -- Entschlüsselt Daten mit einem privaten Schlüssel
openssl_private_encrypt -- Verschlüsselt Daten mit einem privaten Schlüssel
openssl_public_decrypt -- Entschlüsselt Daten mit einem öffentlichen Schlüssel
openssl_public_encrypt -- Verschlüsselt Daten mit einem öffentlichen Schlüssel
openssl_seal -- Verschlüsselt (versiegelt) Daten
openssl_sign -- Erzeugen einer Unterschrift
openssl_verify -- Überprüft eine Unterschrift
openssl_x509_check_private_key -- Überprüft, ob ein privater Schlüssel zu einem Zertifikat passt
openssl_x509_checkpurpose -- Überprüft ob ein Zertifikat für einen bestimmten Zweck benutzt werden kann
openssl_x509_export_to_file -- Exportiert ein Zertifikat in eine Datei
openssl_x509_export -- Exportiert ein Zertifikat in eine Zeichenkette
openssl_x509_free -- Freigabe einer Zertifikats Resource
openssl_x509_parse -- Analyse eines X509 Zertifikats und Rückgabe der Information in einem Array
openssl_x509_read -- Analysiert ein X.509 Zertitifikat und gibt eine Ressource-Kennung zurück

Zurück | Zum Anfang | Nach vorne
ociwritetemporarylob | Nach oben | openssl_csr_export_to_file


openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export_to_file -- Exportiert ein CSR in eine Datei

Beschreibung

bool openssl_csr_export_to_file ( resource csr, string outfilename [, bool notext])

openssl_csr_export_to_file() exportiert die mit dem Parameter csr angegebene Zertifikatssignierungsanfrage und speichert diese als ASCII-armierten Text in die Datei mit dem Namen outfilename.

Der optionale Parameter notext beeinflusst den Umfang der Ausgabe; ist dieser auf FALSE gesetzt werden zusätzliche, für Menschen lesbare, Informationen in der Datei mit ausgegeben. Der Standardwert von notext ist TRUE.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch openssl_csr_export(),
openssl_csr_new() und
openssl_csr_sign().

Zurück | Zum Anfang | Nach vorne
OpenSSL Funktionen | Nach oben | openssl_csr_export


openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export -- Exportiert einen CSR als Zeichenkette

Beschreibung

bool openssl_csr_export ( resource csr, string &out [, bool notext])

openssl_csr_export() exportiert die mit dem Parameter csr angegebene Zertifikatssignierungsanfrage und speichert diese als ASCII-armierten Text in out, der per Referenz Ã¼bergeben wird.

Der optionale Parameter notext beeinflusst den Umfang der Ausgabe; ist dieser auf FALSE gesetzt werden zusätzliche, für Menschen lesbare, Informationen in der Datei mit ausgegeben. Der Standardwert von notext ist TRUE.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Siehe auch openssl_csr_export_to_file(),
openssl_csr_new() und
openssl_csr_sign().

Zurück | Zum Anfang | Nach vorne
openssl_csr_export_to_file | Nach oben | openssl_csr_new


openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_new -- Erzeugt einen CSR

Beschreibung

bool openssl_csr_new ( array dn, resource privkey [, array configargs [, array extraattribs]])

openssl_csr_new() erzeugt einen neuen CSR (Zertifikatssignierungsanfrage) basierend auf den Informationen, die mit dem Parameter dn angegeben werden. Dieser bestimmt den Distinguished Name, der im Zertifikat benutzt werden soll.

privkey sollte auf einen privaten Schlüssel zeigen, der vorher mit openssl_pkey_new() erzeugt wurde (oder den Sie auf andere Weise von der Familie der openssl_pkey Funktionen erhalten haben). Der entsprechende öffentliche Teil des Schlüssels wird benutzt um den CSR zu signieren.

extraattribs können Sie benutzen um zusätzliche Konfigurationsoptionen für den CSR anzugeben. Sowohl dn als auch extraattribs sind assoziative Arrays, deren Schlüssel zu OIDs konvertiert und auf den relevanten Teil der Anfrage angewendet werden.

Anmerkung: Damit diese Funktion korrekt arbeiten kann, benötigen Sie eine installierte, gültige Konfigurationsdatei openssl.cnf. Für weitere Informationen beachten Sie bitte die Hinweise im Abschnitt Installation.

Im Standard werden die Informationen für die Anfrage aus der openssl.conf ihres Systems benutzt. Sie können einen Konfigurationsabsschnitt mit dem Schlüssel config_section_section des Arrays configargssetzen. Außerdem haben Sie die Möglichkeit eine alternative openssl Konfigurationsdatei anzugeben, indem Sie den Wert des Schlüssels config auf den Pfad zu der Datei setzen, die Sie benutzen möchten. Die unten in der Tabelle aufgeführten Schlüssel in configargs, falls Sie diese definiert haben, verhalten sich genau gleich wie die entsprechenden Werte in der openssl.conf

Tabelle 1. Überschreiben der Konfiguration

configargs Schlüssel | Typ | openssl.conf Entsprechung | Beschreibung
digest_alg | string | default_md | Bestimmt welche digest Methode benutzt wird
x509_extensions | string | x509_extensions | Bestimmt welche Erweiterung benutzt werden soll, wenn ein x509 Zertifikat erzeugt werden soll.
req_extensions | string | req_extensions | Bestimmt welche Erweiterung benutzt werden soll, wenn eine Zertifikatssignierungsanfrage (CSR) erzeugt werden soll.
private_key_bits | string | default_bits | Bestimmt wieviele Bits verwendet werden, um einen privaten Schlüssel zu erzeugen.
private_key_type | integer | none | Bestimmt den Typ des privaten Schlüssels der erzeugt werden soll. Der Typ kann einer der folgenden sein: OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH oder OPENSSL_KEYTYPE_RSA. Der Standardwert ist OPENSSL_KEYTYPE_RSA, momentan ist das der einzige Schlüsseltyp, der unterstützt wird.
encrypt_key | boolean | encrypt_key | Soll ein exportiertet Schlüssel (mit Passphrase) verschlüsselt werden?

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. openssl_csr_new() Beispiel - erzeugen eines selbstsignierten Zertifikats

<?php
// Angabe der Daten für den distinguished name, der in dem Zertifikat benutzt
// wird. Sie müssen die Werte dieser Schlüssel so anpassen, dass diese ihrem
// Namen und Firma entsprechen, oder um präziser zu sein, den Namen und die
// Firma der Person/Seite angeben, für die Sie das Zertifikat erzeugen.
// Für SSL Zertifikate entspricht der commonName gewöhnlich dem Domainnamen,
// für den das Zertifikat benutzt werden soll, aber bei S/MIME Zertifikaten
// entspricht der commonName dem Namen der Person, die das Zertifikat nutzen
// möchte.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Erzeugen eines neuen privaten (und öffentlichen) Schlüsselpaars
$privkey = openssl_pkey_new();

// Erzeugen einer Zertifikatssignierungsanfrage
$csr = openssl_csr_new($dn, $privkey);

// Gewöhnlicherweise möchten Sie zu diesem Zeitpunkt ein selbstsigniertes
// Zertifikat erzeugen, das Sie benutzten können, bis ihre CA ihre Anfrage
// im positiven Sinne bearbeitet hat.
// Erzeugen eines selbstsignierten Zertifikts, das für die Dauer von 365 Tagen
// gültig ist.
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Jetzt möchten Sie ihren privaten Schlüssel, ihren CSR und das
// selbstsignierte Zertifikat sichern, damit Sie dieses, abhängig vom
// beabsichtigten Verwendungszweck, auf ihrem Web-, Mailserver oder
// in ihrem Mailprogramm installieren können.
// Dieses Beispiel zeigt ihnen, wie Sie diese Dinge in Variablen abspeichern,
// aber genauso können Sie die Informationen direkt in Dateien speichern.
// Typischerweise schicken Sie den CSR an Ihre CA, die daraufhin diese Anfrage
// bearbeitet und Sie mit einem "richtigen" Zertifikat ausstattet.
openssl_csr_export($csr, $csrout) and var_dump($csrout);;
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Anzeigen der möglichen aufgetretenen Fehler
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Zurück | Zum Anfang | Nach vorne
openssl_csr_export | Nach oben | openssl_csr_sign


openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_sign -- Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat

Beschreibung

resource openssl_csr_sign ( mixed csr, mixed cacert, mixed priv_key, int days [, array configargs [, int serial]])

openssl_csr_sign() erzeugt eine x509 Zertifikatressource von csr, der vorher mit openssl_csr_new() erzeugt wurde. Sie kÃ¶nnen mit csr aber auch einen Pfad zu einer PEM kodierten CSR Datei angeben: file://path/to/csr, oder einer mit Hilfe von openssl_csr_export()exportierten Zeichenkette. Das generierte Zertifikat wird mit cacert signiert. Falls Sie fÃ¼r cacert NULL angeben, wird das generierte Zertifikat ein selbstsigniertes Zertifikat sein. priv_key ist der private SchlÃ¼ssel, der zu cacert gehÃ¶rt. Mit days legen Sie die GÃ¼ltigkeitsdauer des generierten Zertifikats in Tagen fest. Mit configargs kÃ¶nnen Sie die Signierung des CSR feiner abstimmen. FÃ¼r weterfÃ¼hrende Informationen Ã¼ber die Verwendung von configargs lesen Sie bitte bei der Dokumentation zu openssl_csr_new() nach. Seit PHP 4.3.3 kÃ¶nnen Sie die Seriennummer des ausgestellten Zertifikats mit serial angeben. In frÃ¼heren Versionen war dieser Wert immer 0.

Gibt bei Erfolg eine x509 Zertifikatressource zurÃ¼ck, FALSE bei einem Fehler.

Anmerkung: Damit diese Funktion korrekt arbeiten kann, benötigen Sie eine installierte, gültige Konfigurationsdatei openssl.cnf. Für weitere Informationen beachten Sie bitte die Hinweise im Abschnitt Installation.

Beispiel 1. openssl_csr_sign() Beispiel - signieren eines CSR (wie Sie ihre eigene CA implementieren)

<?php
// Annahme: dieses Skript erhÃ¤lt einen CSR, der auf einer anderen Seite in
// eine Textarea eingegeben wurde.
$csrdata = $_POST["CSR"];

// Wir werden die Anfrage mit unserem eigenen ""certificate authority"
// Zertifikat signieren. Sie kÃ¶nnen jedes beliebige Zertifikat verwenden, um
// ein anderes zu signieren. Aber das Ganze ist ziemlich nutzlos, solange die
// Software/Benutzer, die dieses neu signierte Zertifikat nutzen werden, dem
// signierenden Zertifikat

// We will sign the request using our own "certificate authority"
// certificate.  You can use any certificate to sign another, but
// the process is worthless unless the signing certificate is trusted
// by the software/users that will deal with the newly signed certificate

// Wir brauchen unser CA Zertifikat und dessen privaten SchlÃ¼ssel
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);

// Jetzt zeigem wir das generierte Zertifikat an, damit die Benutzer es
// kopieren und in ihre lokale Konfiguration einfÃ¼gen kÃ¶nnen (wie z.B. eine
// Datei, die das Zertifikat fÃ¼r ihren SSL Server enthalten soll.
openssl_x509_export($usercert, $certout);
echo $certout;

// Anzeigen der mÃ¶glichen aufgetretenen Fehler
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Zurück | Zum Anfang | Nach vorne
openssl_csr_new | Nach oben | openssl_error_string


openssl_error_string

(PHP 4 >= 4.0.6, PHP 5)

openssl_error_string -- Liefert eine OpenSSL Fehlermeldung

Beschreibung

mixed openssl_error_string ( void )

Liefert einen Fehlertext, oder FALSE, wenn es keine weiteren Fehler gibt.

Die Funktion openssl_error_string() liefert den letzten Fehler der OpenSSL Bibliothek. Die Fehlermeldungen werden auf einem Stack abgelegt. Diese Funktion sollte also mehrmals aufgerufen werden, um alle Informationen zu erhalten.

Beispiel 1. openssl_error_string() Beispiel

<?php
// Annahme: Sie haben eine openssl-Funktion aufgerufen, die einen Fehler
// verursacht hat.
while ($msg = openssl_error_string())
    echo $msg . "<br />\n";
?>

Zurück | Zum Anfang | Nach vorne
openssl_csr_sign | Nach oben | openssl_free_key


openssl_free_key

(PHP 4 >= 4.0.4, PHP 5)

openssl_free_key -- Freigabe einer Schlüsselressource

Beschreibung

void openssl_free_key ( resource key_identifier)

Die Funktion openssl_free_key() löscht den Schlüssel mit dem angegebenen Parameter key_identifier aus dem Speicher.

Zurück | Zum Anfang | Nach vorne
openssl_error_string | Nach oben | openssl_get_privatekey


openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_privatekey -- Liefert einen privaten Schlüssel

Beschreibung

resource openssl_get_privatekey ( mixed key [, string passphrase])

Das ist ein Alias für openssl_pkey_get_private().

Zurück | Zum Anfang | Nach vorne
openssl_free_key | Nach oben | openssl_get_publickey


openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_publickey -- Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet ihn für den Gebrauch vor

Beschreibung

resource openssl_get_publickey ( mixed certificate)

Das ist ein Alias für openssl_pkey_get_public().

Zurück | Zum Anfang | Nach vorne
openssl_get_privatekey | Nach oben | openssl_open


openssl_open

(PHP 4 >= 4.0.4, PHP 5)

openssl_open -- Öffnet versiegelte Daten

Beschreibung

bool openssl_open ( string sealed_data, string &open_data, string env_key, mixed priv_key_id)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Im Erfolgsfall werden die geöffneten Daten im Parameter open_data zurückgegeben.

Die Funktion openssl_open() öffnet (entschlüsselt) sealed_data unter Verwendung des privaten Schlüssels, der mit der Schlüsselkennung priv_key_id und dem Umschlagschlüssel env_key verknüpft ist und füllt open_data mit den entschlüsselten Daten. Der Umschlagschlüssel wird bei der Versiegelung erzeugt und kann ausschlieslich für einen bestimmten privaten Schlüssel verwendet werden. Mehr Informationen erhalten Sie bei der Dokumentation zu openssl_seal().

Beispiel 1. openssl_open() Beispiel

<?php
// Annahme: $sealed und $env_key enthalten versiegelte Daten und unseren
// Umschlagschlüssel; beide haben wir von dem Versiegelnden erhalten

// privaten Schlüssel aus einer Datei holen und vorbereiten
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// entschlüsseln der Daten und speichern in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
    echo "Das sind die geöffneten Daten: ", $open;
} else {
    echo "Öffnen der Daten nicht möglich!";
}

// löschen des privaten Schlüssels aus dem Speicher
openssl_free_key($pkeyid);
?>

Siehe auch openssl_seal().

Zurück | Zum Anfang | Nach vorne
openssl_get_publickey | Nach oben | openssl_pkcs7_decrypt


openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_decrypt -- Entschlüssen einer S/MIME verschlüsselten Nachricht

Beschreibung

bool openssl_pkcs7_decrypt ( string infilename, string outfilename, mixed recipcert [, mixed recipkey])

Die Funktion openssl_pkcs7_decrypt() entschlüsselt die mit S/MIME verschlüsselte Nachricht, die sich in der Datei befindet, die mit dem Paramter infilename angegeben wurde. Benutzt wird dafür das Zertifikat, angegeben durch recipcert, und der damit verknüpfte private Schlüssel, angegeben durch recipkey.

Die entschlüsselte Nachricht wird in die Datei geschrieben, die mit dem Parameter outfilename angegeben wurde.

Beispiel 1. openssl_pkcs7_decrypt() Beispiel

<?php
// Annahme: $cert enthält Ihr persönliches Zertifikat und
// $key Ihr privates Schlüsselpaar. Sie erhalten eine S/MIME Nachricht.

$infilename = "encrypted.msg";  // diese Datei enthält ihre verschlüsselte Nachricht
$outfilename = "decrypted.msg"; // stellen Sie sicher, dass Sie Schreibrechte haben!

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo "entschlüsselt!";
} else {
    echo "entschlüsseln fehlgeschlagen!";
}
?>

Zurück | Zum Anfang | Nach vorne
openssl_open | Nach oben | openssl_pkcs7_encrypt


openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encrypt -- Verschlüsseln einer S/MIME Nachricht

Beschreibung

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, int flags])

Die Funktion openssl_pkcs7_encrypt() verschlüsselt die Inhalte der Datei, angegeben durch den Pararmeter infile. Die Verschlüsselung benutzt eine RC2 40 Bit Chiffre, so dass diese Inhalte nur von den beabsichtigten Empfängern gelesen werden können, die mit dem Parameter recipcerts angegeben wurden. Der Parameter recipcerts kann ein einzelnes X.509 Zertifikat oder ein Array von X.509 Zertifikaten enthalten. Der Parameter headers ist ein Array aus Headern die den Daten vorangestellt wird, nachdem diese verschlüsselt wurden. Um den Verschlüsselungsprozess zu beeinflussen, können Sie den Paramter flags benutzen - siehe PKCS7 Konstanten. headers kann entweder ein assoziatives Array sein, mit Indizes aus den Headernamen, oder ein indiziertes Array, wobei jedes Element eine einzelne Header-Zeile enthält.

Beispiel 1. openssl_pkcs7_encrypt() Beispiel

<?php
// Die Nachricht die Sie verschlüsselt an Ihren Geheimagenten,
// bekannt als Nachtfalke, schicken wollen.
// Sein Zertifikat liegt Ihnen in der Datei nighthawk.pem vor.
$data = <<<EOD
Nachtfalke,

Streng geheim, nur für Ihre Augen bestimmt!

Der Feind kommt näher! Treffen Sie mich im Cafe um 8.30 abends.
Sie erhalten Ihren gefälschten Ausweis!

HQ
EOD;
// Schlüssel laden
$key = file_get_contents("nighthawk.pem");

// speichern der Nachricht in einer Datei
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// verschlüsseln
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@example.com", // keyed syntax
          "From: HQ <hq@example.com>", // indexed syntax
          "Subject" => "Eyes only"))) {

    // Nachricht verschlüsselt - ab damit!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>

Zurück | Zum Anfang | Nach vorne
openssl_pkcs7_decrypt | Nach oben | openssl_pkcs7_sign


openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_sign -- Signieren einer S/MIME Nachricht

Beschreibung

bool openssl_pkcs7_sign ( string infilename, string outfilename, mixed signcert, mixed privkey, array headers [, int flags [, string extracerts]])

Die Funktion openssl_pkcs7_sign() signiert die Inhalte der Datei, angegeben durch den Pararmeter infilename. Beim Signieren wird das Zertifikat, angegeben durch signcert, und der dazu gehörige private Schlüssel privkey benutzt.

Der Parameter headers ist ein Array aus Headern die den Daten vorangestellt werden, nachdem diese signiert wurden (Für mehr Informationen über das Format dieses Parameters schauen Sie bei der Funktion openssl_pkcs7_encrypt() nach).

Der Parameter flags kann zur Änderung der Ausgabe benutzt werden - siehe PKCS7 Konstanten - falls nicht angegeben ist die Vorgabe PKCS7_DETACHED.

Der Parameter extracerts gibt den Namen einer Datei an, die ein mehrere extra Zertifikate enthält, die in die Unterschrift mit eingefügt werden. Das kann zum Beispiel als Hilfe für einen Empfänger dienen, das von Ihnen benutze Zertifikat zu überprüfen.

Beispiel 1. openssl_pkcs7_sign() Beispiel

<?php
// Die Nachricht die Sie unterschreiben möchten, damit der Empfänger sicher
// sein kann, dass diese Nachricht von ihnen stammt.

$data = <<<EOD

Sie haben meine Erlaubnis 10.000 EUR für Essen auszugeben.

Der CEO
EOD;// Nachricht in einer Datei speichern
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// verschlüsslen
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // keyed syntax
          "From" => "HQ <ceo@example.com>", // indexed syntax
          "Subject" => "Eyes only")
    )) {
    // Nachricht signiert - abschicken!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>

Zurück | Zum Anfang | Nach vorne
openssl_pkcs7_encrypt | Nach oben | openssl_pkcs7_verify


openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_verify -- Überprüft die Unterschrift einer mit S/MIME unterschriebenen Nachricht

Beschreibung

bool openssl_pkcs7_verify ( string filename, int flags [, string outfilename [, array cainfo [, string extracerts]]])

Die Funktion openssl_pkcs7_verify() liest die S/MIME Nachricht, die in der Datei filename enthalten ist und untersucht die digitale Unterschrift. Ist die Unterschrift überprüft wird TRUE zurückgegeben, falls die Unterschrift nicht korrekt ist FALSE (die Nachricht wurde mit dem Zertifikat vermischt oder das unterzeichnende Zertifikat ist ungültig). Tritt ein Fehler auf wird -1 zurückgegeben.

Mit dem Parameter flags könnenn Sie die Art und Weise beeinflussen, wie die Unterschrift überprüft wird - für mehr Informationen siehe PKCS7 Konstanten.

Wird der Parameter outfilename angegeben, sollte dies eine Zeichenkette sein, die den Namen einer Datei enthält, in der das Zertifikat der unterzeichnenden Person im PEM Format gespeichert wird.

Wird der Parameter cainfo angegeben, sollten Informationen über die vertrauenswürdigen CA Zertifikate enthalten sein, die für den Überprüfungsprozess benutzt werden - für mehr Informationen zu diesem Parameter sollten Sie unter Zertifikat Nachweis nachschauen.

Wird der Parameter extracerts angegeben, ist es der Name einer Datei, die ein mehrere extra Zertifikate enthält, die als nicht vertrauenswürdige CAs genutzt werden.

Zurück | Zum Anfang | Nach vorne
openssl_pkcs7_sign | Nach oben | openssl_pkey_export_to_file


openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export_to_file -- Liefert eine exportierbare Representation eines Schlüssels in einer Datei

Beschreibung

bool openssl_pkey_export_to_file ( mixed key, string outfilename [, string passphrase [, array configargs]])

openssl_pkey_export_to_file() saves an ascii-armoured (PEM encoded) Darstellung of key into the file named by outfilename. Der Schlüssel kann optional duch eine passphrase geschützt werden. configargs können Sie benutzen, um den Export feiner abzustimmen. Sie können damit Optionen für die openssl Konfigurationsdatei bestimmen und/oder überschreiben. Für mehr Informationen über configargs schauen Sie bitte bei der Dokumentation zu openssl_csr_new() nach. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Damit diese Funktion korrekt arbeiten kann, benötigen Sie eine installierte, gültige Konfigurationsdatei openssl.cnf. Für weitere Informationen beachten Sie bitte die Hinweise im Abschnitt Installation.

Zurück | Zum Anfang | Nach vorne
openssl_pkcs7_verify | Nach oben | openssl_pkey_export


openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export -- Liefert eine exportierbare Representation eines Schlüssels in einem String

Beschreibung

bool openssl_pkey_export ( mixed key, string &out [, string passphrase [, array configargs]])

openssl_pkey_export() exportiert key als eine PEM kodierte Zeichenkette und speichert diese in out (welcher per Referenz übergeben wird). Der Schlüssel kann optional mit einer passphrase geschützt werden. configargs können Sie benutzen, um den Export feiner abzustimmen. Sie können damit Optionen für die openssl Konfigurationsdatei bestimmen und/oder überschreiben. Für mehr Informationen über configargs schauen Sie bitte bei der Dokumentation zu openssl_csr_new() nach. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Damit diese Funktion korrekt arbeiten kann, benötigen Sie eine installierte, gültige Konfigurationsdatei openssl.cnf. Für weitere Informationen beachten Sie bitte die Hinweise im Abschnitt Installation.

Zurück | Zum Anfang | Nach vorne
openssl_pkey_export_to_file | Nach oben | openssl_pkey_get_private


openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_private -- Liefert einen privaten Schlüssel

Beschreibung

resource openssl_get_privatekey ( mixed key [, string passphrase])

Rückgabewert: im Erfolgsfall eine positive Schlüssel-Ressourcekennung, FALSE im Fehlerfall.

Die Funktion openssl_get_privatekey() analysiert key und bereitet ihn für den Gebrauch durch andere Funktionen vor. Als key kann folgendes angegeben werden:

  1. Eine Zeichenkette im Format file://path/to/file.pem. Die angegebene Datei muss ein PEM kodiertes Zertifikat/privaten Schlüssel enthalten (kann auch beides enthalten sein).

  2. Ein PEM formatierter privater Schlüssel.

Der optionale Parameter passphrase muss angegeben werden, falls der Schlüssel selbst verschlüsselt ist (geschützt durch eine Passphrase).

Zur�ck | Zum Anfang | Nach vorne
openssl_pkey_export | Nach oben | openssl_pkey_get_public


openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_public -- Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet diesen zur Nutzung vor

Beschreibung

resource openssl_pkey_get_public ( mixed certificate)

Rückgabewert: im Erfolgsfall eine positive Schlüssel-Ressourcekennung, FALSE im Fehlerfall.

Die Funktion openssl_get_publickey() extrahiert den öffentlichen Schlüssel aus certificate und bereitet ihn für den Gebrauch durch andere Funktionen vor. certificate kann folgendes sein:

  1. eine X.509 Zertifikatsressource

  2. Eine Zeichenkette im Format file://path/to/file.pem. Die angegebene Datei muss ein PEM kodiertes Zertifikat/privaten Schlüssel enthalten (kann auch beides enthalten sein).

  3. Ein PEM formatierter öffentlicher Schlüssel.

Zur�ck | Zum Anfang | Nach vorne
openssl_pkey_get_private | Nach oben | openssl_pkey_new


openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_new -- Erzeugt einen neuen privaten Schlüssel

Beschreibung

resource openssl_pkey_new ( [array configargs])

openssl_pkey_new() erzeugt ein neues privates und öffentliches Schlüsselpaar. Den öffentlichen Teil des Schlüssels können Sie mit openssl_pkey_get_public() erhalten. Die Schlüsselerzeugung können Sie mit configargs feiner abstimmen (z.B. die Angabe der verwendeten Bits). Weitere Informationen zu configargs entnehmen Sie bitte der Dokumentation zu openssl_csr_new().

Anmerkung: Damit diese Funktion korrekt arbeiten kann, benötigen Sie eine installierte, gültige Konfigurationsdatei openssl.cnf. Für weitere Informationen beachten Sie bitte die Hinweise im Abschnitt Installation.

Zurück | Zum Anfang | Nach vorne
openssl_pkey_get_public | Nach oben | openssl_private_decrypt


openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_decrypt -- Entschlüsselt Daten mit einem privaten Schlüssel

Beschreibung

bool openssl_private_decrypt ( string data, string &decrypted, mixed key [, int padding])

openssl_private_decrypt() entschlüselt data, die zuvor mit openssl_private_encrypt() verschlüsselt wurden und speichert das Ergebnis in decrypted. key muss der private Schlüssel sein, der dem Schlüssel entspricht, mit dem die Daten verschlüsselt wurden. Für padding ist als Standard auf OPENSSL_PKCS1_PADDING gesetzt, aber Sie können auch OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING oder OPENSSL_NO_PADDING benutzen.

Zurück | Zum Anfang | Nach vorne
openssl_pkey_new | Nach oben | openssl_private_encrypt


openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_encrypt -- Verschlüsselt Daten mit einem privaten Schlüssel

Beschreibung

bool openssl_private_encrypt ( string data, string &crypted, mixed key [, int padding])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
openssl_private_decrypt | Nach oben | openssl_public_decrypt


openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_decrypt -- Entschlüsselt Daten mit einem öffentlichen Schlüssel

Beschreibung

bool openssl_public_decrypt ( string data, string &crypted, resource key [, int padding])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
openssl_private_encrypt | Nach oben | openssl_public_encrypt


openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_encrypt -- Verschlüsselt Daten mit einem öffentlichen Schlüssel

Beschreibung

bool openssl_public_encrypt ( string data, string &crypted, mixed key [, int padding])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
openssl_public_decrypt | Nach oben | openssl_seal


openssl_seal

(PHP 4 >= 4.0.4, PHP 5)

openssl_seal -- Verschlüsselt (versiegelt) Daten

Beschreibung

int openssl_seal ( string data, string &sealed_data, array &env_keys, array pub_key_ids)

Rückgabewert: im Erfolgsfall die Länge der verschlüsselten Daten, FALSE bei einem Fehler. War der Aufruf der Funktion erfolgreich, sind die verschlüsselten Daten in sealed_data enthalten und der Umschlagschlüssel steht in env_keys zur Verfügung.

Die Funktion openssl_seal() verschlüsselt data unter Verwendung von RC4 mit einem zufällig erzeugten geheimen Schlüssel. Dieser Schlüssel wird mit jedem öffentlichen Schlüssel verschlüsselt, der mit der Kennung in pub_key_ids verknüpft ist. Jeder verschlüsselte Schlüssel wird in env_keyszurückgegeben.Das bedeutet, dass Sie verschlüsselte Daten an mehrere Empfänger versenden können (unter der Voraussetzung, dass Sie irgendwann die öffentlichen Schlüssel der Empfänger erhalten haben). Jeder Empfänger muss sowohl die verschlüsselten Daten als auch den entsprechenden Umschlagschlüssel erhalten, der mit dem öffentlichen Schlüssel des Empfängers versiegelt wurde.

Beispiel 1. openssl_seal() Beispiel

<?php
// Annahme: $data enthält die zu versiegelnden Daten

// holen und vorbereiten der öffentlichen Schlüssel unserer Empfänger
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);

// Wiederholung für den zweiten Empfänger
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// versiegeln der Nachricht, nur Besitzer von $pk1 und $pk2 können mit
// Schlüsseln $sealed entschlüsseln, entsprechendes gilt für $ekeys[0]
// und $ekeys[1].
openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2));

// Löschen der Schlüssel aus dem Speicher
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

Siehe auch openssl_open().

Zurück | Zum Anfang | Nach vorne
openssl_public_encrypt | Nach oben | openssl_sign


openssl_sign

(PHP 4 >= 4.0.4, PHP 5)

openssl_sign -- Erzeugen einer Unterschrift

Beschreibung

bool openssl_sign ( string data, string signature, mixed priv_key_id)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Rückgabewert: Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Ist der Aufruf der Funktion erfolgreich, steht die Signatur im Parameter signature zur Verfügung.

Die Funktion openssl_sign() errechnet eine Unterschrift für die im Parameter data angegebenen Daten. Für das hashing der Daten wird SHA1 benutzt und anschliessend wird mit dem privaten Schlüssel priv_key_id verschlüsselt. Beachten Sie, dass die Daten selbst nicht verschlüsselt werden.

Beispiel 1. openssl_sign() Beispiel

<?php
// Annahme: $data enthält die Daten, die signiert werden sollen.

// holen und vorbereiten des privaten Schlüssels aus einer Datei.
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// errechnen der Unterschrift
openssl_sign($data, $signature, $pkeyid);

// Löschen des Schlüssels aus dem Speicher
openssl_free_key($pkeyid);
?>

Siehe auch openssl_verify().

Zurück | Zum Anfang | Nach vorne
openssl_seal | Nach oben | openssl_verify


openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verify -- Überprüft eine Unterschrift

Beschreibung

int openssl_verify ( string data, string signature, mixed pub_key_id)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Rückgabewerte: Bei korrekter Unterschrift wird 1 zurückgegeben, ist die Unterschrift nicht korrekt wird 0 zurückgegeben. Tritt ein Fehler auf wird -1 zurückgegeben.

Die Funktion openssl_verify() überprüft die Korrektheit der Unterschrift signature für die angegebenen Daten data mit Hilfe des öffentlichen Schlüssels pub_key_id. Das muss der passende öffentliche zum privaten Schlüssel sein, der für die Unterschrift benutzt wurde.

Beispiel 1. openssl_verify() Beispiel

<?php
// Annahme: $data und $signature enthalten die Daten und die Unterschrift

// holen des öffentlichen Schlüssels aus dem Zertifikat und vorbereiten
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);

// feststellen, ob die Unterschrift ok ist oder nicht
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
    echo "gut";
} elseif ($ok == 0) {
    echo "schlecht";
} else {
    echo "Mist, Fehler beim Überprüfen der Signatur";
}

// Löschen des Schlüssels aus dem Speicher
openssl_free_key($pubkeyid);
?>

Siehe auch openssl_sign().

Zurück | Zum Anfang | Nach vorne
openssl_sign | Nach oben | openssl_x509_check_private_key


openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_check_private_key -- Überprüft, ob ein privater Schlüssel zu einem Zertifikat passt

Beschreibung

bool openssl_x509_check_private_key ( mixed cert, mixed key)

openssl_x509_check_private_key() gibt TRUE zurück, wenn key der private Schlüssel ist, der zum Zertifikat cert gehört, ansonsten FALSE.

Zurück | Zum Anfang | Nach vorne
openssl_verify | Nach oben | openssl_x509_checkpurpose


openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurpose -- Überprüft ob ein Zertifikat für einen bestimmten Zweck benutzt werden kann

Beschreibung

bool openssl_x509_checkpurpose ( mixed x509cert, int purpose, array cainfo [, string untrustedfile])

Kann das Zertifikat für den beabsichtigten Zweck benutzt werden, gibt diese Funktion TRUE zurück; falls nicht FALSE, bei einem Fehler -1.

Die Funktion openssl_x509_checkpurpose() untersucht das mit dem Parameter x509cert angegebene Zertifikat darauf, ob es für den mit purpose angegebenen Zweck benutzt werden kann.

Der Parameter cainfo sollte ein Array aus vertrauenswürdigen CA Dateien/Verzeichnissen enthalten. Dieses Array ist genauer beschrieben unter Zertifikat Nachweis.

Der Parameter untrustedfile, falls angegeben, ist der Name einer PEM verschlüsselten Datei, die Zertifikate enthält, die dazu benutzt werden können, das Zertifikat zu überprüfen, obwohl kein Vertrauen zu diesen Zertifikaten besteht, die aus dieser Datei stammen.

Tabelle 1. openssl_x509_checkpurpose() Zweck

Konstante | Beschreibung
X509_PURPOSE_SSL_CLIENT | Kann das Zertifikat für die Clientseite einer SSL Verbindung benutzt werden?
X509_PURPOSE_SSL_SERVER | Kann das Zertifikat für die Serverseite einer SSL Verbindung benutzt werden?
X509_PURPOSE_NS_SSL_SERVER | Kann das Zertifikat für den Netscape SSL Server benutzt werden?
X509_PURPOSE_SMIME_SIGN | Kann das Zertifikat zum Signieren einer S/MIME Email benutzt werden?
X509_PURPOSE_SMIME_ENCRYPT | Kann das Zertifikat zum Verschlüsseln einer S/MIME Email benutzt werden?
X509_PURPOSE_CRL_SIGN | Kann das Zertifikat zum signieren einer Zertifikatswiderrufliste (CRL) benutzt werden?
X509_PURPOSE_ANY | Kann das Zertifikat für beliebige/alle Zwecke benutzt werden?
Diese Optionen sind keine Bitfelder - Sie können nur eine einzige angeben!

Zurück | Zum Anfang | Nach vorne
openssl_x509_check_private_key | Nach oben | openssl_x509_export_to_file


openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export_to_file -- Exportiert ein Zertifikat in eine Datei

Beschreibung

bool openssl_x509_export_to_file ( mixed x509, string outfilename [, bool notext])

openssl_x509_export_to_file() speichert das x509 Zertifikat in einem PEM kodierten Format in der Datei outfilename.

Der optionale Parameter notext beeinflusst den Umfang der Ausgabe; ist dieser auf FALSE gesetzt werden zusätzliche, für Menschen lesbare, Informationen in der Datei mit ausgegeben. Der Standardwert von notext ist TRUE.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
openssl_x509_checkpurpose | Nach oben | openssl_x509_export


openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export -- Exportiert ein Zertifikat in eine Zeichenkette

Beschreibung

bool openssl_x509_export ( mixed x509, string &output [, bool notext])

openssl_x509_export() speichert das x509 Zertifikat in einem PEM kodierten Format in der Zeichenkette output.

Der optionale Parameter notext beeinflusst den Umfang der Ausgabe; ist dieser auf FALSE gesetzt werden zusätzliche, für Menschen lesbare, Informationen in der Datei mit ausgegeben. Der Standardwert von notext ist TRUE.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
openssl_x509_export_to_file | Nach oben | openssl_x509_free


openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_free -- Freigabe einer Zertifikats Resource

Beschreibung

void openssl_x509_free ( resource x509cert)

Die Funktion openssl_x509_free() gibt den Speicherbereich frei, der von einer Zertifikatsressource x509cert belegt wurde.

Zurück | Zum Anfang | Nach vorne
openssl_x509_export | Nach oben | openssl_x509_parse


openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_parse -- Analyse eines X509 Zertifikats und Rückgabe der Information in einem Array

Beschreibung

array openssl_x509_parse ( mixed x509cert [, bool shortnames])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Die Funktion openssl_x509_parse() liefert Informationen über das angegebene Zertifikat x509cert, wie Name des Gegenstands, Name des Herausgebers, Zweck, Zeitangaben (gültig seit... gültig bis), usw. Der Parameter shortnames kontrolliert wie die Daten im Array indiziert werden - wenn shortnames TRUE ist (Standard), werden die Felder in Kurzform indiziert, ansonsten werden lange Namen verwendet - z.B.: CN ist die Kurzform von commonName.

Die Struktur der zurückgegeben Daten ist bis jetzt (absichtlich) noch nicht dokumentiert, da es noch Änderungen geben wird.

Zurück | Zum Anfang | Nach vorne
openssl_x509_free | Nach oben | openssl_x509_read


openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_read -- Analysiert ein X.509 Zertitifikat und gibt eine Ressource-Kennung zurück

Beschreibung

resource openssl_x509_read ( mixed x509certdata)

Die Funktion openssl_x509_read() analysiert das Zertifikat x509certdata und gibt eine Ressourcekennung zurück.

Zurück | Zum Anfang | Nach vorne
openssl_x509_parse | Nach oben | Oracle Funktionen


Oracle Funktionen

PHP Handbuch
Zurück Nach vorne

LXXVI. Oracle Funktionen

Einführung

Diese Erweiterung fügt die Unterstützung für Oracle Datenbanken hinzu. Siehe auch die Oracle 8 Funktionen.

Installation

Sie müssen PHP mit der Option --with-oracle[=DIR] übersetzen, wobei die Voreinstellung für DIR Ihre Umgebungsvariable ORACLE_HOME ist.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

ORA_BIND_INOUT (integer)

ORA_BIND_IN (integer)

ORA_BIND_OUT (integer)

ORA_FETCHINTO_ASSOC (integer)

ORA_FETCHINTO_NULLS (integer)

Inhaltsverzeichnis
ora_bind -- Bindet eine PHP-Variable an einen Oracle-Parameter
ora_close -- Schließt einen Oracle-Cursor
ora_columnname -- Liefert den Namen eines Oracle-Ergebnisfeldes
ora_columnsize -- Liefert die Größe eines Oracle-Ergebnisfeldes
ora_columntype -- Liefert den Typ eines Oracle-Ergebnisfeldes
ora_commit -- Bestätigt eine Oracle-Transaktion
ora_commitoff -- Schaltet die automatische Bestätigung ab
ora_commiton -- Schaltet die automatische Bestätigung ein
ora_do -- Kombiniert die Funktionen Ora_Parse, Ora_Exec und Ora_Fetch
ora_error -- Liefert eine Oracle-Fehlermeldung
ora_errorcode -- Liefert den Oracle-Fehlercode
ora_exec -- Führt eine analysierte Anweisung an einem Oracle-Cursor aus
ora_fetch_into -- Ruft einen Datensatz in ein angegebenes Ergebnisarray ab
ora_fetch -- Ruft einen Datensatz eines Cursors ab
ora_getcolumn -- Liefert die Daten eines abgerufenen Feldes
ora_logoff -- Beendet eine Oracle-Verbindung
ora_logon -- Baut eine Oracle-Verbindung auf
ora_numcols -- Liefert die Anzahl der Felder
ora_numrows -- Liefert die Anzahl der Datensätze
ora_open -- Öffnet einen Oracle-Cursor
ora_parse -- Analysiert eine SQL-Anweisung mit Oracle
ora_plogon -- Baut eine persistente Oracle-Verbindung auf
ora_rollback -- Macht eine Transaktion rückgängig

Zurück | Zum Anfang | Nach vorne
openssl_x509_read | Nach oben | ora_bind


ora_bind

(PHP 3, PHP 4 , PHP 5)

ora_bind -- Bindet eine PHP-Variable an einen Oracle-Parameter

Beschreibung

bool ora_bind ( resource Cursor, string PHP-Variablenname, string SQL-Parametername, int Länge [, int Typ])

Diese Funktion bindet die genannte PHP-Variable an einen SQL-Parameter. Der SQL-Parameter muss von der Form ":name" sein. Mit dem optionalen Parameter Typ können sie definieren, ob der SQL-Parameter ein in/out- (0, Grundeinstellung), in- (1) oder out- (2) Parameter ist. Ab PHP 3.0.1 können Sie statt der Zahlen die Konstanten ORA-BIND_INOUT, ORA_BIND_IN und ORA_BIND_OUT verwenden.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

ora_bind() muss nach ora_parse() und vor ora_exec() aufgerufen werden. Die Eingabewerte können durch Zuweisung an die gebundenen PHP-Variablen angegeben werden. Nach dem Aufruf von ora_exec() enthalten die gebunden PHP-Variablen die Ausgabewerte, falls diese verfügbar sind.

Beispiel 1. ora_bind() Beispiel

<?php
  ora_parse($curs, "declare tmp INTEGER; begin tmp := :in; :out := tmp; :x := 7.77; end;");
  ora_bind($curs, "ergebnis", ":x", $len, 2);
  ora_bind($curs, "eingabe", ":in", 5, 1);
  ora_bind($curs, "ausgabe", ":out", 5, 2);
  $eingabe = 765;
  ora_exec($curs);
  echo "Ergebnis: $ergebnis<br />Ausgabe: $ausgabe<BR>Eingabe: $eingabe";
?>

Zurück | Zum Anfang | Nach vorne
Oracle Funktionen | Nach oben | ora_close


ora_close

(PHP 3, PHP 4 , PHP 5)

ora_close -- Schließt einen Oracle-Cursor

Beschreibung

bool ora_close ( resource Cursor)

Diese Funktion schließt den mittels ora_open() geöffneten Daten-Cursor.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Zurück | Zum Anfang | Nach vorne
ora_bind | Nach oben | ora_columnname


ora_columnname

(PHP 3, PHP 4 , PHP 5)

ora_columnname -- Liefert den Namen eines Oracle-Ergebnisfeldes

Beschreibung

string ora_columnname ( resource Cursor, int Feld)

Gibt den Namen des Feldes Feld des Cursors Cursor zurück. Der zurückgegebene Name ist komplett in Großbuchstaben. Feld 0 ist das erste Feld.

Zurück | Zum Anfang | Nach vorne
ora_close | Nach oben | ora_columnsize


ora_columnsize

(PHP 3, PHP 4 , PHP 5)

ora_columnsize -- Liefert die Größe eines Oracle-Ergebnisfeldes

Beschreibung

int ora_columnsize ( resource Cursor, int Feld)

Gibt die Größe des Oracle-Feldes Feld des Cursors Cursor zurück. Feld 0 ist das erste Feld.

Zurück | Zum Anfang | Nach vorne
ora_columnname | Nach oben | ora_columntype


ora_columntype

(PHP 3, PHP 4 , PHP 5)

ora_columntype -- Liefert den Typ eines Oracle-Ergebnisfeldes

Beschreibung

string ora_columntype ( resource Cursor, int Feld)

Gibt den Oracle-Datentyp des Feldes Feld des Cursors Cursor zurück. Feld 0 ist das erste Feld. Der zurückgegebene Typ ist einer der folgenden:

"VARCHAR2"
"VARCHAR"
"CHAR"
"NUMBER"
"LONG"
"LONG RAW"
"ROWID"
"DATE"
"CURSOR"

Zurück | Zum Anfang | Nach vorne
ora_columnsize | Nach oben | ora_commit


ora_commit

(PHP 3, PHP 4 , PHP 5)

ora_commit -- Bestätigt eine Oracle-Transaktion

Beschreibung

bool ora_commit ( resource Verbindung)

Diese Funktion bestätigt eine Oracle-Transaktion. Eine Transaktion ist definiert als Gesamtheit aller Änderungen seit der letzten Bestätigung/dem letzten Rollback, seit die automatische Bestätigung abgeschaltet wurde oder seit die Verbindung besteht.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Siehe auch ora_commiton() und ora_commitoff().

Zurück | Zum Anfang | Nach vorne
ora_columntype | Nach oben | ora_commitoff


ora_commitoff

(PHP 3, PHP 4 , PHP 5)

ora_commitoff -- Schaltet die automatische Bestätigung ab

Beschreibung

bool ora_commitoff ( resource Verbindung)

Diese Funktion schaltet bei der angegebenen Verbindung die automatische Bestätigung nach jedem Aufruf von ora_exec() ab.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Siehe auch ora_commiton() und ora_commit().

Zurück | Zum Anfang | Nach vorne
ora_commit | Nach oben | ora_commiton


ora_commiton

(PHP 3, PHP 4 , PHP 5)

ora_commiton -- Schaltet die automatische Bestätigung ein

Beschreibung

bool ora_commiton ( resource Verbindung)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Diese Funktion schaltet die automatische Bestätigung nach jedem Aufruf von ora_exec() über die angegebene Verbindung ein.

Siehe auch ora_commitoff() und ora_commit().

Zurück | Zum Anfang | Nach vorne
ora_commitoff | Nach oben | ora_do


ora_do

(PHP 3, PHP 4 , PHP 5)

ora_do -- Kombiniert die Funktionen Ora_Parse, Ora_Exec und Ora_Fetch

Beschreibung

resource ora_do ( resource Verbindung, string Abfrage)

Die Funktion ora_do() ist eine schnelle
Kombination von ora_parse(),
ora_exec() und ora_fetch().
Sie analysiert eine Anweisung, führt sie aus und ruft dann den
ersten Datensatz des Ergebnisses ab.

Diese Funktion gibt bei Erfolg einen Cursor-Index zurück oder FALSE bei Auftreten eines Fehlers. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Siehe auch: ora_parse(), ora_exec() und ora_fetch().

Zurück | Zum Anfang | Nach vorne
ora_commiton | Nach oben | ora_error


ora_error

(PHP 3, PHP 4 , PHP 5)

ora_error -- Liefert eine Oracle-Fehlermeldung

Beschreibung

string ora_error ( resource Cursor_oder_Verbindung)

Gibt eine Fehlermeldung in der Form XXX-NNNNN zurück, worin XXX angibt, wo der Fehler auftrat und NNNNN die Fehlermeldung identifiziert.

Anmerkung: Die Unterstützung von Verbindungs-IDs wurde in 3.0.4 eingeführt.

Bei den Unix-Versionen von Oracle können Sie Einzelheiten über eine Fehlermeldung auf die folgende Weise finden: $ oerr ora 00001 00001, 00000, "unique constraint (%s.%s) violated" // *Cause: An update or insert statement attempted to insert a duplicate key // For Trusted ORACLE configured in DBMS MAC mode, you may see // this message if a duplicate entry exists at a different level. // *Action: Either remove the unique restriction or do not insert the key

Zurück | Zum Anfang | Nach vorne
ora_do | Nach oben | ora_errorcode


ora_errorcode

(PHP 3, PHP 4 , PHP 5)

ora_errorcode -- Liefert den Oracle-Fehlercode

Beschreibung

int ora_errorcode ( resource Cursor_oder_Verbindung)

Gibt den numerischen Fehlercode der zuletzt ausgeführten Anweisung des angegebenen Cursors, bzw. der angegebenen Verbindung zurück.

Anmerkung: Die Unterstützung von Verbindungs-IDs wurde in 3.0.4 eingeführt.

Zurück | Zum Anfang | Nach vorne
ora_error | Nach oben | ora_exec


ora_exec

(PHP 3, PHP 4 , PHP 5)

ora_exec -- Führt eine analysierte Anweisung an einem Oracle-Cursor aus

Beschreibung

bool ora_exec ( resource Cursor)

ora_exec() führt die schon durch ora_parse() analysierte Anweisung cursor aus.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Siehe auch: ora_parse(), ora_fetch() und ora_do().

Zurück | Zum Anfang | Nach vorne
ora_errorcode | Nach oben | ora_fetch_into


ora_fetch_into

(PHP 3, PHP 4 , PHP 5)

ora_fetch_into -- Ruft einen Datensatz in ein angegebenes Ergebnisarray ab

Beschreibung

int ora_fetch_into ( resource Cursor, array Ergebnis [, int Flags])

Ruft einen Datensatz in ein Array ab. Der Parameter flags kann zwei Flag-Werte annehmen: ist das ORA_FETCHINTO_NULLS-Flag gesetzt, werden Felder mit dem Wert NULL im Array gesetzt; ist das Flag ORA_FETCHINTO_ASSOC gesetzt, wird ein assoziatives Array erzeugt.

Gibt die Anzahl der abgerufenen Felder zurück.

Beispiel 1. ora_fetch_into()

<?php
$ergebnisse = array();
ora_fetch_into($cursor, $ergebnisse);
echo $ergebnisse[0];
echo $ergebnisse[1];
$ergebnisse = array();
ora_fetch_into($cursor, $ergebnisse, ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC);
echo $ergebnisse['MyColumn'];
?>

Siehe auch: ora_parse(),
ora_exec(), ora_fetch() und
ora_do().

Zurück | Zum Anfang | Nach vorne
ora_exec | Nach oben | ora_fetch


ora_fetch

(PHP 3, PHP 4 , PHP 5)

ora_fetch -- Ruft einen Datensatz eines Cursors ab

Beschreibung

bool ora_fetch ( resource Cursor)

Diese Funktion ruft einen Datensatz des angegebenen Cursors Cursor ab.

Gibt TRUE (Datensatz wurde abgerufen) oder FALSE (keine weiteren Datensätze oder Auftreten eines Fehlers) zurück. Bei Auftreten eines Fehlers bekommen Sie die Einzelheiten mit den Funktionen ora_error() und ora_errorcode(). Wenn es keinen Fehler gab, gibt ora_errorcode() 0 zurück.

Siehe auch: ora_parse(), ora_exec() und ora_do().

Zurück | Zum Anfang | Nach vorne
ora_fetch_into | Nach oben | ora_getcolumn


ora_getcolumn

(PHP 3, PHP 4 , PHP 5)

ora_getcolumn -- Liefert die Daten eines abgerufenen Feldes

Beschreibung

mixed ora_getcolumn ( resource Cursor, int Feld)

Diese Funktion liefert die Daten eines Feld- oder Funktionsergebnisses.

Gibt die Felddaten zurück. Falls ein Fehler auftritt, wird FALSE zurückgegeben und ora_errorcode() gibt einen Wert (nicht NULL) zurück. Beachten Sie aber, dass die false-Überprüfung der Ergebnisse dieser Funktion auch dann wahr ergeben kann, wenn gar kein Fehler auftrat (Ergebnis NULL, leere Zeichenkette, die Zahl 0, die Zeichenkette "0").

Zurück | Zum Anfang | Nach vorne
ora_fetch | Nach oben | ora_logoff


ora_logoff

(PHP 3, PHP 4 , PHP 5)

ora_logoff -- Beendet eine Oracle-Verbindung

Beschreibung

bool ora_logoff ( resource Verbindung)

Diese Funktion meldet den Benutzer ab und trennt die Verbindung zum Server.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

See also ora_logon().

Zurück | Zum Anfang | Nach vorne
ora_getcolumn | Nach oben | ora_logon


ora_logon

(PHP 3, PHP 4 , PHP 5)

ora_logon -- Baut eine Oracle-Verbindung auf

Beschreibung

resource ora_logon ( string Benutzername, string Passwort)

Gibt bei Erfolg einen Verbindungs-Index oder bei Auftreten eines Fehlers FALSE zurück. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Diese Funktion baut mit Benutzername und Passwort eine Verbindung zwischen PHP und einer Oracle Datenbank auf.

Verbindungen können unter Verwendung von SQL*Net durch Eingabe des TNS-Namens zu Benutzername wie folgt aufgebaut werden:

<?php
$conn = Ora_Logon("Benutzername@TNSNAME", "pass");
?>

Falls Sie einen Zeichensatz mit nicht-ASCII-Zeichen verwenden, sollten Sie sicherstellen, dass in ihrer Umgebung NLS_LANG gesetzt ist. Bei Servermodulen sollten Sie sie in der Umgebung des Servers setzen, bevor Sie den Server starten.

Zurück | Zum Anfang | Nach vorne
ora_logoff | Nach oben | ora_numcols


ora_numcols

(PHP 3, PHP 4 , PHP 5)

ora_numcols -- Liefert die Anzahl der Felder

Beschreibung

int ora_numcols ( resource Cursor)

ora_numcols() gibt die Anzahl der Felder eines Ergebnisses zurück. Aussagekräftige Werte werden nur nach einer analysieren/ausführen/abrufen-Abfolge zurückgegeben.

Siehe auch: ora_parse(),
ora_exec(), ora_fetch() und
ora_do().

Zurück | Zum Anfang | Nach vorne
ora_logon | Nach oben | ora_numrows


ora_numrows

(PHP 3, PHP 4 , PHP 5)

ora_numrows -- Liefert die Anzahl der Datensätze

Beschreibung

int ora_numrows ( resource Cursor)

ora_numrows() gibt die Anzahl der Datensätze eines Ergebnisses zurück.

Zurück | Zum Anfang | Nach vorne
ora_numcols | Nach oben | ora_open


ora_open

(PHP 3, PHP 4 , PHP 5)

ora_open -- Öffnet einen Oracle-Cursor

Beschreibung

resource ora_open ( resource Verbindung)

Gibt bei Erfolg einen Cursor-Index oder bei Auftreten eines Fehlers FALSE zurück. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Diese Funktion öffnet einen Oracle-Cursor, der mit Verbindung verknüpft ist.

Zurück | Zum Anfang | Nach vorne
ora_numrows | Nach oben | ora_parse


ora_parse

(PHP 3, PHP 4 , PHP 5)

ora_parse -- Analysiert eine SQL-Anweisung mit Oracle

Beschreibung

bool ora_parse ( resource Cursor, string SQL-Anweisung, int aufschieben)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Diese Funktion analysiert eine SQL-Anweisung oder einen PL/SQL-Block und verknüpft diese(n) mit dem angegebenen Cursor.

Siehe auch: ora_exec(), ora_fetch() und ora_do().

Zurück | Zum Anfang | Nach vorne
ora_open | Nach oben | ora_plogon


ora_plogon

(PHP 3, PHP 4 , PHP 5)

ora_plogon -- Baut eine persistente Oracle-Verbindung auf

Beschreibung

resource ora_plogon ( string Benutzername, string Passwort)

Diese Funktion baut mit Benutzername und Passwort eine persistente Verbindung zwischen PHP und einer Oracle Datenbank auf.

Siehe auch: ora_logon().

Zurück | Zum Anfang | Nach vorne
ora_parse | Nach oben | ora_rollback


ora_rollback

(PHP 3, PHP 4 , PHP 5)

ora_rollback -- Macht eine Transaktion rückgängig

Beschreibung

bool ora_rollback ( resource Verbindung)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Diese Funktion macht eine Oracle-Transaktion rückgängig (Definition einer Transaktion: siehe ora_commit()).

Zurück | Zum Anfang | Nach vorne
ora_plogon | Nach oben | Ovrimos SQL Functions


Ovrimos SQL Functions

PHP Handbuch
Zurück Nach vorne

LXXVII. Ovrimos SQL Functions

Einführung

Ovrimos SQL Server, is a client/server, transactional RDBMS combined with Web capabilities and fast transactions.

Anmerkung: This extension is not available on Windows platforms.

Anforderungen

You'll need to install the sqlcli library available in the Ovrimos SQL Server distribution.

Installation

To enable Ovrimos support in PHP just compile PHP with the --with-ovrimos[=DIR] parameter to your configure line. DIR is the Ovrimos' libsqlcli install directory.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Beispiele

Beispiel 1. Connect to Ovrimos SQL Server and select from a system table

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This will just connect to an Ovrimos SQL server.

Inhaltsverzeichnis
ovrimos_close -- Closes the connection to ovrimos
ovrimos_commit -- Commits the transaction
ovrimos_connect -- Connect to the specified database
ovrimos_cursor -- Returns the name of the cursor
ovrimos_exec -- Executes an SQL statement
ovrimos_execute -- Executes a prepared SQL statement
ovrimos_fetch_into -- Fetches a row from the result set
ovrimos_fetch_row -- Fetches a row from the result set
ovrimos_field_len -- Returns the length of the output column
ovrimos_field_name -- Returns the output column name
ovrimos_field_num -- Returns the (1-based) index of the output column
ovrimos_field_type -- Returns the (numeric) type of the output column
ovrimos_free_result -- Frees the specified result_id
ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes
ovrimos_num_fields -- Returns the number of columns
ovrimos_num_rows -- Returns the number of rows affected by update operations
ovrimos_prepare -- Prepares an SQL statement
ovrimos_result_all -- Prints the whole result set as an HTML table
ovrimos_result -- Retrieves the output column
ovrimos_rollback -- Rolls back the transaction

Zurück | Zum Anfang | Nach vorne
ora_rollback | Nach oben | ovrimos_close


ovrimos_close

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_close -- Closes the connection to ovrimos

Description

void ovrimos_close ( int connection)

ovrimos_close() is used to close the specified connection to Ovrimos. This has the effect of rolling back uncommitted transactions.

Zurück | Zum Anfang | Nach vorne
Ovrimos SQL Functions | Nach oben | ovrimos_commit


ovrimos_commit

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_commit -- Commits the transaction

Description

bool ovrimos_commit ( int connection_id)

ovrimos_commit() is used to commit the transaction. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ovrimos_close | Nach oben | ovrimos_connect


ovrimos_connect

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_connect -- Connect to the specified database

Description

int ovrimos_connect ( string host, string db, string user, string password)

ovrimos_connect() is used to connect to the specified database.

ovrimos_connect() returns a connection id (greater than 0) or 0 for failure. The meaning of host and db are those used everywhere in Ovrimos APIs. host is a host name or IP address and db is either a database name, or a string containing the port number.

Beispiel 1. ovrimos_connect() Example

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
The above example will connect to the database and print out the specified table.

Zurück | Zum Anfang | Nach vorne
ovrimos_commit | Nach oben | ovrimos_cursor


ovrimos_cursor

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_cursor -- Returns the name of the cursor

Description

string ovrimos_cursor ( int result_id)

ovrimos_cursor() returns the name of the cursor. Useful when wishing to perform positioned updates or deletes.

Zurück | Zum Anfang | Nach vorne
ovrimos_connect | Nach oben | ovrimos_exec


ovrimos_exec

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_exec -- Executes an SQL statement

Description

int ovrimos_exec ( int connection_id, string query)

ovrimos_exec() executes an SQL statement (query or update) and returns a result_id or FALSE. Evidently, the SQL statement should not contain parameters.

Zurück | Zum Anfang | Nach vorne
ovrimos_cursor | Nach oben | ovrimos_execute


ovrimos_execute

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_execute -- Executes a prepared SQL statement

Description

bool ovrimos_execute ( int result_id [, array parameters_array])

ovrimos_execute() executes a prepared statement. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. If the prepared statement contained parameters (question marks in the statement), the correct number of parameters should be passed in an array. Notice that I don't follow the PHP convention of placing just the name of the optional parameter inside square brackets. I couldn't bring myself on liking it.

Zurück | Zum Anfang | Nach vorne
ovrimos_exec | Nach oben | ovrimos_fetch_into


ovrimos_fetch_into

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_into -- Fetches a row from the result set

Description

bool ovrimos_fetch_into ( int result_id, array result_array [, string how [, int rownumber]])

ovrimos_fetch_into() fetches a row from the result set into result_array, which should be passed by reference. Which row is fetched is determined by the two last parameters. how is one of Next (default), Prev, First, Last, Absolute, corresponding to forward direction from current position, backward direction from current position, forward direction from the start, backward direction from the end and absolute position from the start (essentially equivalent to 'first' but needs 'rownumber'). Case is not significant. rownumber is optional except for absolute positioning. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. A fetch into example

<?php
$conn=ovrimos_connect("neptune", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_into($res, &$row)) {
            list($table_id, $table_name) = $row;
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_into($res, &$row)) {
                list($table_id, $table_name) = $row;
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This example will fetch a row.

Zurück | Zum Anfang | Nach vorne
ovrimos_execute | Nach oben | ovrimos_fetch_row


ovrimos_fetch_row

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_row -- Fetches a row from the result set

Description

bool ovrimos_fetch_row ( int result_id [, int how [, int row_number]])

ovrimos_fetch_row() fetches a row from the result set. Column values should be retrieved with other calls. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. A fetch row example

<?php
$conn = ovrimos_connect("remote.host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_row($res, "First")) {
            $table_id = ovrimos_result($res, 1);
            $table_name = ovrimos_result($res, 2);
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_row($res, "Next")) {
                $table_id = ovrimos_result($res, "table_id");
                $table_name = ovrimos_result($res, "table_name");
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This will fetch a row and print the result.

Zurück | Zum Anfang | Nach vorne
ovrimos_fetch_into | Nach oben | ovrimos_field_len


ovrimos_field_len

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_len -- Returns the length of the output column

Description

int ovrimos_field_len ( int result_id, int field_number)

ovrimos_field_len() is used to get the length of the output column with number field_number (1-based), in result result_id.

Zurück | Zum Anfang | Nach vorne
ovrimos_fetch_row | Nach oben | ovrimos_field_name


ovrimos_field_name

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_name -- Returns the output column name

Description

string ovrimos_field_name ( int result_id, int field_number)

ovrimos_field_name() returns the output column name at the (1-based) index specified.

Zurück | Zum Anfang | Nach vorne
ovrimos_field_len | Nach oben | ovrimos_field_num


ovrimos_field_num

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_num -- Returns the (1-based) index of the output column

Description

int ovrimos_field_num ( int result_id, string field_name)

ovrimos_field_num() returns the (1-based) index of the output column specified by field_name, or FALSE.

Zurück | Zum Anfang | Nach vorne
ovrimos_field_name | Nach oben | ovrimos_field_type


ovrimos_field_type

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_type -- Returns the (numeric) type of the output column

Description

int ovrimos_field_type ( int result_id, int field_number)

ovrimos_field_type() returns the (numeric) type of the output column at the (1-based) index specified by field_number.

Zurück | Zum Anfang | Nach vorne
ovrimos_field_num | Nach oben | ovrimos_free_result


ovrimos_free_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_free_result -- Frees the specified result_id

Description

bool ovrimos_free_result ( int result_id)

ovrimos_free_result() frees the specified result_id. Returns TRUE.

Zurück | Zum Anfang | Nach vorne
ovrimos_field_type | Nach oben | ovrimos_longreadlen


ovrimos_longreadlen

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes

Description

bool ovrimos_longreadlen ( int result_id, int length)

ovrimos_longreadlen() specifies how many bytes are to be retrieved from long datatypes (long varchar and long varbinary). Default is zero. It currently sets this parameter the specified result set. Returns TRUE.

Zurück | Zum Anfang | Nach vorne
ovrimos_free_result | Nach oben | ovrimos_num_fields


ovrimos_num_fields

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_fields -- Returns the number of columns

Description

int ovrimos_num_fields ( int result_id)

ovrimos_num_fields() returns the number of columns in a result_id resulting from a query.

Zurück | Zum Anfang | Nach vorne
ovrimos_longreadlen | Nach oben | ovrimos_num_rows


ovrimos_num_rows

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_rows -- Returns the number of rows affected by update operations

Description

int ovrimos_num_rows ( int result_id)

ovrimos_num_rows() returns the number of rows affected by update operations.

Zurück | Zum Anfang | Nach vorne
ovrimos_num_fields | Nach oben | ovrimos_prepare


ovrimos_prepare

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_prepare -- Prepares an SQL statement

Description

int ovrimos_prepare ( int connection_id, string query)

ovrimos_prepare() prepares an SQL statement and returns a result_id (or FALSE on failure).

Beispiel 1. Connect to Ovrimos SQL Server and prepare a statement

<?php
$conn=ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_prepare($conn, "select table_id, table_name
                                  from sys.tables where table_id=1");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute($res)) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>
This will connect to Ovrimos SQL Server, prepare a statement and the execute it.

Zurück | Zum Anfang | Nach vorne
ovrimos_num_rows | Nach oben | ovrimos_result_all


ovrimos_result_all

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result_all -- Prints the whole result set as an HTML table

Description

int ovrimos_result_all ( int result_id [, string format])

ovrimos_result_all() prints the whole result set as an HTML table. Returns the number of rows in the generated table.

Beispiel 1. Prepare a statement, execute, and view the result

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_prepare($conn, "select table_id, table_name
                                    from sys.tables where table_id = 7");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute($res, array(3))) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>
This will execute an SQL statement and print the result in an HTML table.

Beispiel 2. ovrimos_result_all() with meta-information

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name
                                 from sys.tables where table_id = 1");
    if ($res != 0) {
        echo "Statement ok! cursor=" . ovrimos_cursor($res) . "\n";
        $colnb = ovrimos_num_fields($res);
        echo "Output columns=" . $colnb . "\n";
        for ($i=1; $i <= $colnb; $i++) {
            $name = ovrimos_field_name($res, $i);
            $type = ovrimos_field_type($res, $i);
            $len = ovrimos_field_len($res, $i);
            echo "Column " . $i . " name=" . $name . " type=" . $type . " len=" . $len . "\n";
        }
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Beispiel 3. ovrimos_result_all() example

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "update test set i=5");
    if ($res != 0) {
        echo "Statement ok!";
        echo ovrimos_num_rows($res)." rows affected\n";
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Zurück | Zum Anfang | Nach vorne
ovrimos_prepare | Nach oben | ovrimos_result


ovrimos_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result -- Retrieves the output column

Description

string ovrimos_result ( int result_id, mixed field)

ovrimos_result() retrieves the output column specified by field, either as a string or as an 1-based index. Returns FALSE on failure.

Zurück | Zum Anfang | Nach vorne
ovrimos_result_all | Nach oben | ovrimos_rollback


ovrimos_rollback

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_rollback -- Rolls back the transaction

Description

bool ovrimos_rollback ( int connection_id)

ovrimos_rollback() is used to roll back the transaction. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
ovrimos_result | Nach oben | Funktionen zur Ausgabesteuerung


Funktionen zur Ausgabesteuerung

PHP Handbuch
Zurück Nach vorne

LXXVIII. Funktionen zur Ausgabesteuerung

Mit den Funktionen zur Ausgabesteuerung können Sie die Ausgabe eines Skripts steuern. Dies kann in verschiedenen Situationen ganz nützlich sein, besonders, wenn Sie header an den Browser schicken müssen, nachdem Ihr Skript bereits etwas ausgegeben hat. Die Ausgabesteuerungsfunktionen gelten nicht für header, die mit header() oder setcookie() geschickt wurden, sondern nur für Daten ,die mit echo() gesendet wurden oder für Daten zwischen PHP-Codeblöcken.

Beispiel 1. Beispiel Ausgabesteuerung

<?php

ob_start();
echo "Hello\n";

setcookie ("cookiename", "cookiedata");

ob_end_flush();

?>

Im obigen Beispiel wird die Ausgabe der echo() solange im Ausgabepuffer zwischengespeichert, bis die Funktion ob_end_flush() aufgeufen wird. In der Zwischenzeit speichert der Aufruf von setcookie() erfolgreich einen Cookie, ohne einen Fehler zu erzeugen. (Normalerweise können Sie keine header an den Browser mehr schicken, wenn schon Daten ausgegeben wurden.)

Siehe auch header() und setcookie().

Inhaltsverzeichnis
flush -- Der Ausgabe-Puffer wird geleert und alle Zeichen ausgegeben
ob_clean -- Clean (erase) the output buffer
ob_end_clean -- Bereinigt (löscht) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
ob_end_flush -- Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
ob_flush -- Flush (send) the output buffer
ob_get_clean -- Get current buffer contents and delete current output buffer
ob_get_contents -- Gibt den Inhalt des Ausgabe-Puffers zurück
ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering
ob_get_length -- Return the length of the output buffer
ob_get_level -- Return the nesting level of the output buffering mechanism
ob_get_status -- Get status of output buffers
ob_gzhandler -- ob_start callback function to gzip output buffer
ob_implicit_flush -- Schaltet die implizite Ausgabe ein bzw. aus
ob_list_handlers -- List all output handlers in use
ob_start -- Einschalten der Pufferung von Ausgaben
output_add_rewrite_var -- Add URL rewriter values
output_reset_rewrite_vars -- Reset URL rewriter values

Zurück | Zum Anfang | Nach vorne
ovrimos_rollback | Nach oben | flush


flush

(PHP 3, PHP 4 , PHP 5)

flush -- Der Ausgabe-Puffer wird geleert und alle Zeichen ausgegeben

Beschreibung:

void flush ( void )

Unabhängig davon, wie PHP läuft (CGI oder WEB-Server), wird der gesamte Ausgabe-Puffer geleert. Dabei wird versucht den ganzen Inhalt an den Browser des Benutzers zu schicken.

Zurück | Zum Anfang | Nach vorne
Funktionen zur Ausgabesteuerung | Nach oben | ob_clean


ob_clean

(PHP 4 >= 4.2.0, PHP 5)

ob_clean -- Clean (erase) the output buffer

Description

void ob_clean ( void )

This function discards the contents of the output buffer.

This function does not destroy the output buffer like ob_end_clean() does.

See also ob_flush(),
ob_end_flush() and
ob_end_clean().

Zurück | Zum Anfang | Nach vorne
flush | Nach oben | ob_end_clean


ob_end_clean

(PHP 4 , PHP 5)

ob_end_clean -- Bereinigt (löscht) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung

Beschreibung:

void ob_end_clean ( void )

Diese Funktion verwirft den Inhalt des Ausgabe-Puffers und deaktiviert die Pufferung.

Siehe auch ob_start() und ob_end_flush().

Zurück | Zum Anfang | Nach vorne
ob_clean | Nach oben | ob_end_flush


ob_end_flush

(PHP 4 , PHP 5)

ob_end_flush -- Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung

Beschreibung:

void ob_end_flush ( void )

Der Inhalt des Ausgabe-Puffers (sofern vorhanden) wird abgeschickt und die Pufferung der Ausgabe deaktiviert. Falls sie mit dem Puffer-Inhalt weiter arbeiten möchten, müssen sie diesen erst per ob_get_contents() zwischen speichern bevor sie ob_end_flush() aufrufen, da dadurch der Puffer geleert wird.

Siehe auch ob_start(),
            ob_get_contents() und
            ob_end_clean().

Zurück | Zum Anfang | Nach vorne
ob_end_clean | Nach oben | ob_flush


ob_flush

(PHP 4 >= 4.2.0, PHP 5)

ob_flush -- Flush (send) the output buffer

Description

void ob_flush ( void )

This function will send the contents of the output buffer (if any). If you want to further process the buffer's contents you have to call ob_get_contents() before ob_flush() as the buffer contents are discarded after ob_flush() is called.

This function does not destroy the output buffer like ob_end_flush() does.

See also ob_get_contents(),
ob_clean(),
ob_end_flush() and
ob_end_clean().

Zurück | Zum Anfang | Nach vorne
ob_end_flush | Nach oben | ob_get_clean


ob_get_clean

(PHP 4 >= 4.3.0, PHP 5)

ob_get_clean -- Get current buffer contents and delete current output buffer

Description

string ob_get_clean ( void )

This will return the contents of the output buffer and end output
buffering.  If output buffering isn't active then FALSE is returned.
ob_get_clean() essentially executes both
ob_get_contents() and
ob_end_clean().

Beispiel 1. A simple ob_get_clean() example

<?php

ob_start();

echo "Hello World";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

Our example will output:

string(11) "hello world"

See also ob_start() and ob_get_contents().

Zurück | Zum Anfang | Nach vorne
ob_flush | Nach oben | ob_get_contents


ob_get_contents

(PHP 4 , PHP 5)

ob_get_contents -- Gibt den Inhalt des Ausgabe-Puffers zurück

Beschreibung:

string ob_get_contents ( void )

Damit wird der Inhalt des Ausgabe-Puffers zurück gegeben (oder FALSE, wenn die Ausgabe-Pufferung nicht aktiv ist).

Siehe auch ob_start(),
            ob_end_flush() und
ob_end_clean().

Zurück | Zum Anfang | Nach vorne
ob_get_clean | Nach oben | ob_get_flush


ob_get_flush

(PHP 4 >= 4.3.0, PHP 5)

ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering

Description

string ob_get_flush ( void )

ob_get_flush() flushs the output buffer, return it as a string and turns off output buffering. ob_get_flush() returns FALSE if no buffering is active.

Anmerkung: This function is similar to ob_end_flush(), except that this function returns the buffer as a string.

Beispiel 1. ob_get_flush() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());

//save buffer in a file
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

The above example will output:

Array
(
    [0] => default output handler
)
Array
(
)

See also ob_end_clean(),
ob_end_flush() and
ob_list_handlers().

Zurück | Zum Anfang | Nach vorne
ob_get_contents | Nach oben | ob_get_length


ob_get_length

(PHP 4 >= 4.0.2, PHP 5)

ob_get_length -- Return the length of the output buffer

Description

int ob_get_length ( void )

This will return the length of the contents in the output buffer or FALSE, if output buffering isn't active.

See also ob_start() and ob_get_contents().

Zurück | Zum Anfang | Nach vorne
ob_get_flush | Nach oben | ob_get_level


ob_get_level

(PHP 4 >= 4.2.0, PHP 5)

ob_get_level -- Return the nesting level of the output buffering mechanism

Description

int ob_get_level ( void )

This will return the level of nested output buffering handlers or zero if output buffering is not activated.

See also ob_start() and ob_get_contents().

Zurück | Zum Anfang | Nach vorne
ob_get_length | Nach oben | ob_get_status


ob_get_status

(PHP 4 >= 4.2.0, PHP 5)

ob_get_status -- Get status of output buffers

Description

array ob_get_status ( [bool full_status])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

This will return the current status of output buffers. It returns array contains buffer status or FALSE for error.

See also ob_get_level().

Zurück | Zum Anfang | Nach vorne
ob_get_level | Nach oben | ob_gzhandler


ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5)

ob_gzhandler -- ob_start callback function to gzip output buffer

Description

string ob_gzhandler ( string buffer [, int mode])

Anmerkung: mode was added in PHP 4.0.5.

ob_gzhandler() is intended to be used as a callback function for ob_start() to help facilitate sending gz-encoded data to web browsers that support compressed web pages. Before ob_gzhandler() actually sends compressed data, it determines what type of content encoding the browser will accept ("gzip", "deflate" or none at all) and will return its output accordingly. All browsers are supported since it's up to the browser to send the correct header saying that it accepts compressed web pages.

Beispiel 1. ob_gzhandler() Example

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>This should be a compressed page.
</html>
<body>

See also ob_start() and ob_end_flush().

Anmerkung: You cannot use both ob_gzhandler() and ini.zlib.output_compression. Also note that using ini.zlib.output_compression is preferred over ob_gzhandler().

Zurück | Zum Anfang | Nach vorne
ob_get_status | Nach oben | ob_implicit_flush


ob_implicit_flush

(PHP 4 , PHP 5)

ob_implicit_flush -- Schaltet die implizite Ausgabe ein bzw. aus

Beschreibung:

void ob_implicit_flush ( [int flag])

ob_implicit_flush() schaltet die implizite Ausgabe an oder aus (wenn kein flag angegeben wurde, wird per default "Ein" angenommen). Die implizite Puffer-Ausgabe erzeugt eine Ausgabe nach jedem Ausgabe-Befehl, so dass keine Extra-Aufrufe von flush() mehr erforderlich sind.

Das Einschalten der impliziten Ausgabe beendet die Pufferung der Ausgabe. Der aktuelle Puffer-Inhalt wird ausgegeben, so als ob die Funktion ob_end_flush() aufgerufen wurde.

Siehe auch flush(),
            ob_start() und
ob_end_flush().

Zurück | Zum Anfang | Nach vorne
ob_gzhandler | Nach oben | ob_list_handlers


ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5)

ob_list_handlers -- List all output handlers in use

Description

array ob_list_handlers ( void )

This will return an array with the output handlers in use (if any). If output_buffering is enabled, ob_list_handlers() will return "default output handler".

Beispiel 1. ob_list_handlers() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();
?>

The above example will output:

Array
(
    [0] => default output handler
)
Array
(
    [0] => ob_gzhandler
)

See also ob_end_clean(),
ob_end_flush(),
ob_get_flush(), and ob_start().

Zurück | Zum Anfang | Nach vorne
ob_implicit_flush | Nach oben | ob_start


ob_start

(PHP 4 , PHP 5)

ob_start -- Einschalten der Pufferung von Ausgaben

Beschreibung:

void ob_start ( void )

Diese Funktion schaltet die Pufferung von Ausgaben ein. Solange die Ausgabe-Pufferung aktiv ist, erfolgt keine Ausgabe bei der Skript-Ausführung. Statt dessen werden alle Ausgaben in einem internen Puffer gespeichert.

Der Inhalt diese internen Puffers kann in eine String-Variable kopiert werden (per ob_get_contents()). Die Ausgabe erfolgt erst bei Aufruf von ob_end_flush() und sobald der Puffer-Inhalt per ob_end_clean() verworfen wird.

Siehe auch ob_get_contents(),
            ob_end_flush(),
            ob_end_clean() und
ob_implicit_flush().

Zurück | Zum Anfang | Nach vorne
ob_list_handlers | Nach oben | output_add_rewrite_var


output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5)

output_add_rewrite_var -- Add URL rewriter values

Description

bool output_add_rewrite_var ( string name, string value)

This function rewrite the URLs and forms with the given variable.

Anmerkung: This function buffers the output.

Beispiel 1. output_add_rewrite_var() example

<?php
output_add_rewrite_var('var', 'value');

// a link
echo '<a href="file.php">link</a>';

// a form
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

The above example will output:

<a href="file.php?var=value">link</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

See also output_reset_rewrite_vars(), ob_flush() and ob_list_handlers().

Zurück | Zum Anfang | Nach vorne
ob_start | Nach oben | output_reset_rewrite_vars


output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5)

output_reset_rewrite_vars -- Reset URL rewriter values

Description

bool output_reset_rewrite_vars ( void )

This function resets the URL rewriter and undo the changes made by output_add_rewrite_var() and/or by session_start() that are still in the buffer.

Beispiel 1. output_reset_rewrite_vars() example

<?php
session_start();
output_add_rewrite_var('var', 'value');

echo '<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">link</a>';
?>

The above example will output:

<a href="file.php?PHPSESSID=xxx&var=value">link</a>
<a href="file.php">link</a>

See also output_add_rewrite_var(),
ob_flush(), ob_list_handlers() and
session_start().

Zurück | Zum Anfang | Nach vorne
output_add_rewrite_var | Nach oben | Object property and method call overloading


Object property and method call overloading

PHP Handbuch
Zurück Nach vorne

LXXIX. Object property and method call overloading

Einführung

The purpose of this extension is to allow overloading of object property access and method calls. Only one function is defined in this extension, overload() which takes the name of the class that should have this functionality enabled. The class named has to define appropriate methods if it wants to have this functionality: __get(), __set() and __call() respectively for getting/setting a property, or calling a method. This way overloading can be selective. Inside these handler functions the overloading is disabled so you can access object properties normally.

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

In order to use these functions, you must compile PHP with the --enable-overload option. Starting with PHP 4.3.0 this extension is enabled by default. You can disable overload support with --disable--overload.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Anmerkung: Builtin support for overload is available with PHP 4.3.0.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Beispiele

Some simple examples on using the overload() function:

Beispiel 1. Overloading a PHP class

<?php

class OO {
    var $a = 111;
    var $elem = array('b' => 9, 'c' => 42);

    // Callback method for getting a property
    function __get($prop_name, &$prop_value)
    {
        if (isset($this->elem[$prop_name])) {
            $prop_value = $this->elem[$prop_name];
            return true;
        } else {
            return false;
        }
    }

    // Callback method for setting a property
    function __set($prop_name, $prop_value)
    {
        $this->elem[$prop_name] = $prop_value;
        return true;
    }
}

// Here we overload the OO object
overload('OO');

$o = new OO;
echo "\$o->a: $o->a\n"; // print: $o->a:
echo "\$o->b: $o->b\n"; // print: $o->b: 9
echo "\$o->c: $o->c\n"; // print: $o->c: 42
echo "\$o->d: $o->d\n"; // print: $o->d:

// add a new item to the $elem array in OO
$o->x = 56;

// instantiate stdclass (it is built-in in PHP 4)
// $val is not overloaded!
$val = new stdclass;
$val->prop = 555;

// Set "a" to be an array with the $val object in it
// But __set() will put this in the $elem array
$o->a = array($val);
var_dump($o->a[0]->prop);

?>

Warnung

As this is an experimental extension, not all things work. There is no __call() support currently, you can only overload the get and set operations for properties. You cannot invoke the original overloading handlers of the class, and __set() only works to one level of property access.

Inhaltsverzeichnis
overload -- Enable property and method call overloading for a class

Zurück | Zum Anfang | Nach vorne
output_reset_rewrite_vars | Nach oben | overload


overload

(PHP 4 >= 4.2.0)

overload -- Enable property and method call overloading for a class

Description

void overload ( [string class_name])

The overload() function will enable property and method call overloading for a class identified by class_name. See an example in the introductory section of this part.

Zurück | Zum Anfang | Nach vorne
Object property and method call overloading | Nach oben | PDF Funktionen


PDF Funktionen

PHP Handbuch
Zurück Nach vorne

LXXX. PDF Funktionen

Einleitung

Mit Hilfe der PDF-Bibliothek von Thomas Merz können mit PHP PDF Dateien erzeugt werden. Die Bibliothek ist unter http://www.pdflib.com/products/pdflib/index.html verfügbar. Zudem sind noch zwei weitere Bibliotheken notwendig, die JPEG Bibliothek und die TIFF Bibliothek, um PHP zu übersetzen. Diese beiden Bibliothek bereiten häufig Probleme bei der Konfiguration von PHP. Sie sollten unbedingt die Meldungen des Konfigurations-Skripts befolgen, um aufkommende Probleme zu lösen.

Beachten sie zudem die exzellente Dokumentation, die mit pdflib ausgeliefert wird. Sie gibt einen guten Überblick über die Möglichkeiten von pdflib.

Die meisten Funktionen in pdflib sind in ähnlicher Form auch in PHP vorhanden. Die Parameter sind in der Regel auch identisch. Sie sollten zudem die Grundkonzepte von PDF und Postscript verstanden haben, um das PDF Modul effizient nutzen zu können.

Alle Längen und Koordinatenangaben sind in Postscript-Punkten gemessen. Für gewöhnlich entsprechen 72 PostScript-Punkte 1 Inch, was jedoch von der Auflösung des Ausgabegeräts abhängt.

Neben diesem Modul gibt es noch ein weiteres zur Erzeugung von PDF-Dateien, basierend auf der Bibliothek ClibPDF von FastIO. Es hat eine geringfügig andere Programmierschnittstelle. Schauen Sie in die Funktionsübersicht für weitere Details.

Das PDF Module von PHP verwendet einen neuen Type von Variable Er wird pdfdoc genannt. pdfdoc ist ein Zeiger auf das PDF Dokument und wird bei fast allen Funktion als erster Parameter erwartet.

Altlasten

Since the very begining of PDF support in PHP — starting with pdflib 0.6 — there has been tons of changes especially to the pdflib API. Most of these changes has been somehow covered by PHP, some has even required changes to the PHP API. Since pdflib 3.x the API seems to be stabilzed and PHP4 has adopted the version as a minimum requirement for PDF support. The consequence will be that many functions will disappear or be replaced by alternatives sooner or later. Support for pdflib 0.6 is already completely given up. The following table list all the functions which are deprecated in PHP 4.02 and should be replaced by their new versions.

Tabelle 1. Deprecated functions and its replacements

Old function | Replacement
pdf_put_image() | Not needed anymore.
pdf_get_font() | pdf_get_value() passing "font" as the second parameter.
pdf_get_fontsize() | pdf_get_value() passing "fontsize" as the second parameter.
pdf_get_fontname() | pdf_get_parameter() passing "fontname" as the second parameter.
pdf_set_info_creator() | pdf_set_info() passing "Creator" as the second parameter.
pdf_set_info_title() | pdf_set_info() passing "Title" as the second parameter.
pdf_set_info_subject() | pdf_set_info() passing "Subject" as the second parameter.
pdf_set_info_author() | pdf_set_info() passing "Author" as the second parameter.
pdf_set_info_keywords() | pdf_set_info() passing "Keywords" as the second parameter.
pdf_set_leading() | pdf_set_value() passing "leading" as the second parameter.
pdf_set_text_rendering() | pdf_set_value() passing "textrendering" as the second parameter.
pdf_set_text_rise() | pdf_set_value() passing "textrise" as the second parameter.
pdf_set_horiz_scaling() | pdf_set_value() passing "horizscaling" as the second parameter.
pdf_set_text_matrix() | Not available anymore
pdf_set_char_spacing() | pdf_set_value() passing "charspacing" as the second parameter.
pdf_set_word_spacing() | pdf_set_value() passing "wordspacing" as the second parameter.
pdf_set_transition() | pdf_set_parameter() passing "transition" as the second parameter.
pdf_set_duration() | pdf_set_value() passing "duration" as the second parameter.
pdf_open_gif() | pdf_open_image_file() passing "gif" as the second parameter.
pdf_open_jpeg() | pdf_open_image_file() passing "jpeg" as the second parameter.
pdf_open_tiff() | pdf_open_image_file() passing "tiff" as the second parameter.
pdf_open_png() | pdf_open_image_file() passing "png" as the second parameter.
pdf_get_imagewidth() | pdf_get_value() passing "imagewidth" as the second parameter and the image as the third parameter.
pdf_get_imageheight() | pdf_get_value() passing "imageheight" as the second parameter and the image as the third parameter.
() | ()

Tips zur Installation von pdflib 3.x

Seit Version 3.0 von pdflib sollten sie pdflib mit der configure-Option --enable-shared-pdflib konfigurieren.

Verwenden alter pdflib Versionen

Mit Version 2.20 von pdflib wurden einige Veränderungen an der API vorgenommen. Zudem ist Unterstützung für asiatische Zeichensätze hinzugekommen. Dies hat leider auch zu Änderungen am php4-Modul geführt (nicht php3). Wenn Sie pdflib 2.20 benutzen, dann sollten Sie die Erzeugung von Dokumenten im Speicher mit Vorsicht benutzen. Bis zur entgültigen Version 3.0 von pdflib könnte dies instabil sein. Der encoding Parameter der Funktion pdf_set_font() hat sich in eine Zeichenkette geändert. Dies bedeutet, dass anstatt von beispielsweise 4 jetzt 'winansi' verwendet werden muss.

Wenn Sie die Version 2.30 von pdflib verwenden, dann steht Ihnen die Funktion pdf_set_text_matrix() nicht mehr zur Verfügung. Diese Funktion wurde komplett entfernt. Grundsätzlich ist es ratsam die release notes der verwendeten Version von pdflib zu lesen.

Versionen von PHP4 die nach dem 9. März 2000 erscheinen unterstützen nur noch die Versionen >3.0 von pdflib. PHP3 sollte hingegen nicht mit Versionen >2.01 verwendet werden.

Bei Gebrauch von pdflib 2.01 sollte überprüft werden, ob die Bibliothek richtig installiert wurde. Es sollte die Datei oder ein Verweis libpdf.so im Installationsverzeichnis von pdflib existieren. Version 2.01 erzeugt nur die Bibliothek mit dem Namen libpdf2.01.so, die so nicht vom Linker des Systems gefunden werden kann. In diesem Fall müssen Sie den Verweis von libpdf.so nach libpdf2.01.so selbst anlegen.

Beispiele

Die meisten Funktionen sind sehr einfach zu benutzen. Das Schwierigste wird wohl sein, überhaupt ein einfaches PDF-Dokument zu erstellen. Das folgende Beispiel soll die ersten Schritte erleichtern. Dieses Skript erstellt die PDF-Datei hallo.pdf, welche nur aus einer Seite besteht. Auf der Seite befindet sich der Text "Hallo Welt! (sagt PHP)", in einem 30pt Zeichensatz.

Beispiel 1. Erstellung eines PDF Dokuments mit pdflib

       Das PHP-Skript fertiges_pdf.php liefert nur das PDF-Dokument.

     Die pdflib-Distribution enthält ein komplizierteres Beispiel,
     welches ein Reihe Seiten erstellt die jeweils eine analoge Uhr
     mit der aktuellen Uhrzeit enthalten. Dieses Beispiel in ein
     PHP-Skript umgesetzt sieht wie folgt aus (das gleiche Beispiel wird
     auch in der Dokumentation zum
     cpdf Modul verwendet):

Beispiel 2. pdfclock Beispiel aus der pdflib Distribution

       Das PHP-Skript fertiges_pdf.php liefert wiederum nur
       das Dokument.

Inhaltsverzeichnis
pdf_add_annotation -- Fügt eine Anmerkung hinzu
pdf_add_bookmark -- Adds bookmark for current page
pdf_add_launchlink -- Add a launch annotation for current page
pdf_add_locallink -- Add a link annotation for current page
pdf_add_note -- Sets annotation for current page
pdf_add_outline -- Fügt Lesemarke zur aktuellen Seite hinzu
pdf_add_pdflink -- Adds file link annotation for current page
pdf_add_thumbnail -- Adds thumbnail for current page
pdf_add_weblink -- Adds weblink for current page
pdf_arc -- Zeichnet einen Kreisbogen
pdf_arcn -- Draws an arc (clockwise)
pdf_attach_file -- Adds a file attachment for current page
pdf_begin_page -- Beginnt eine neue Seite
pdf_begin_pattern -- Starts new pattern
pdf_begin_template -- Starts new template
pdf_circle -- Zeichnet einen Kreis
pdf_clip -- Begrenzt alle Zeichenoperation auf den aktuellen Pfad
pdf_close_image -- Schließt ein Bild
pdf_close_pdi_page --
        Close the page handle

pdf_close_pdi --
     Close the input PDF document

pdf_close -- Schließt ein PDF-Dokument
pdf_closepath_fill_stroke -- Schließt, füllt und zeichnet eine Linie entlang des Pfades
pdf_closepath_stroke -- Schließt einen Pfad und zeichnet eine Linie entlang des Pfades
pdf_closepath -- Schließt einen Pfad
pdf_concat -- Concatenate a matrix to the CTM
pdf_continue_text -- Schreibt den Text in die nächste Zeile
pdf_curveto -- Zeichnet eine Kurve
pdf_delete -- Deletes a PDF object
pdf_end_page -- Beendet eine Seite
pdf_end_pattern -- Finish pattern
pdf_end_template -- Finish template
pdf_endpath -- Beendet den aktuellen Pfad
pdf_fill_stroke -- Füllt den aktuellen Pfad und zeichnet eine Linie entlang des Pfades
pdf_fill -- Füllt den aktuellen Pfad
pdf_findfont -- Prepare font for later use with pdf_setfont().
pdf_get_buffer -- Fetch the buffer containing the generated PDF data.
pdf_get_font -- Deprecated: font handling
pdf_get_fontname -- Deprecated: font handling
pdf_get_fontsize -- Deprecated: font handling
pdf_get_image_height -- Liefert die Höhe eines Bildes
pdf_get_image_width -- Liefert die Breite eines Bildes
pdf_get_majorversion --
     Returns the major version number of the PDFlib

pdf_get_minorversion --
     Returns the minor version number of the PDFlib

pdf_get_parameter -- Liefert verschiedene Parameter
pdf_get_pdi_parameter -- Get some PDI string parameters
pdf_get_pdi_value -- Gets some PDI numerical parameters
pdf_get_value -- Liefert verschiedene numerische Werte
pdf_initgraphics -- Resets graphic state
pdf_lineto -- Zeichnet eine Linie
pdf_makespotcolor -- Makes a spotcolor
pdf_moveto -- Setzt die aktuelle Position
pdf_new -- Creates a new pdf resource
pdf_open_CCITT -- Opens a new image file with raw CCITT data
pdf_open_file -- Opens a new pdf object
pdf_open_gif -- Öffnet ein GIF-Bild
pdf_open_image_file -- Liest ein Bild aus einer Datei
pdf_open_image -- Versatile function for images
pdf_open_jpeg -- Öffnet ein JPEG-Bild
pdf_open_memory_image -- Liest ein Bild, das mit PHP erzeugt wurde
pdf_open_pdi_page --
        Prepare a page

pdf_open_pdi --
        Opens a PDF file

pdf_open_png -- Öffnet ein PNG-Bild
pdf_open_tiff -- Öffnet ein TIFF-Bild
pdf_open -- Öffnet ein neues PDF-Dokument
pdf_place_image -- Platziert ein Bild auf der Seite
pdf_place_pdi_page -- Places an image on the page
pdf_rect -- Zeichnet ein Rechteck
pdf_restore -- Stellt eine zuvor gesicherte Umgebung wieder her
pdf_rotate -- Setzt die Rotation
pdf_save -- Sichert die aktuelle Umgebung
pdf_scale -- Setzt den Skalierungsfaktor
pdf_set_border_color -- Setzt die Farbe der Umrandung von Verweisen und Anmerkungen
pdf_set_border_dash -- Setzt das Muster für gestrichelte Linien als Umrandung
                von Verweisen und Anmerkungen
pdf_set_border_style -- Setzt den Stil der Umrandung von Verweisen und Anmerkungen
pdf_set_char_spacing -- Setzt den Abstand zwischen Zeichen
pdf_set_duration -- Setzt die Zeitdauer bis zur nächsten Seite
pdf_set_font -- Wählt einen Zeichensatz und dessen Größe aus
pdf_set_horiz_scaling -- Setzt die horizontale Skalierung bei der Textausgabe
pdf_set_info_author --
     Deprecated: Fills the author field of the document

pdf_set_info_creator --
     Deprecated: Fills the creator field of the document

pdf_set_info_keywords --
     Deprecated: Fills the keywords field of the document

pdf_set_info_subject --
     Deprecated: Fills the subject field of the document

pdf_set_info_title --
     Deprecated: Fills the title field of the document

pdf_set_info -- Setzt Info-Feld der Dokumenteninformation
pdf_set_leading -- Setzt den Abstand zwischen zwei Textzeilen
pdf_set_parameter -- Setzt verschiedene Parameter
pdf_set_text_matrix -- Setzt die Text-Matrix
pdf_set_text_pos -- Setzt die Textposition
pdf_set_text_rendering -- Bestimmt wie der Text ausgegeben werden soll
pdf_set_text_rise -- Setzt die Textverschiebung
pdf_set_value -- Setzt verschiedene numerische Werte
pdf_set_word_spacing -- Setzt den Abstand zwischen Wörtern
pdf_setcolor -- Sets fill and stroke color
pdf_setdash -- Setzt das Muster für gestrichelte Linien
pdf_setflat -- Sets flatness
pdf_setfont -- Set the current font
pdf_setgray_fill -- Setzt die Füllfarbe auf einen Grauwert
pdf_setgray_stroke -- Setzt die Zeichenfarbe auf einen Grauwert
pdf_setgray -- Setzt die Zeichen- und Füllfarbe auf einen Grauwert
pdf_setlinecap -- Setzt den Type der Linienenden
pdf_setlinejoin -- Setzt die Verbindungsart von Linien
pdf_setlinewidth -- Setzt die Linienbreite
pdf_setmatrix -- Sets current transformation matrix
pdf_setmiterlimit -- Sets miter limit
pdf_setpolydash -- Deprecated: Sets complicated dash pattern
pdf_setrgbcolor_fill -- Setzt die Füllfarbe auf einen Farbwert
pdf_setrgbcolor_stroke -- Setzt die Zeichenfarbe auf einen Farbwert
pdf_setrgbcolor -- Setzt die Zeichen- und Füllfarbe auf einen Farbwert
pdf_show_boxed -- Schreibt einen Text in eine Box
pdf_show_xy -- Schreibt einen Text an die angegebene Position
pdf_show -- Schreibt einen Text an die aktuelle Position
pdf_skew -- Schert das Koordinatensystem
pdf_stringwidth -- Liefert die benötigte Breite einer Zeichenkette mit dem aktuelle Zeichensatz
pdf_stroke -- Zeichnet eine Linie entlang eines Pfades
pdf_translate -- Setzt den Ursprung des Koordinatenssystems

Zurück | Zum Anfang | Nach vorne
overload | Nach oben | pdf_add_annotation


pdf_add_annotation

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_add_annotation -- Fügt eine Anmerkung hinzu

Beschreibung

void pdf_add_annotation ( int PDF-Dokument, double llx, double lly, double urx, double ury, string Titel, string Inhalt)

Die Funktion pdf_add_annotation() fügt eine Anmerkung mit der unteren linken Ecke an der Position (llx, lly) und der oberen rechten Ecke an der Position (urx, ury) ein.

Zurück | Zum Anfang | Nach vorne
PDF Funktionen | Nach oben | pdf_add_bookmark


pdf_add_bookmark

(PHP 4 >= 4.0.1, PHP 5)

pdf_add_bookmark -- Adds bookmark for current page

Description

int pdf_add_bookmark ( resource pdfdoc, string text [, int parent [, int open]])

Add a nested bookmark under parent, or a new top-level bookmark if parent = 0. Returns a bookmark descriptor which may be used as parent for subsequent nested bookmarks. If open = 1, child bookmarks will be folded out, and invisible if open = 0.

Beispiel 1. pdf_add_bookmark() example

<?php
// create a new PDF

$pdf = pdf_new();
pdf_open_file($pdf);
pdf_set_info($pdf, "Author", "Bob Nijman");

// begin a new page
pdf_begin_page($pdf, 300, 300);

// add a top-level bookmark
$bookmark = pdf_add_bookmark($pdf, "People");

// add a nested bookmark
pdf_add_bookmark($pdf, "Rasmus", $bookmark);

// and some text
pdf_set_font($pdf, "Helvetica", 20, "host");
$text = "This is R's page";
$width = pdf_stringwidth($pdf, $text);
pdf_set_text_pos($pdf, (300-$width)/2, 100);
pdf_show($pdf, $text);

// close the page and the PDF
pdf_end_page($pdf);
pdf_close($pdf);

?>

Zurück | Zum Anfang | Nach vorne
pdf_add_annotation | Nach oben | pdf_add_launchlink


pdf_add_launchlink

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_launchlink -- Add a launch annotation for current page

Description

bool pdf_add_launchlink ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename)

Adds a link to a web resource specified by filename. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also pdf_add_locallink().

Zurück | Zum Anfang | Nach vorne
pdf_add_bookmark | Nach oben | pdf_add_locallink


pdf_add_locallink

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_locallink -- Add a link annotation for current page

Description

bool pdf_add_locallink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, int page, string dest)

Add a link annotation to a target within the current PDF file. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

dest is the zoom setting on the destination page, it can be one of retain, fitpage, fitwidth, fitheight or fitbbox.

See also pdf_add_launchlink().

Zurück | Zum Anfang | Nach vorne
pdf_add_launchlink | Nach oben | pdf_add_note


pdf_add_note

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_note -- Sets annotation for current page

Description

bool pdf_add_note ( resource pdfdoc, float llx, float lly, float urx, float ury, string contents, string title, string icon, int open)

Sets an annotation for the current page. icon is one of comment, insert, note, paragraph, newparagraph, key, or help. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
pdf_add_locallink | Nach oben | pdf_add_outline


pdf_add_outline

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_add_outline -- Fügt Lesemarke zur aktuellen Seite hinzu

Beschreibung

int pdf_add_outline ( int PDF-Dokument, string Text [, int Mutter [, int offen]])

Die Funktion pdf_add_outline() fügt der aktuellen Seite eine Lesemarke mit dem Text text hinzu.

Die Lesemarke wird als Kind von Mutter hinzugefügt und wird geöffnet dargestellt von der Parameter offen ungleich 0 ist. Der Rückgabewert ist die Kennung der Lesemarke und kann als Mutter weiterer Lesemarken dienen. Damit lassen sich Hierarchien von Lesemarken aufbauen.

Leider macht pdflib keine Kopie des Textes, so dass dies in PHP geschehen muss. Zur Zeit wird dieser Text nicht wieder freigegeben, allerdings kümmert sich der PHP-Speichermanager darum.

Zurück | Zum Anfang | Nach vorne
pdf_add_note | Nach oben | pdf_add_pdflink


pdf_add_pdflink

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_add_pdflink -- Adds file link annotation for current page

Description

bool pdf_add_pdflink ( resource pdfdoc, float bottom_left_x, float bottom_left_y, float up_right_x, float up_right_y, string filename, int page, string dest)

Add a file link annotation (to a PDF target). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also pdf_add_locallink() and pdf_add_weblink().

Zurück | Zum Anfang | Nach vorne
pdf_add_outline | Nach oben | pdf_add_thumbnail


pdf_add_thumbnail

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_thumbnail -- Adds thumbnail for current page

Description

bool pdf_add_thumbnail ( resource pdfdoc, int image)

Adds an existing image as thumbnail for the current page. Thumbnail images must not be wider or higher than 106 pixels. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also pdf_open_image(),
pdf_open_image_file(),
pdf_open_memory_image().

Zurück | Zum Anfang | Nach vorne
pdf_add_pdflink | Nach oben | pdf_add_weblink


pdf_add_weblink

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_add_weblink -- Adds weblink for current page

Description

bool pdf_add_weblink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, string url)

Add a weblink annotation to a target url on the Web. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
pdf_add_thumbnail | Nach oben | pdf_arc


pdf_arc

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_arc -- Zeichnet einen Kreisbogen

Beschreibung

void pdf_arc ( int PDF-Dokument, double x-Koor, double y-Koor, double Radius, double Start, double Ende)

Die Funktion pdf_arc() zeichnet einen Kreisbogen mit dem Mittelpunkt an der Position (x-koor, y-koor) und dem Radius radius, angefangen beim Winkel Start und beendet mit dem Winkel Ende.

Siehe auch pdf_circle(), pdf_stroke().

Zurück | Zum Anfang | Nach vorne
pdf_add_weblink | Nach oben | pdf_arcn


pdf_arcn

(PHP 4 >= 4.0.5, PHP 5)

pdf_arcn -- Draws an arc (clockwise)

Description

bool pdf_arcn ( resource pdfdoc, float x, float y, float r, float alpha, float beta)

Add a clockwise circular arc from alpha to beta degrees with center (x; y) and radius r. Actual drawing of the circle is performed by the next stroke or fill operation.

Beispiel 1. pdf_arcn() example

<?php

// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined arcn
pdf_arcn($pdf, 200, 700, 100, 0, 90);
pdf_stroke($pdf);

// a filled arcn
pdf_arcn($pdf, 200, 700, 50, 0, 90);
pdf_fill($pdf);

// an outlined and filled arcn
pdf_setcolor($pdf, "fill", "gray", 0.8);
pdf_arcn($pdf, 400, 700, 50, 0, 90);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arc(), pdf_circle(),
pdf_stroke(), pdf_fill() and
pdf_fillstroke().

Zurück | Zum Anfang | Nach vorne
pdf_arc | Nach oben | pdf_attach_file


pdf_attach_file

(PHP 4 >= 4.0.5, PHP 5)

pdf_attach_file -- Adds a file attachment for current page

Description

bool pdf_attach_file ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename, string description, string author, string mimetype, string icon)

Add a file attachment annotation. icon is one of graph, paperclip, pushpin, or tag. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Only the 'Full' Acrobat software will be able to display these file attachments. All other PDF viewers will either show nothing or display a question mark.

Zurück | Zum Anfang | Nach vorne
pdf_arcn | Nach oben | pdf_begin_page


pdf_begin_page

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_begin_page -- Beginnt eine neue Seite

Beschreibung

void pdf_begin_page ( int PDF-Dokument, double Breite, double Höhe)

Die Funktion pdf_begin_page() beginnt eine neue Seite mit Höhe Höhe und mit der Breite Breite. Um ein gültiges Dokument zu erzeugen muss mindestens eine Seite erzeugt werden, die mit pdf_end_page() beendet wird.

Siehe auch pdf_end_page().

Zurück | Zum Anfang | Nach vorne
pdf_attach_file | Nach oben | pdf_begin_pattern


pdf_begin_pattern

(PHP 4 >= 4.0.5, PHP 5)

pdf_begin_pattern -- Starts new pattern

Description

int pdf_begin_pattern ( resource pdfdoc, float width, float height, float xstep, float ystep, int painttype)

Starts a new pattern definition and returns a pattern handle. width, and height define the bounding box for the pattern. xstep and ystep give the repeated pattern offsets. painttype=1 means that the pattern has its own colour settings whereas a value of 2 indicates that the current colour is used when the pattern is applied.

See also pdf_end_pattern().

Zurück | Zum Anfang | Nach vorne
pdf_begin_page | Nach oben | pdf_begin_template


pdf_begin_template

(PHP 4 >= 4.0.5, PHP 5)

pdf_begin_template -- Starts new template

Description

int pdf_begin_template ( resource pdfdoc, float width, float height)

Start a new template definition.

Zurück | Zum Anfang | Nach vorne
pdf_begin_pattern | Nach oben | pdf_circle


pdf_circle

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_circle -- Zeichnet einen Kreis

Beschreibung

void pdf_circle ( int PDF-Dokument, double x-Koor, double y-Koor, double Radius)

Die Funktion pdf_circle() zeichnet einen Kreis mit dem Mittelpunkt an der Position (x-koor, y-koor) und dem Radius Radius.

Siehe auch pdf_arc(), pdf_stroke().

Zurück | Zum Anfang | Nach vorne
pdf_begin_template | Nach oben | pdf_clip


pdf_clip

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_clip -- Begrenzt alle Zeichenoperation auf den aktuellen Pfad

Beschreibung

void pdf_clip ( int PDF-Dokument)

Die Funktion pdf_clip() begrenzt alle Zeichenoperationen auf das innere des aktuellen Pfads.

Zurück | Zum Anfang | Nach vorne
pdf_circle | Nach oben | pdf_close_image


pdf_close_image

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pdf_close_image -- Schließt ein Bild

Beschreibung

void pdf_close_image ( int Bild)

Die Funktion pdf_close_image() schließt ein Bild, das zuvor mit einer der pdf_open_xxx() Funktionen geöffnet wurde.

Siehe auch pdf_open_jpeg(),
         pdf_open_gif(),
         pdf_open_png(),
         pdf_open_tiff(),
         pdf_open_memory_image().

Zurück | Zum Anfang | Nach vorne
pdf_clip | Nach oben | pdf_close_pdi_page


pdf_close_pdi_page

(PHP 4 >= 4.0.5, PHP 5)

pdf_close_pdi_page -- Close the page handle

Description

bool pdf_close_pdi_page ( resource pdfdoc, int pagehandle)

Close the page handle, and free all page-related resources. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
pdf_close_image | Nach oben | pdf_close_pdi


pdf_close_pdi

(PHP 4 >= 4.0.5, PHP 5)

pdf_close_pdi -- Close the input PDF document

Description

bool pdf_close_pdi ( resource pdfdoc, int dochandle)

Close all open page handles, and close the input PDF document. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also pdf_open_pdi().

Zurück | Zum Anfang | Nach vorne
pdf_close_pdi_page | Nach oben | pdf_close


pdf_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_close -- Schließt ein PDF-Dokument

Beschreibung

void pdf_close ( int PDF-Dokument)

Die pdf_close() Function schließt ein PDF-Dokument.

Siehe auch pdf_open(), fclose().

Zurück | Zum Anfang | Nach vorne
pdf_close_pdi | Nach oben | pdf_closepath_fill_stroke


pdf_closepath_fill_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_closepath_fill_stroke -- Schließt, füllt und zeichnet eine Linie entlang des Pfades

Beschreibung

void pdf_closepath_fill_stroke ( int PDF-Dokument)

Die Funktion pdf_closepath_fill_stroke() schließt, füllt das Innere des aktuellen Pfads mit der aktuellen Füllfarbe and zeichnet ein Linie entlang des Pfads.

Siehe auch pdf_closepath(),
         pdf_stroke(),
         pdf_fill(),
         pdf_setgray_fill(),
         pdf_setgray(),
         pdf_setrgbcolor_fill(),
         pdf_setrgbcolor().

Zurück | Zum Anfang | Nach vorne
pdf_close | Nach oben | pdf_closepath_stroke


pdf_closepath_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_closepath_stroke -- Schließt einen Pfad und zeichnet eine Linie entlang des Pfades

Beschreibung

void pdf_closepath_stroke ( int PDF-Dokument)

Die Funktion pdf_closepath_stroke() ist eine
Kombination von pdf_closepath() und
pdf_stroke(). Sie löscht gleichzeitig den Pfad.

Siehe auch pdf_closepath(), pdf_stroke().

Zurück | Zum Anfang | Nach vorne
pdf_closepath_fill_stroke | Nach oben | pdf_closepath


pdf_closepath

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_closepath -- Schließt einen Pfad

Beschreibung

void pdf_closepath ( int PDF-Dokument)

Die Funktion pdf_closepath() schließt den aktuellen
Pfad. Viele Funktion wie z.B. pdf_moveto(),
pdf_circle()
und pdf_rect() starten einen neuen Pfad.

Zurück | Zum Anfang | Nach vorne
pdf_closepath_stroke | Nach oben | pdf_concat


pdf_concat

(PHP 4 >= 4.0.5, PHP 5)

pdf_concat -- Concatenate a matrix to the CTM

Description

bool pdf_concat ( resource pdfdoc, float a, float b, float c, float d, float e, float f)

Concatenate a matrix to the CTM. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
pdf_closepath | Nach oben | pdf_continue_text


pdf_continue_text

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_continue_text -- Schreibt den Text in die nächste Zeile

Beschreibung

void pdf_continue_text ( int PDF-Dokument, string Text)

Die Funktion pdf_continue_text() gibt den Text text in der nächsten Zeile aus. Der Abstand zwischen zwei Zeilen kann mit der Funktion pdf_set_leading() gesetzt werden.

Siehe auch pdf_show_xy(),
         pdf_set_leading(),
         pdf_set_text_pos().

Zurück | Zum Anfang | Nach vorne
pdf_concat | Nach oben | pdf_curveto


pdf_curveto

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_curveto -- Zeichnet eine Kurve

Beschreibung

void pdf_curveto ( int PDF-Dokument, double x1, double y1, double x2, double y2, double x3, double y3)

Die Funktion pdf_curveto() zeichnet eine Bezier-Kurve vom aktuellen Punkt zu dem Punkt (x3, y3) unter Verwendung von (x1, y1) und (x2, y2) als Kontrollpunkte.

Siehe auch pdf_moveto(),
         pdf_lineto(),
         pdf_stroke().

Zurück | Zum Anfang | Nach vorne
pdf_continue_text | Nach oben | pdf_delete


pdf_delete

(PHP 4 >= 4.0.5, PHP 5)

pdf_delete -- Deletes a PDF object

Description

bool pdf_delete ( resource pdfdoc)

Delete the PDF resource, and free all internal resources. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also pdf_new().

Zurück | Zum Anfang | Nach vorne
pdf_curveto | Nach oben | pdf_end_page


pdf_end_page

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_end_page -- Beendet eine Seite

Beschreibung

void pdf_end_page ( int PDF-Dokument)

Die Funktion pdf_end_page() beended eine Seite. Sobald eine Seite beendet ist können keine Veränderungen an ihr mehr vorgenommen werden.

Siehe auch pdf_begin_page().

Zurück | Zum Anfang | Nach vorne
pdf_delete | Nach oben | pdf_end_pattern


pdf_end_pattern

(PHP 4 >= 4.0.5, PHP 5)

pdf_end_pattern -- Finish pattern

Description

bool pdf_end_pattern ( resource pdfdoc)

Finish the pattern definition. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also pdf_begin_pattern().

Zurück | Zum Anfang | Nach vorne
pdf_end_page | Nach oben | pdf_end_template


pdf_end_template

(PHP 4 >= 4.0.5, PHP 5)

pdf_end_template -- Finish template

Description

bool pdf_end_template ( resource pdfdoc)

Finish the template definition. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
pdf_end_pattern | Nach oben | pdf_endpath


pdf_endpath

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_endpath -- Beendet den aktuellen Pfad

Beschreibung

void pdf_endpath ( int PDF-Dokument)

Die Funktion pdf_endpath() beendet den aktuellen Pfad ohne ihn zu schließen.

Siehe auch pdf_closepath().

Zurück | Zum Anfang | Nach vorne
pdf_end_template | Nach oben | pdf_fill_stroke


pdf_fill_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_fill_stroke -- Füllt den aktuellen Pfad und zeichnet eine Linie entlang des Pfades

Beschreibung

void pdf_fill_stroke ( int PDF-Dokument)

Die Funktion pdf_fill_stroke() füllt das Innere des aktuellen Pfads mit der aktuellen Füllfarbe und zeichnet zudem eine Linie entlang des Pfads.

Siehe auch pdf_closepath(),
         pdf_stroke(),
         pdf_fill(),
         pdf_setgray_fill(),
         pdf_setgray(),
         pdf_setrgbcolor_fill(),
         pdf_setrgbcolor().

Zurück | Zum Anfang | Nach vorne
pdf_endpath | Nach oben | pdf_fill


pdf_fill

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_fill -- Füllt den aktuellen Pfad

Beschreibung

void pdf_fill ( int PDF-Dokument)

Die Funktion pdf_fill() füllt das Innere des aktuellen Pfads mit der aktuellen Füllfarbe.

Siehe auch pdf_closepath(),
         pdf_stroke(),
         pdf_setgray_fill(),
         pdf_setgray(),
         pdf_setrgbcolor_fill(),
         pdf_setrgbcolor().

Zurück | Zum Anfang | Nach vorne
pdf_fill_stroke | Nach oben | pdf_findfont


pdf_findfont

(PHP 4 >= 4.0.5, PHP 5)

pdf_findfont -- Prepare font for later use with pdf_setfont().

Description

int pdf_findfont ( resource pdfdoc, string fontname, string encoding [, int embed])

Prepare a font for later use with pdf_setfont(). The metrics will be loaded, and if embed is nonzero, the font file will be checked, but not yet used. encoding is one of builtin, macroman, winansi, host, a user-defined encoding name or the name of a CMap.

pdf_findfont() returns a font handle or FALSE on error.

Beispiel 1. pdf_findfont() example

<?php

$font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
if ($font) {
    pdf_setfont($pdf, $font, 10);
}

?>

Zurück | Zum Anfang | Nach vorne
pdf_fill | Nach oben | pdf_get_buffer


pdf_get_buffer

(PHP 4 >= 4.0.5, PHP 5)

pdf_get_buffer -- Fetch the buffer containing the generated PDF data.

Description

string pdf_get_buffer ( resource pdfdoc)

Get the contents of the PDF output buffer. The result must be used by the client before calling any other PDFlib function.

Zurück | Zum Anfang | Nach vorne
pdf_findfont | Nach oben | pdf_get_font


pdf_get_font

pdf_get_font -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Zurück | Zum Anfang | Nach vorne
pdf_get_buffer | Nach oben | pdf_get_fontname


pdf_get_fontname

pdf_get_fontname -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_parameter() instead.

Zurück | Zum Anfang | Nach vorne
pdf_get_font | Nach oben | pdf_get_fontsize


pdf_get_fontsize

pdf_get_fontsize -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Zurück | Zum Anfang | Nach vorne
pdf_get_fontname | Nach oben | pdf_get_image_height


pdf_get_image_height

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_get_image_height -- Liefert die Höhe eines Bildes

Beschreibung

string pdf_get_image_height ( int pdf document, int Bild)

Die Funktion pdf_get_image_height() liefert die Höhe eines Bildes in Pixel.

See also pdf_open_image_file(),
         pdf_open_memory_image(),
         pdf_get_image_width().

Zurück | Zum Anfang | Nach vorne
pdf_get_fontsize | Nach oben | pdf_get_image_width


pdf_get_image_width

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_get_image_width -- Liefert die Breite eines Bildes

Beschreibung

string pdf_get_image_width ( int pdf document, int Bild)

Die Funktion pdf_get_image_width() liefert die Breite eines Bildes in Pixel.

See also pdf_open_image_file(),
         pdf_open_memory_image(),
         pdf_get_image_height().

Zurück | Zum Anfang | Nach vorne
pdf_get_image_height | Nach oben | pdf_get_majorversion


pdf_get_majorversion

(PHP 4 >= 4.2.0, PHP 5)

pdf_get_majorversion -- Returns the major version number of the PDFlib

Description

int pdf_get_majorversion ( void )

Returns the major version number of the PDFlib.

See also pdf_get_minorversion().

Zurück | Zum Anfang | Nach vorne
pdf_get_image_width | Nach oben | pdf_get_minorversion


pdf_get_minorversion

(PHP 4 >= 4.2.0, PHP 5)

pdf_get_minorversion -- Returns the minor version number of the PDFlib

Description

int pdf_get_minorversion ( void )

Returns the minor version number of the PDFlib.

See also pdf_get_majorversion().

Zurück | Zum Anfang | Nach vorne
pdf_get_majorversion | Nach oben | pdf_get_parameter


pdf_get_parameter

(PHP 4 >= 4.0.1, PHP 5)

pdf_get_parameter -- Liefert verschiedene Parameter

Beschreibung

string pdf_get_parameter ( int PDF-Dokument, string Name, double Modifizierer)

Die pdf_set_parameter() Funktion liefert verschiedene Parameter von pdflib, die vom Typ string sind. Der Funktionsparameter Modifizierer spezifiziert den ausgewählten Parameter genauer.

Siehe auch pdf_get_value(),
           pdf_set_value(),
           pdf_set_parameter().

Zurück | Zum Anfang | Nach vorne
pdf_get_minorversion | Nach oben | pdf_get_pdi_parameter


pdf_get_pdi_parameter

(PHP 4 >= 4.0.5, PHP 5)

pdf_get_pdi_parameter -- Get some PDI string parameters

Description

string pdf_get_pdi_parameter ( resource pdfdoc, string key, int document, int page, int index)

Get the contents of some PDI document parameter with string type.

Zurück | Zum Anfang | Nach vorne
pdf_get_parameter | Nach oben | pdf_get_pdi_value


pdf_get_pdi_value

(PHP 4 >= 4.0.5, PHP 5)

pdf_get_pdi_value -- Gets some PDI numerical parameters

Description

string pdf_get_pdi_value ( resource pdfdoc, string key, int doc, int page, int index)

Get the contents of some PDI document parameter with numerical type.

Zurück | Zum Anfang | Nach vorne
pdf_get_pdi_parameter | Nach oben | pdf_get_value


pdf_get_value

(PHP 4 >= 4.0.1, PHP 5)

pdf_get_value -- Liefert verschiedene numerische Werte

Beschreibung

double pdf_get_value ( int PDF-Dokument, string Name, double Modifizierer)

Die pdf_get_value() Funktion liefert verschiedene numerische Parameter von pdflib. Der Funktionsparameter Modifizierer spezifiziert den ausgewählten Parameter genauer.

Siehe auch pdf_get_value(),
           pdf_set_value(),
           pdf_set_parameter().

Zurück | Zum Anfang | Nach vorne
pdf_get_pdi_value | Nach oben | pdf_initgraphics


pdf_initgraphics

(PHP 4 >= 4.0.5, PHP 5)

pdf_initgraphics -- Resets graphic state

Description

bool pdf_initgraphics ( resource pdfdoc)

Reset all implicit color and graphics state parameters to their defaults. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
pdf_get_value | Nach oben | pdf_lineto


pdf_lineto

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_lineto -- Zeichnet eine Linie

Beschreibung

void pdf_lineto ( int PDF-Dokument, double x-Koor, double y-Koor)

Die Funktion pdf_lineto() zeichnet eine Linie vom aktuellen Punkt zu dem Punkt (x-koor, y-koor).

Siehe auch pdf_moveto(),
         pdf_curveto(),
         pdf_stroke().

Zurück | Zum Anfang | Nach vorne
pdf_initgraphics | Nach oben | pdf_makespotcolor


pdf_makespotcolor

(PHP 4 >= 4.0.5, PHP 5)

pdf_makespotcolor -- Makes a spotcolor

Description

bool pdf_makespotcolor ( resource pdfdoc, string spotname)

Make a named spot color from the current color. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also pdf_setcolor().

Zurück | Zum Anfang | Nach vorne
pdf_lineto | Nach oben | pdf_moveto


pdf_moveto

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_moveto -- Setzt die aktuelle Position

Beschreibung

void pdf_moveto ( int PDF-Dokument, double x-Koor, double y-Koor)

Die Funktion pdf_moveto() setzt die aktuelle Position auf den Punkt (x-Koor, y-koor).

Zurück | Zum Anfang | Nach vorne
pdf_makespotcolor | Nach oben | pdf_new


pdf_new

(PHP 4 >= 4.0.5, PHP 5)

pdf_new -- Creates a new pdf resource

Description

resource pdf_new ( )

Create a new PDF resource, using default error handling and memory management.

See also pdf_close().

Zurück | Zum Anfang | Nach vorne
pdf_moveto | Nach oben | pdf_open_CCITT


pdf_open_CCITT

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_CCITT -- Opens a new image file with raw CCITT data

Description

int pdf_open_CCITT ( resource pdfdoc, string filename, int width, int height, int BitReverse, int k, int Blackls1)

Open a raw CCITT image.

Zurück | Zum Anfang | Nach vorne
pdf_new | Nach oben | pdf_open_file


pdf_open_file

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_file -- Opens a new pdf object

Description

bool pdf_open_file ( resource pdfdoc [, string filename])

Create a new PDF file using the supplied file name. If filename is empty the PDF document will be generated in memory instead of on file. The result must be fetched by the client with the pdf_get_buffer() function. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The following example shows how to create a pdf document in memory and how to output it correctly.

Beispiel 1. Creating a PDF document in memory

<?php

$pdf = pdf_new();

pdf_open_file($pdf);
pdf_begin_page($pdf, 595, 842);
pdf_set_font($pdf, "Times-Roman", 30, "host");
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "A PDF document created in memory!", 50, 750);
pdf_end_page($pdf);
pdf_close($pdf);

$data = pdf_get_buffer($pdf);

header("Content-type: application/pdf");
header("Content-disposition: inline; filename=test.pdf");
header("Content-length: " . strlen($data));

echo $data;

?>

Zurück | Zum Anfang | Nach vorne
pdf_open_CCITT | Nach oben | pdf_open_gif


pdf_open_gif

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pdf_open_gif -- Öffnet ein GIF-Bild

Beschreibung

int pdf_open_gif ( int PDF-Dokument, string Dateiname)

Die Funktion pdf_open_gif() öffnet ein Bild im GIF-Format, das in der Datei Dateiname gespeichert ist. Die Funktion liefert ein PDF-Bild zurück.

Anmerkung: Diese Funktion sollte nicht mehr verwendet werden. Benutzen Sie stattdessen die Funktion pdf_open_image_file().

Beispiel 1. Einbinden eines GIF Bildes

<?php
$im = pdf_open_gif($pdf, "test.gif");
pdf_place_image($pdf, $im, 100, 100, 1);
pdf_close_image($pdf, $im);
?>

Siehe auch pdf_close_image(),
         pdf_open_jpeg(),
         pdf_open_png(),
         pdf_open_tiff(),
         pdf_open_memory_image(),
         pdf_execute_image(),
         pdf_place_image(),
         pdf_put_image().

Zurück | Zum Anfang | Nach vorne
pdf_open_file | Nach oben | pdf_open_image_file


pdf_open_image_file

(PHP 3 CVS only, PHP 4 , PHP 5)

pdf_open_image_file -- Liest ein Bild aus einer Datei

Beschreibung

int pdf_open_image_file ( int PDF-Dokument, string Bildformat, string Dateiname)

Die Funktion pdf_open_image_file() liest ein Bild des Formats Bildformat aus der Datei Dateiname und macht es für das PDF-Dokument verfügbar. Als Bildformat sind 'png', 'tiff', 'jpeg' und 'gif' erlaubt. Die Funktion liefert ein PDF-Bild zurück.

Beispiel 1. Einfügen eines Bildes

<?php
$pim = pdf_open_image_file($pdf, "png", "picture.png");
pdf_place_image($pdf, $pim, 100, 100, 1);
pdf_close_image($pdf, $pim);
?>

Siehe auch pdf_close_image(),
         pdf_open_jpeg(),
         pdf_open_gif(),
         pdf_open_tiff(),
         pdf_open_png(),
         pdf_execute_image(),
         pdf_place_image(),
         pdf_put_image().

Zurück | Zum Anfang | Nach vorne
pdf_open_gif | Nach oben | pdf_open_image


pdf_open_image

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_image -- Versatile function for images

Description

int pdf_open_image ( resource PDF-document, string imagetype, string source, string data, long length, int width, int height, int components, int bpc, string params)

Use image data from a variety of data sources. Supported types are jpeg, ccitt, raw. Supported sources are memory, fileref, url. len is only used when type is raw, params is only used when type is ccitt.

Zurück | Zum Anfang | Nach vorne
pdf_open_image_file | Nach oben | pdf_open_jpeg


pdf_open_jpeg

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pdf_open_jpeg -- Öffnet ein JPEG-Bild

Beschreibung

int pdf_open_jpeg ( int PDF-Dokument, string Dateiname)

Die Funktion pdf_open_jpeg() öffnet ein Bild im JPEG-Format, das in der Datei Dateiname gespeichert ist. Die Funktion liefert ein PDF-Bild zurück.

Siehe auch pdf_close_image(),
         pdf_open_gif(),
         pdf_open_tiff(),
         pdf_open_png(),
         pdf_open_memory_image(),
         pdf_execute_image(),
         pdf_place_image(),
         pdf_put_image().

Zurück | Zum Anfang | Nach vorne
pdf_open_image | Nach oben | pdf_open_memory_image


pdf_open_memory_image

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

pdf_open_memory_image -- Liest ein Bild, das mit PHP erzeugt wurde

Beschreibung

int pdf_open_memory_image ( int PDF-Dokument, int Bild)

Die Funktion pdf_open_memory_image() nimmt ein Bild, das mit den PHP eigenen Funktion zur Bilderzeugung erstellt wurde und macht es für das PDF-Dokument verfügbar. Die Funktion liefert ein PDF-Bild zurück.

Beispiel 1. Einfügen eines Bildes

<?php
$im = ImageCreate(100, 100);
$col = ImageColorAllocate($im, 80, 45, 190);
ImageFill($im, 10, 10, $col);
$pim = pdf_open_memory_image($pdf, $im);
ImageDestroy($im);
pdf_place_image($pdf, $pim, 100, 100, 1);
pdf_close_image($pdf, $pim);
?>

Zurück | Zum Anfang | Nach vorne
pdf_open_jpeg | Nach oben | pdf_open_pdi_page


pdf_open_pdi_page

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_pdi_page -- Prepare a page

Description

int pdf_open_pdi_page ( resource pdfdoc, int dochandle, int pagenumber, string pagelabel)

Prepare a page for later use with pdf_place_image()

Zurück | Zum Anfang | Nach vorne
pdf_open_memory_image | Nach oben | pdf_open_pdi


pdf_open_pdi

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_pdi -- Opens a PDF file

Description

int pdf_open_pdi ( resource pdfdoc, string filename, string stringparam, int intparam)

Opens an existing PDF document and prepares it for later use.

See also pdf_close_pdi().

Zurück | Zum Anfang | Nach vorne
pdf_open_pdi_page | Nach oben | pdf_open_png


pdf_open_png

(PHP 4 , PHP 5)

pdf_open_png -- Öffnet ein PNG-Bild

Beschreibung

int pdf_open_png ( int PDF-Dokument, string Dateiname)

Die Funktion pdf_open_png() öffnet ein Bild im PNG-Format, das in der Datei Dateiname gespeichert ist. Die Funktion liefert ein PDF-Bild zurück.

Anmerkung: Diese Funktion sollte nicht mehr verwendet werden. Benutzen Sie stattdessen die Funktion pdf_open_image_file().

Beispiel 1. Einbinden eines PNG Bildes

<?php
$im = pdf_open_png($pdf, "test.png");
pdf_place_image($pdf, $im, 100, 100, 1);
pdf_close_image($pdf, $im);
?>

Siehe auch pdf_close_image(),
         pdf_open_jpeg(),
         pdf_open_gif(),
         pdf_open_tiff(),
         pdf_open_memory_image(),
         pdf_execute_image(),
         pdf_place_image(),
         pdf_put_image().

Zurück | Zum Anfang | Nach vorne
pdf_open_pdi | Nach oben | pdf_open_tiff


pdf_open_tiff

(PHP 4 , PHP 5)

pdf_open_tiff -- Öffnet ein TIFF-Bild

Beschreibung

int pdf_open_tiff ( int PDF-Dokument, string Dateiname)

Die Funktion pdf_open_tiff() öffnet ein Bild im TIFF-Format, das in der Datei Dateiname gespeichert ist. Die Funktion liefert ein PDF-Bild zurück.

Anmerkung: Diese Funktion sollte nicht mehr verwendet werden. Benutzen Sie stattdessen die Funktion pdf_open_image_file().

Siehe auch pdf_close_image(),
         pdf_open_gif(),
         pdf_open_jpeg(),
         pdf_open_png(),
         pdf_open_memory_image(),
         pdf_execute_image(),
         pdf_place_image(),
         pdf_put_image().

Zurück | Zum Anfang | Nach vorne
pdf_open_png | Nach oben | pdf_open


pdf_open

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_open -- Öffnet ein neues PDF-Dokument

Beschreibung

int pdf_open ( int Datei-Deskriptor)

Die Funktion pdf_open() öffnet ein neues PDF-Dokument. Die korropondierende Datei muss zuvor mit mit fopen() geöffnet worden sein und der Dateizeiger als Parameter Datei-Deskriptor übergeben werden. Wenn keine Datei-Deskriptor übergeben wird, erfolgt die Erstellung des Dokuments im Speicher, und die Ausgabe geschieht seitenweise nach stdout bzw. zum Web-Browser.

Anmerkung: Der Rückgabewert dieser Funktion wird bei allen anderen Funktionen als ersten Parameter erwartet.

Siehe auch fopen(), pdf_close().

Zurück | Zum Anfang | Nach vorne
pdf_open_tiff | Nach oben | pdf_place_image


pdf_place_image

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pdf_place_image -- Platziert ein Bild auf der Seite

Beschreibung

void pdf_place_image ( int PDF-Dokument, int Bild, double x-Koor, double y-Koor, double scale)

Die Funktion pdf_place_image() platziert ein Bild auf der Seite an Position (x-Koor, x-Koor). Das Bild kann gleichzeitig skaliert werden.

Siehe auch pdf_put_image().

Zurück | Zum Anfang | Nach vorne
pdf_open | Nach oben | pdf_place_pdi_page


pdf_place_pdi_page

(PHP 4 >= 4.0.6, PHP 5)

pdf_place_pdi_page -- Places an image on the page

Description

bool pdf_place_pdi_page ( resource pdfdoc, int page, float x, float y, float sx, float sy)

Place a PDI page with the lower left corner at (x, y), and scale it. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
pdf_place_image | Nach oben | pdf_rect


pdf_rect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_rect -- Zeichnet ein Rechteck

Beschreibung

void pdf_rect ( int PDF-Dokument, double x-koor, double y-koor, double Breite, double Höhe)

Die Funktion pdf_rect() zeichnet ein Rechteck mit der unteren Ecke an der Position (x-Koor, y-Koor). Die Breite wird auf widgth gesetzt. Die Höhe wird auf height gesetzt.

Siehe auch pdf_stroke().

Zurück | Zum Anfang | Nach vorne
pdf_place_pdi_page | Nach oben | pdf_restore


pdf_restore

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_restore -- Stellt eine zuvor gesicherte Umgebung wieder her

Beschreibung

void pdf_restore ( int PDF-Dokument)

Die Funktion pdf_restore() stellt eine frühere Umgebung wieder her, die mit pdf_save() gesichert wurde. Die Funktion arbeit wie das Postscript-Kommando grestore.

Beispiel 1. Save and Restore

<?php pdf_save($pdf);
// Alle möglichen Rotationen, Transformationen, ...
pdf_restore($pdf) ?>

Siehe auch pdf_save().

Zurück | Zum Anfang | Nach vorne
pdf_rect | Nach oben | pdf_rotate


pdf_rotate

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_rotate -- Setzt die Rotation

Beschreibung

void pdf_rotate ( int PDF-Dokument, double Winkel)

Die Funktion pdf_rotate() setzt die Drehung in auf Winkel Grad.

Zurück | Zum Anfang | Nach vorne
pdf_restore | Nach oben | pdf_save


pdf_save

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_save -- Sichert die aktuelle Umgebung

Beschreibung

void pdf_save ( int PDF-Dokument)

Die Funktion pdf_save() sichert die aktuelle Umgebung. Sie wirkt wie das Postscript-Kommando gsave. Die Funktion ist sehr sinnvoll, wenn Sie einzelne Objekte drehen oder verschieben möchte ohne andere Objekte zu beienflussen. Auf pdf_save() sollte immer die Funktion pdf_restore() folgen, um die ürsprüngliche Umgebung wieder herzustellen.

Siehe auch pdf_restore().

Zurück | Zum Anfang | Nach vorne
pdf_rotate | Nach oben | pdf_scale


pdf_scale

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_scale -- Setzt den Skalierungsfaktor

Beschreibung

void pdf_scale ( int PDF-Dokument, double x-Skalierung, double y-Skalierung)

Die Funktion pdf_scale() setzt den Skalierungsfaktor in beiden Richtungen. Das folgende Beispiel skaliert in x- und y-Richtung um den Faktor 72. Die folgende Linie hat damit eine Länge von etwa 1.41 Inch.

Beispiel 1. Scaling

<?php pdf_scale($pdf, 72.0, 72.0);
pdf_lineto($pdf, 1, 1);
pdf_stroke($pdf);
?>

Zurück | Zum Anfang | Nach vorne
pdf_save | Nach oben | pdf_set_border_color


pdf_set_border_color

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_set_border_color -- Setzt die Farbe der Umrandung von Verweisen und Anmerkungen

Beschreibung

void pdf_set_border_color ( int PDF-Dokument, double Rot, double Grün, double Blua)

Die Funktion pdf_set_border_color() setzt die Farbe der Umrandung von Verweisen und Anmerkungen. Die drei Farbkomponenten haben eine Wert zwischen 0.0 und 1.0.

Siehe auch pdf_set_border_style(), pdf_set_border_dash().

Zurück | Zum Anfang | Nach vorne
pdf_scale | Nach oben | pdf_set_border_dash


pdf_set_border_dash

(PHP 4 >= 4.0.1, PHP 5)

pdf_set_border_dash -- Setzt das Muster für gestrichelte Linien als Umrandung von Verweisen und Anmerkungen

Beschreibung

void pdf_set_border_dash ( int PDF-Dokument, double Schwarz, double Weiß)

Die Funktion pdf_set_border_dash() setzt die Länge der schwarzen und weißen Bereiche einer gestrichelten Umrandung von Verweisen und Anmerkungen. links and annotations.

Siehe auch pdf_set_border_style(), pdf_set_border_color().

Zurück | Zum Anfang | Nach vorne
pdf_set_border_color | Nach oben | pdf_set_border_style


pdf_set_border_style

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_set_border_style -- Setzt den Stil der Umrandung von Verweisen und Anmerkungen

Beschreibung

void pdf_set_border_style ( int PDF-Dokument, string Stil, double Breite)

Die Funktion pdf_set_border_style() setzt den Stil und die Breite der Umrandung von Verweisen und Anmerkungen. Der Parameter Stil kann die Werte 'solid' oder 'dashed' annehmen.

Siehe auch pdf_set_border_color(), pdf_set_border_dash().

Zurück | Zum Anfang | Nach vorne
pdf_set_border_dash | Nach oben | pdf_set_char_spacing


pdf_set_char_spacing

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_char_spacing -- Setzt den Abstand zwischen Zeichen

Beschreibung

void pdf_set_char_spacing ( int PDF-Dokument, double Abstand)

Die Funktion pdf_set_char_spacing() setzt den Abstand zwischen zwei Zeichen.

Siehe auch pdf_set_word_spacing(), pdf_set_leading().

Zurück | Zum Anfang | Nach vorne
pdf_set_border_style | Nach oben | pdf_set_duration


pdf_set_duration

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_duration -- Setzt die Zeitdauer bis zur nächsten Seite

Beschreibung

void pdf_set_duration ( int PDF-Dokument, double Dauer)

Die Funktion pdf_set_duration() setzt die Dauer bis zur nächsten Seite automatisch umgeblättert wird.

Siehe auch pdf_set_transition().

Zurück | Zum Anfang | Nach vorne
pdf_set_char_spacing | Nach oben | pdf_set_font


pdf_set_font

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_font -- Wählt einen Zeichensatz und dessen Größe aus

Beschreibung

void pdf_set_font ( int PDF-Dokument, string Zeichensatzname, double Größe, string Kodierung [, int einbetten])

Die Funktion pdf_set_font() setzt den den aktuellen Zeichensatz, die Zeichensatzgröße und die Kodierung. Bei Verwendung von pdflib 0.6 müssen die Adobe Zeichensatz-Metriken (afm-Dateien) für den Zeichensatz in dem voreingestellten Verzeichnis abgelegt werden (voreingestellt ist ./font).

Der vorletzte Parameter encoding gibt die Kodierung des Zeichensatzes an. Er kann die folgenden Werte annehmen: 'builtin', 'ebcdic', 'macroman', 'macexpert', 'winansi', 'host'. 'winansi' oder 'host' ist im übrigen häufig eine gute Wahl. Wenn der letzte Parameter auf eins gesetzt ist, wird der Zeichensatz in das PDF-Dokument eingebettet, sonst nicht. Einen Zeichensatz einzubetten, ist immer dann eine gute Wahl, wenn der Zeichensatz nicht sehr weit verbreitet ist, und die Person, die das Dokument lesen soll, keinen Zugriff auf den Zeichensatz hat.

Anmerkung: Diese Funktion muss nach pdf_begin_page() aufgerufen werden um ein gültiges Dokument zu erhalten.

Anmerkung: Wenn der Zeichensatz über eine .upr-Datei referenziert wird, muss der Name in der afm-Datei mit dem Zeichensatznamen übereinstimmen. Andernfalls wird der Zeichensatz mit jedem Aufruf von pdf_set_font() erneut eingebettet. (Danke an Paul Haddon, der dieses Problem gefunden hat.)

Zurück | Zum Anfang | Nach vorne
pdf_set_duration | Nach oben | pdf_set_horiz_scaling


pdf_set_horiz_scaling

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_horiz_scaling -- Setzt die horizontale Skalierung bei der Textausgabe

Beschreibung

void pdf_set_horiz_scaling ( int PDF-Dokument, double Skalierung)

Die Funktion pdf_set_horiz_scaling() setzt den horizontalen Skalierungsfaktor auf Skalierung Prozent.

Zurück | Zum Anfang | Nach vorne
pdf_set_font | Nach oben | pdf_set_info_author


pdf_set_info_author

pdf_set_info_author -- Deprecated: Fills the author field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Zurück | Zum Anfang | Nach vorne
pdf_set_horiz_scaling | Nach oben | pdf_set_info_creator


pdf_set_info_creator

pdf_set_info_creator -- Deprecated: Fills the creator field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Zurück | Zum Anfang | Nach vorne
pdf_set_info_author | Nach oben | pdf_set_info_keywords


pdf_set_info_keywords

pdf_set_info_keywords -- Deprecated: Fills the keywords field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Zurück | Zum Anfang | Nach vorne
pdf_set_info_creator | Nach oben | pdf_set_info_subject


pdf_set_info_subject

pdf_set_info_subject -- Deprecated: Fills the subject field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Zurück | Zum Anfang | Nach vorne
pdf_set_info_keywords | Nach oben | pdf_set_info_title


pdf_set_info_title

pdf_set_info_title -- Deprecated: Fills the title field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Zurück | Zum Anfang | Nach vorne
pdf_set_info_subject | Nach oben | pdf_set_info


pdf_set_info

(PHP 4 >= 4.0.1, PHP 5)

pdf_set_info -- Setzt Info-Feld der Dokumenteninformation

Beschreibung

void pdf_set_info ( int PDF Dokument, string Feldname, string Wert)

Die Funktion pdf_set_info() setzt ein Feld der Dokumenteninformation. Mögliche Informationsfelder die gesetzt werden können sind 'Subject', 'Title', 'Creator', 'Author', 'Keywords' sowie ein Feld mit einem beliebigen Namen. Die Funktion kann vor dem Beginnen einer Seite aufgerufen werden.

Beispiel 1. Dokumenteninformation setzen

<?php
$fd = fopen("test.pdf", "w");
$pdfdoc = pdf_open($fd);
pdf_set_info($pdfdoc, "Author", "Uwe Steinmann");
pdf_set_info($pdfdoc, "Creator", "Uwe Steinmann");
pdf_set_info($pdfdoc, "Title", "Testing Info Fields");
pdf_set_info($pdfdoc, "Subject", "Test");
pdf_set_info($pdfdoc, "Keywords", "Test, Fields");
pdf_set_info($pdfdoc, "CustomField", "What ever makes sense");
pdf_begin_page($pdfdoc, 595, 842);
pdf_end_page($pdfdoc);
pdf_close($pdfdoc);
?>

Anmerkung:
     Diese Funktion ersetzt pdf_set_info_keywords(),
              pdf_set_info_title(),
              pdf_set_info_subject(),
              pdf_set_info_creator(),
              pdf_set_info_sybject().

Zurück | Zum Anfang | Nach vorne
pdf_set_info_title | Nach oben | pdf_set_leading


pdf_set_leading

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_leading -- Setzt den Abstand zwischen zwei Textzeilen

Beschreibung

void pdf_set leading ( int PDF-Dokument, double Abstand)

Die Funktion pdf_set_leading() setzt denn Abstand zwischen zwei Textzeilen, die mit pdf_continue_text() ausgegeben werden.

Siehe auch pdf_continue_text().

Zurück | Zum Anfang | Nach vorne
pdf_set_info | Nach oben | pdf_set_parameter


pdf_set_parameter

(PHP 4 , PHP 5)

pdf_set_parameter -- Setzt verschiedene Parameter

Beschreibung

void pdf_set_parameter ( int PDF-Dokument, string Name, string Wert)

Die pdf_set_parameter() Funktion setzt verschiedene Parameter von pdflib, die vom Typ string sind.

Siehe auch pdf_get_value(),
           pdf_set_value(),
           pdf_get_parameter().

Zurück | Zum Anfang | Nach vorne
pdf_set_leading | Nach oben | pdf_set_text_matrix


pdf_set_text_matrix

(PHP 3>= 3.0.6)

pdf_set_text_matrix -- Setzt die Text-Matrix

Beschreibung

void pdf_set_text_matrix ( int PDF-Dokument, array Matrix)

Die Funktion pdf_set_text_matrix() setzt die Matrix, welche die Transformation auf Textausgaben beschreibt. text font. Die Matrix muss als array mit sechs Parametern übergeben werden.

Zurück | Zum Anfang | Nach vorne
pdf_set_parameter | Nach oben | pdf_set_text_pos


pdf_set_text_pos

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_text_pos -- Setzt die Textposition

Beschreibung

void pdf_set_text_pos ( int PDF-Dokument, double x-Koor, double y-Koor)

Die Funktion pdf_set_text_pos() setzt die Position für die nächste Textausgabe mit der Funktion pdf_show().

Siehe auch pdf_show(), pdf_show_xy().

Zurück | Zum Anfang | Nach vorne
pdf_set_text_matrix | Nach oben | pdf_set_text_rendering


pdf_set_text_rendering

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_text_rendering -- Bestimmt wie der Text ausgegeben werden soll

Beschreibung

void pdf_set_text_rendering ( int PDF-Dokument, int Modus)

Die Funktion pdf_set_text_rendering() bestimmt wie die Zeichen einer Textausgabe dargestellt werden. Die möglichen Werte für den Parameter Modus sind 0=ausgefüllt, 1=nur die Umrandung, 2=ausgefüllt und die Umrandung, 3=unsichtbar, 4=ausgefüllt und Hinzunahme zum Begrenzungspfad (cliping path), 5=Umrandung und Hinzunahme zum Begrenzungspfad, 6=ausgefüllt, umrandet und Hinzunahme zum Begrenzungspfad, 7=nur Hinzunahme zum Begrenzungspfad.

Zurück | Zum Anfang | Nach vorne
pdf_set_text_pos | Nach oben | pdf_set_text_rise


pdf_set_text_rise

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_text_rise -- Setzt die Textverschiebung

Beschreibung

void pdf_set_text_rise ( int PDF-Dokument, double Verschiebung)

Die Funktion pdf_set_text_rise() setzt die Textverschiebung nach oben auf Verschiebung Punkte.

Zurück | Zum Anfang | Nach vorne
pdf_set_text_rendering | Nach oben | pdf_set_value


pdf_set_value

(PHP 4 >= 4.0.1, PHP 5)

pdf_set_value -- Setzt verschiedene numerische Werte

Beschreibung

void pdf_set_value ( int PDF-Dokument, string Name, double Wert)

Die pdf_set_value() Funktion setzt verschiedene numerische Parameter von pdflib.

Siehe auch pdf_get_value(),
           pdf_set_parameter(),
           pdf_get_parameter().

Zurück | Zum Anfang | Nach vorne
pdf_set_text_rise | Nach oben | pdf_set_word_spacing


pdf_set_word_spacing

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_word_spacing -- Setzt den Abstand zwischen Wörtern

Beschreibung

void pdf_set_word_spacing ( int PDF-Dokument, double space)

Die Funktion pdf_set_word_spacing() setzt den Abstand zwischen zwei Wörtern.

Siehe auch pdf_set_char_spacing(), pdf_set_leading().

Zurück | Zum Anfang | Nach vorne
pdf_set_value | Nach oben | pdf_setcolor


pdf_setcolor

(PHP 4 >= 4.0.5, PHP 5)

pdf_setcolor -- Sets fill and stroke color

Description

bool pdf_setcolor ( resource pdfdoc, string type, string colorspace, float c1 [, float c2 [, float c3 [, float c4]]])

Set the current color space and color. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. The parameter type can be fill, stroke or both to specify that the color is set for filling, stroking or both filling and stroking. The parameter colorspace can be gray, rgb, cmyk, spot or pattern. The parameters c1, c2, c3 and c4 represent the color components for the color space specified by colorspace. Except as otherwise noted, the color components are floating-point values that range from 0 to 1.

For gray only c1 is used.

For rgb parameters c1, c2, and c3 specify the red, green and blue values respectively.

<?php
// Set fill and stroke colors to white.
pdf_setcolor($pdf, "both", "rgb", 1, 1, 1);
?>

For cmyk, parameters c1, c2, c3, and c4 are the cyan, magenta, yellow and black values, respectively.

<?php
// Set fill and stroke colors to black.
pdf_setcolor($pdf, "both", "cmyk", 0, 0, 0, 1);
?>

For spot, c1 should be a spot color handles returned by pdf_makespotcolor() and c2 is a tint value between 0 and 1.

For pattern, c1 should be a pattern handle returned by pdf_begin_pattern().

Zurück | Zum Anfang | Nach vorne
pdf_set_word_spacing | Nach oben | pdf_setdash


pdf_setdash

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setdash -- Setzt das Muster für gestrichelte Linien

Beschreibung

void pdf_setdash ( int PDF-Dokument, double Weiß, double Schwarz)

Die Funktion pdf_setdash() setzt das Muster für gestrichelte Linien auf Weiß weiße Punkte und Schwarz schwarze Punkte. Wenn beide Werte 0 sind wird die Linie durchgezogen.

Zurück | Zum Anfang | Nach vorne
pdf_setcolor | Nach oben | pdf_setflat


pdf_setflat

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setflat -- Sets flatness

Beschreibung

void pdf_setflat ( int PDF-Dokument, double Wert)

Die Funktion pdf_setflat() setzt the flatness auf einen Wert zwischen 0 und 100.

Zurück | Zum Anfang | Nach vorne
pdf_setdash | Nach oben | pdf_setfont


pdf_setfont

(PHP 4 >= 4.0.5, PHP 5)

pdf_setfont -- Set the current font

Description

bool pdf_setfont ( resource pdfdoc, int font, float size)

Set the current font in the given size, using a font handle returned by pdf_findfont(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also pdf_findfont().

Zurück | Zum Anfang | Nach vorne
pdf_setflat | Nach oben | pdf_setgray_fill


pdf_setgray_fill

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setgray_fill -- Setzt die Füllfarbe auf einen Grauwert

Beschreibung

void pdf_setgray_fill ( int PDF-Dokument, double Grauwert)

Die Funktion pdf_setgray_fill() setzt den aktuellen Grauwert mit dem ein Pfad gefüllt wird.

Siehe auch pdf_setrgbcolor_fill().

Zurück | Zum Anfang | Nach vorne
pdf_setfont | Nach oben | pdf_setgray_stroke


pdf_setgray_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setgray_stroke -- Setzt die Zeichenfarbe auf einen Grauwert

Beschreibung

void pdf_setgray_stroke ( int PDF-Dokument, double Grauwert)

Die Funktion pdf_setgray_stroke() setzt die aktuellen Grauwert zum Zeichen von Linien.

Siehe auch pdf_setrgbcolor_stroke().

Zurück | Zum Anfang | Nach vorne
pdf_setgray_fill | Nach oben | pdf_setgray


pdf_setgray

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setgray -- Setzt die Zeichen- und Füllfarbe auf einen Grauwert

Beschreibung

void pdf_setgray ( int PDF-Dokument, double Grauwert)

Die Funktion pdf_setgray() setzt den aktuellen Grauwert zum Zeichen und Füllen.

Siehe auch pdf_setrgbcolor_stroke(), pdf_setrgbcolor_fill().

Zurück | Zum Anfang | Nach vorne
pdf_setgray_stroke | Nach oben | pdf_setlinecap


pdf_setlinecap

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setlinecap -- Setzt den Type der Linienenden

Beschreibung

void pdf_setlinecap ( int PDF-Dokument, int Typ)

Die Funktion pdf_setlinecap() setzt den Typ der Linienende auf einen Wert zwischen 0 und 2.

Zurück | Zum Anfang | Nach vorne
pdf_setgray | Nach oben | pdf_setlinejoin


pdf_setlinejoin

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setlinejoin -- Setzt die Verbindungsart von Linien

Beschreibung

void pdf_setlinejoin ( int PDF-Dokument, long Wert)

Die Funktion pdf_setlinejoin() setzt die Verbindungsart von Linien auf einen Wert zwischen 0 und 2.

Zurück | Zum Anfang | Nach vorne
pdf_setlinecap | Nach oben | pdf_setlinewidth


pdf_setlinewidth

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setlinewidth -- Setzt die Linienbreite

Beschreibung

void pdf_setlinewidth ( int PDF-Dokument, double Breite)

Die Funktion pdf_setlinewidth() setzt die Linienbreite auf Breite Punkte.

Zurück | Zum Anfang | Nach vorne
pdf_setlinejoin | Nach oben | pdf_setmatrix


pdf_setmatrix

(PHP 4 >= 4.0.5, PHP 5)

pdf_setmatrix -- Sets current transformation matrix

Description

bool pdf_setmatrix ( resource pdfdoc, float a, float b, float c, float d, float e, float f)

Explicitly set the current transformation matrix. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
pdf_setlinewidth | Nach oben | pdf_setmiterlimit


pdf_setmiterlimit

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setmiterlimit -- Sets miter limit

Beschreibung

void pdf_setmiterlimit ( int PDF-Dokument, double Wert)

Die Funktion pdf_setmiterlimit() setzt the miter limit größer oder gleich 1.

Zurück | Zum Anfang | Nach vorne
pdf_setmatrix | Nach oben | pdf_setpolydash


pdf_setpolydash

pdf_setpolydash -- Deprecated: Sets complicated dash pattern

Description

This function is deprecated, use pdf_setdash() instead.

Zurück | Zum Anfang | Nach vorne
pdf_setmiterlimit | Nach oben | pdf_setrgbcolor_fill


pdf_setrgbcolor_fill

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setrgbcolor_fill -- Setzt die Füllfarbe auf einen Farbwert

Beschreibung

void pdf_setrgbcolor_fill ( int PDF-Dokument, double Rotwert, double Grünwert, double Blauwert)

Die Funktion pdf_setrgbcolor_fill() setzt die aktuelle Füllfarbe auf einen RGB-Farbwert.

Siehe auch pdf_setrgbcolor_fill().

Zurück | Zum Anfang | Nach vorne
pdf_setpolydash | Nach oben | pdf_setrgbcolor_stroke


pdf_setrgbcolor_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setrgbcolor_stroke -- Setzt die Zeichenfarbe auf einen Farbwert

Beschreibung

void pdf_setrgbcolor_stroke ( int PDF-Dokument, double Rotwert, double Grünwert, double Blauwert)

Die Funktion pdf_setrgbcolor_stroke() setzt die aktuelle Zeichenfarbe auf einen RGB-Farbwert.

Siehe auch pdf_setrgbcolor_stroke().

Zurück | Zum Anfang | Nach vorne
pdf_setrgbcolor_fill | Nach oben | pdf_setrgbcolor


pdf_setrgbcolor

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setrgbcolor -- Setzt die Zeichen- und Füllfarbe auf einen Farbwert

Beschreibung

void pdf_setrgbcolor ( int PDF-Dokument, double Rotwert, double Grünwert, double Blauwert)

Die Funktion pdf_setrgbcolor_stroke() setzt sowohl die aktuelle Füll- und Zeichenfarbe auf einen RGB-Farbwert.

Siehe auch pdf_setrgbcolor_stroke(), pdf_setrgbcolor_fill().

Zurück | Zum Anfang | Nach vorne
pdf_setrgbcolor_stroke | Nach oben | pdf_show_boxed


pdf_show_boxed

(PHP 4 , PHP 5)

pdf_show_boxed -- Schreibt einen Text in eine Box

Beschreibung

void pdf_show_boxed ( int PDF-Dokument, string text, double x-Koor, double y-Koor, double Breite, double Höhe, string Modus [, string Feature])

Die Funktion pdf_show_boxed() gibt den Text text in einer Box aus, dessen linke untere Ecke an der Position (x-coor, y-coor) ist. Die Größe der Box ist Höhe mal Breite. Der Parameter Modus gibt an wie der Text gesetzt wird. Wenn Höhe und Breite NULL sind, darf Modus auf "left", "right" oder "center" gesetzt werden. Wenn Höhe oder Breite ungleich NULL sind zusätzlich die Werte "justify" and "fulljustify" erlaubt.

Wird im Parameter Feature der Wert "blind" übergeben, wird der Text nicht auszugeben.

Die Funktion liefert die Zahl der Zeichen, die nicht mehr berücksichtigt wurden, weil sie nicht mehr in Box passten.

See also pdf_show(), pdf_show_xy().

Zurück | Zum Anfang | Nach vorne
pdf_setrgbcolor | Nach oben | pdf_show_xy


pdf_show_xy

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_show_xy -- Schreibt einen Text an die angegebene Position

Beschreibung

void pdf_show_xy ( int PDF-Dokument, string Text, double x-Koor, double y-Koor)

Die Funktion pdf_show_xy() gibt den Text Text an der Position (x-Koor, y-Koor) aus.

Siehe auch pdf_show(), pdf_show_boxed().

Zurück | Zum Anfang | Nach vorne
pdf_show_boxed | Nach oben | pdf_show


pdf_show

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_show -- Schreibt einen Text an die aktuelle Position

Beschreibung

void pdf_show ( int PDF-Dokument, string Text)

Die Funktion pdf_show() gibt den Text Text an der aktuellen Textposition in dem aktuellen Zeichensatz aus.

Siehe auch pdf_show_xy(),
         pdf_show_boxed(),
         pdf_set_text_pos(),
         pdf_set_font().

Zurück | Zum Anfang | Nach vorne
pdf_show_xy | Nach oben | pdf_skew


pdf_skew

(PHP 4 , PHP 5)

pdf_skew -- Schert das Koordinatensystem

Beschreibung

void pdf_skew ( int PDF-Dokument, double alpha, double beta)

Die pdf_skew() Funktion schert das Koordinatensystem um alpha (x) und beta (y) Grad. alpha und beta dürfen weder 90 noch 270 Grad sein.

Zurück | Zum Anfang | Nach vorne
pdf_show | Nach oben | pdf_stringwidth


pdf_stringwidth

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_stringwidth -- Liefert die benötigte Breite einer Zeichenkette mit dem aktuelle Zeichensatz

Beschreibung

double pdf_stringwidth ( int PDF-Dokument, string Text)

Die Funktion pdf_stringwidth() liefert die Breite eines Textes text unter Verwendung des aktuellen Zeichensatzes. Um diese Funktion benutzen zu können muss zuvor ein Zeichensatz mit pdf_set_font() gesetzt worden sein.

Siehe auch pdf_set_font().

Zurück | Zum Anfang | Nach vorne
pdf_skew | Nach oben | pdf_stroke


pdf_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_stroke -- Zeichnet eine Linie entlang eines Pfades

Beschreibung

void pdf_stroke ( int PDF-Dokument)

Die Funktion pdf_stroke() zeichnet eine Linie entlang des aktuellen Pfads. Der aktuelle Pfad setzt sich beispielsweise aus allen Anweisung, die eine Linie gezeichnet haben zusammen. Ohne Aufruf dieser Funktion würde die Linie nicht erscheinen.

Siehe auch pdf_closepath(), pdf_closepath_stroke().

Zurück | Zum Anfang | Nach vorne
pdf_stringwidth | Nach oben | pdf_translate


pdf_translate

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_translate -- Setzt den Ursprung des Koordinatenssystems

Beschreibung

void pdf_translate ( int PDF-Dokument, double x-Koor, double y-Koor)

Die Funktion pdf_translate() setzt den Ursprung des Koordinatensystems auf den Punkt (x-Koor, y-Koor) relativ zum aktuellen Koordinatenursprung. Das folgende Beispiel zeichnet eine Linie vom Punkt (0, 0) zum Punkt (200, 200) relativ zum anfänglichen Ursprung. Die aktuelle Position muss nach pdf_translate() und vor dem weiteren Zeichnen gesetzt werden.

Beispiel 1. Translation

<?php pdf_moveto($pdf, 0, 0);
pdf_lineto($pdf, 100, 100);
pdf_stroke($pdf);
pdf_translate($pdf, 100, 100);
pdf_moveto($pdf, 0, 0);
pdf_lineto($pdf, 100, 100);
pdf_stroke($pdf);
?>

Zurück | Zum Anfang | Nach vorne
pdf_stroke | Nach oben | Verisign Payflow Pro Funktionen


Verisign Payflow Pro Funktionen

PHP Handbuch
Zurück Nach vorne

LXXXI. Verisign Payflow Pro Funktionen

Diese Erweiterung macht es möglich, Geschäftsabwicklungen via Kreditkarte und andere Finanztransaktionen über die Verisign Payment Services, auch als Signio bekannt, abzuwickeln (http://www.verisign.com/products/payflow/pro/index.html).

Diese Funktionen sind nur verfügbar, wenn PHP mit der Option --with-pfpro[=DIR] compiliert wurde. Dazu ist das SDK nötig, dass im Management-Interface heruntergeladen werden kann, sobald man sich registriert hat. Sollte diese Erweiterung in einem SSL-Webserver oder zusammen mit anderen SSL-Komponenten verwendet werden, muss die Beta-Version des SDK verwendet werden.

Sobald das SDK heruntergeladen wurde, sollte man die Dateien aus dem lib-Verzeichnis der Distribution kopieren. Die Header-Datei pfpro.h sollte in das Verzeichnis /usr/local/include, die Bibliothek libpfpro.so in das Verzeichnis /usr/local/lib kopiert werden.

Wenn diese Funktionen genutzt werden, ist es mögliche, auf Aufrufe von pfpro_init() und pfpro_cleanup() zu verzichten, da diese automatisch aufgerufen werden, wenn sie benötigt werden. Diese Funktionen sind jedoch nachwievor für Sonderfälle vorhanden, z.B. wenn viele Transaktionen auf einmal ausgeführt werden sollen, oder genaue Kontrolle über die Biblitohek benötigt wird. Mehrere Transaktionen zwischen diesen beiden Funktionen können mittels der pfpro_process()-Funktion ausgeführt werden.

Diese Funktionen sind seit PHP 4.0.2 verfügbar.

Anmerkung: Diese Funktionen stellen nur eine Schnittstelle zu den Verisign Payment Services dar. Details über die nötigen Paramter sind in dem Dokument Payflow Pro Developers Guide zu finden, welches bei Verisign erhältlich ist.

Inhaltsverzeichnis
pfpro_cleanup -- Schliesst Payflow Pro Bibliothek
pfpro_init -- Initialisiert die Payflow Pro Bibliothek
pfpro_process_raw -- Führt eine rohe Transaktion mit Payflow Pro aus
pfpro_process -- Führt eine Transaktion mit Payflow Pro aus
pfpro_version -- Gibt die Versionsinformationen der Payflow Pro Software zurück

Zurück | Zum Anfang | Nach vorne
pdf_translate | Nach oben | pfpro_cleanup


pfpro_cleanup

(PHP 4 >= 4.0.2, PHP 5)

pfpro_cleanup -- Schliesst Payflow Pro Bibliothek

Beschreibung

void pfpro_cleanup ( void )

pfpro_cleanup() veranlasst eine saubere Schliessung der Payflow Pro-Bibliothek. Auf einen Aufruf dieser Funktion kann verzichtet werden, da die Erweiterung automatisch ein pfpro_cleanup() ausführen wird, nachdem das Script beendet wurde.

Siehe auch pfpro_init().

Zurück | Zum Anfang | Nach vorne
Verisign Payflow Pro Funktionen | Nach oben | pfpro_init


pfpro_init

(PHP 4 >= 4.0.2, PHP 5)

pfpro_init -- Initialisiert die Payflow Pro Bibliothek

Beschreibung

void pfpro_init ( void )

pfpro_init() wird benutzt, um die Payflow Pro Bibliothek zu initialisieren. Auf einen Aufruf dieser Funktion kann verzichtet werden, da pfpro_init() automatisch vor der ersten Transaktion aufgerufen wird.

See also pfpro_cleanup().

Zurück | Zum Anfang | Nach vorne
pfpro_cleanup | Nach oben | pfpro_process_raw


pfpro_process_raw

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process_raw -- Führt eine rohe Transaktion mit Payflow Pro aus

Beschreibung

string pfpro_process_raw ( string parameters [, string address [, int port [, int timeout [, string proxy address [, int proxy port [, string proxy logon [, string proxy password]]]]]]])

Gibt die Antwort in einem String zurück.

pfpro_process_raw() führt eine rohe Transaktion mit Payflow Pro durch. Es sollte jedoch auf jeden Fall pfpro_process() verwendet werden, da sonst keinerlei Normung vorliegt.

Der erste Parameter ist ein String, der die rohe Transaktionsanfrage enthält. Alle anderen Parameter sind die Selben wie bei pfpro_process(). Der Rückgabewert ist ein String, der die rohe Antwort enthält.

Anmerkung: Bitte lesen sie die Payflow Pro Entwicklerdokumentation für alle Details zu den erforderlichen Parametern. Es wird empfohlen, die Funktion pfpro_process() zu verwenden.

Beispiel 1. Payflow Pro Beispiel für den Raw-Modus

<?php

pfpro_init();

$response = pfpro_process("USER=mylogin&PWD[5]=m&ndy&TRXTYPE=S&TENDER=C&AMT=1.50&ACCT=4111111111111111&EXPDATE=0904");

if (!$response) {
  die("Couldn't establish link to Verisign.\n");
}

echo "Verisign raw response was ".$response;

pfpro_cleanup();

?>

Zurück | Zum Anfang | Nach vorne
pfpro_init | Nach oben | pfpro_process


pfpro_process

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process -- Führt eine Transaktion mit Payflow Pro aus

Beschreibung

array pfpro_process ( array parameters [, string address [, int port [, int timeout [, string proxy address [, int proxy port [, string proxy logon [, string proxy password]]]]]]])

Gibt einen assoziativen Array, der die Antwort enthält, zurück.

pfpro_process() führt eine Transaktion mir Payflow Pro aus. Der erste Parameter ist ein assoziativer Array, der die Schlüssel und Werte enthält. Diese werden kodiert und an den PFPro-Prozessor weitergegeben.

Der zweite Parameter ist optional und gibt den Host an, zu dem das Script sich verbinden soll. Voreingestellt ist "test.signio.com", normalerweise sollte dies in "connect.signio.com" geändert werden, um Transaktionen durchzuführen.

Der dritte Parameter gibt den Port an, auf den das Script sicher verbinden soll. Voreingstellt ist 443, der Standard-SSL-Port.

Der vierte Parameter gibt den Timeout-Wert in Sekunden an. Voreingestellt ist der Wert 30 Sekunden. Dieser Timeout gilt jedoch nur zu Beginn des Scripts, also kann es durchaus sehr lange dauern, wenn ein Netzwerkproblem auftritt, nachdem die Verbindung erfolgreich hergestellt wurde.

Der fünfte Parameter gibt den SSL-Proxy an, falls dieser benötigt wird. Der sechste Parameter gibt den Port des Proxys an.

Der siebte und der achte Parameter geben den Login-Namen und das Login-Passwort an.

Die Funktion gibt einen assoziativen Array der Schlüssel und Werte zurück.

Anmerkung: Bitte lesen sie die Payflow Pro Entwicklerdokumentation für alle Details zu den erforderlichen Parametern.

Beispiel 1. Payflow Pro Beispiel

<?php

pfpro_init();

$transaction = array(USER    => 'mylogin',
             PWD    => 'mypassword',
             TRXTYPE    => 'S',
             TENDER    => 'C',
             AMT    => 1.50,
             ACCT    => '4111111111111111',
             EXPDATE    => '0904'
             );

$response = pfpro_process($transaction);

if (!$response) {
  die("Couldn't establish link to Verisign.\n");
}

echo "Verisign response code was ".$response[RESULT];
echo ", which means: ".$response[RESPMSG]."\n";

echo "\nThe transaction request: ";
print_r($transaction);

echo "\nThe response: ";
print_r($response);

pfpro_cleanup();

?>

Zurück | Zum Anfang | Nach vorne
pfpro_process_raw | Nach oben | pfpro_version


pfpro_version

(PHP 4 >= 4.0.2, PHP 5)

pfpro_version -- Gibt die Versionsinformationen der Payflow Pro Software zurück

Beschreibung

string pfpro_version ( void )

pfpro_version() gibt die Versionsinformationen der Payflow Pro Bibliothek zurück.

Zurück | Zum Anfang | Nach vorne
pfpro_process | Nach oben | PHP Optionen und Informationen


PHP Optionen und Informationen

PHP Handbuch
Zurück Nach vorne

LXXXII. PHP Optionen und Informationen

Inhaltsverzeichnis
assert_options -- Setzt oder liefert die Assert-Optionen
assert -- Prüft ab, ob eine Bedingung oder Abfrage FALSE ist
dl -- Lädt eine PHP-Erweiterung (Extension) zur Laufzeit
extension_loaded -- Zeigt an, ob eine Bibliothek geladen wurde
get_cfg_var -- Zeigt den Wert einer Option der PHP-Konfiguration
get_current_user -- Den Besitzer des aktuellen PHP-Scripts anzeigen.
get_defined_constants -- Returns an associative array with the names of all the constants and their values
get_extension_funcs -- Stellt ein Array mit den Namen einer Funktion eines Moduls zur Verfügung
get_include_path -- Gets the current include_path configuration option
get_included_files -- Stellt ein Array der Dateinamen zur Verfügung, die mittels include_once() in ein Script geladen wurden
get_loaded_extensions -- Stellt ein Array mit den Namen aller Module, die kompiliert und geladen sind, zur Verfügung
get_magic_quotes_gpc -- Zeigt die aktuelle Konfiguration von magic quotes gpc
get_magic_quotes_runtime -- Zeigt die aktuelle Konfiguration von magic_quotes_runtime
get_required_files -- Stellt ein Array mit den Namen der Dateien zur Verfügung, die über require_once() in einem Script aufgerufen wurden
getenv -- Zeigt den Wert einer Umgebungsvariablen an
getlastmod -- Zeigt die Uhrzeit der letzten Änderung einer Seite
getmygid -- Get PHP script owner's GID
getmyinode -- Gibt den Inode des aktuellen Skripts aus
getmypid -- Zeigt die ID des PHP-Prozesses
getmyuid -- Zeigt die UID des Besitzers eines PHP-Scripts
getopt -- Gets options from the command line argument list
getrusage -- Zeigt den aktuellen Ressourcenverbrauch an
ini_alter -- Alias of ini_set()
ini_get_all -- Gets all configuration options
ini_get -- Gets the value of a configuration option
ini_restore -- Restores the value of a configuration option
ini_set -- Sets the value of a configuration option
main -- Dummy for main()
memory_get_usage -- Returns the amount of memory allocated to PHP
php_ini_scanned_files -- Return a list of .ini files parsed from the additional ini dir
php_logo_guid -- Die logo-guid abfragen
php_sapi_name -- Zeigt die Schnittstelle zwischen Webserver und PHP an
php_uname -- Returns information about the operating system PHP was built on
phpcredits -- Prints out the credits for PHP
phpinfo -- Zeigt viele Informationen zu PHP
phpversion -- Fragt die installierte PHP-Version ab
putenv -- Setzt den Wert einer Umgebungsvariablen.
restore_include_path -- Restores the value of the include_path configuration option
set_include_path -- Sets the include_path configuration option
set_magic_quotes_runtime -- Setzt magic_quotes_runtime
set_time_limit -- Setzt die maximale Ausführungszeit
version_compare -- Compares two "PHP-standardized" version number strings
zend_logo_guid -- Zeigt die Zend guid
zend_version -- Zeigt die aktuelle Zend engine Version

Zurück | Zum Anfang | Nach vorne
pfpro_version | Nach oben | assert_options


assert_options

(PHP 4 , PHP 5)

assert_options -- Setzt oder liefert die Assert-Optionen

Beschreibung

mixed assert_options ( int what [, mixed value])

assert_options() ermöglicht es, die verschiedenene assert() Optionen zu setzen, oder abzufragen, welche Optionen gesetzt sind.

Tabelle 1. assert Optionen

Option | Parameter in .ini-Datei | Standardwert | Beschreibung
ASSERT_ACTIVE | assert.active | 1 | assert() Überprüfung aktivieren
ASSERT_WARNING | assert.warning | 1 | gibt eine PHP Warnung für jede fehlgeschlagene Überprüfung an
ASSERT_BAIL | assert.bail | 0 | Beendet das Programm bei fehlgeschlagener Überprüfung
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | Unterdrückt die Fehlerausgabe während der Überprüfung
ASSERT_CALLBACK | assert_callback | (NULL) | ermöglicht die Angabe einer benuterdefinierten Funktion

assert_options() gibt die Einstellung der gesetzten Optionen zurück oder liefert den Wert FALSE bei Auftreten eines Fehlers zurück.

Zurück | Zum Anfang | Nach vorne
PHP Optionen und Informationen | Nach oben | assert


assert

(PHP 4 , PHP 5)

assert -- Prüft ab, ob eine Bedingung oder Abfrage FALSE ist

Beschreibung

int assert ( string|bool assertion)

assert() überprüft den übergebenen Parameter assertion und führt ein über die Funktion assert_options() definiertes Ereignis aus, falls die in assertion spezifizierte Bedingung FALSE ist.

Wird der Parameter assertion als String übergeben, so wird der String als PHP-Code interpretiert. Der Vorteil der Übergabe des Parameters assertion als Zeichenkette liegt darin, dass die ausgegebene Meldung die über assertion übergebene Zeichenkette enthält.

assert() sollte nur zum Debuggen des Codes und nicht in Produktionsumgebungen verwendet werden werden, beispielsweise zur Überprüfung von Eingaben.

Die Optionen für die assert() können über die Funktion assert_options() oder in den Einstellungen der .ini-Datei gesetzt werden.

Die Funktion assert_options() mit der ASSERT_CALLBACK Direktive ermöglicht eine Funktion anzugeben, die bei fehlender Überprüfung aufgerufen wird.

Callback-Funktionen in Zusammenhang mit assert() sind nützlich, um beispielsweise automatisierte Tests durchzuführen, da die Callback-Funktion pber die Information verfügt, von welcher Stelle sie aufgerufen wurde.

Die Callback-Funktion wird mit drei Parametern aufgerufen. Der erste Parameter enthält den Namen des Scripts, in dem die Überprüfung statt fand, der zweite Parameter die Zeilennummer, und der dritte Paramter enthält die über assertion angegebene Bedingung.

Beispiel 1. Überprüfung mit benutzerdefinierter Funktion

<?php
// Active assert and make it quiet
assert_options (ASSERT_ACTIVE, 1);
assert_options (ASSERT_WARNING, 0);
assert_options (ASSERT_QUIET_EVAL, 1);

// Create a handler function
function my_assert_handler ($file, $line, $code) {
    echo "<hr>Assertion Failed:
        File '$file'<br>
        Line '$line'<br>
        Code '$code'<br><hr>";
}

// Set up the callback
assert_options (ASSERT_CALLBACK, 'my_assert_handler');

// Make an assertion that should fail
assert ('mysql_query ("")');
?>

Zurück | Zum Anfang | Nach vorne
assert_options | Nach oben | dl


dl

(PHP 3, PHP 4 , PHP 5)

dl -- Lädt eine PHP-Erweiterung (Extension) zur Laufzeit

Beschreibung

int dl ( string library)

Lädt die mittels dem Parameter library angegebene PHP-Erweiterung. Der Parameter library ist nur der Dateiname der zu ladenden Erweiterung (Extension), welcher von Ihrer Plattform abhängig ist. Z.B. würde die Extension sockets (wenn als shared module kompiliert, nicht standardmäßig!) auf Unix Plattformen sockets.so, und auf Windows Plattformen php_sockets.dll heißen.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Ist die Funktionalität des Ladens von Modulen nicht verfügbar (siehe Anmerkung), oder wurde sie deaktiviert (entweder durch Deaktivieren von enable_dl oder durch aktivieren von safe_mode in der php.ini), wird ein E_ERROR ausgegeben, und die Ausführung gestoppt. Scheitert dl() weil die angegebene Erweiterung nicht geladen werden konnte, wird zusätzlich zu FALSE eine E_WARNING Meldung ausgegeben.

Verwenden Sie extension_loaded() um zu testen, ob die gewünschte Erweiterung bereits verfügbar ist oder nicht. Dies funktioniert sowohl bei eingebauten, als auch bei dynamisch geladenen Erweiterungen (entweder durch php.ini, oder mittels dl()).

Beispiel 1. dl() Beispiel

if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}

Das Verzeichnis, von wo aus die Erweiterung geladen wird, hängt von Ihrer Plattform ab:

Windows - Wenn nicht explizit in der php.ini angegeben, wird die Erweiterung standardmäßig von c:\php4\extensions\ geladen.

Unix - Wenn nicht explizit in der php.ini angegeben, hängt das standardmäßige Verzeichnis ab von:

  • ob PHP mit --enable-debug erstellt wurde oder nicht

  • ob PHP mit (experimentellem) ZTS (Zend Thread Safety) Unterstützung erstellt wurde oder nicht

  • der aktuellen internen ZEND_MODULE_API_NO (Zend interne Modul API Nummer, welche im Grunde das Datum der letzten größeren Modul API Änderung darstellt, z.B. 20010901).

Das obige in Betracht gezogen, ist das standardmäßige Verzeichnis <php-install-directory>/lib/php/extension/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, z.B. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 oder /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Anmerkung: dl() wird in multithreaded WebServern nicht unterstützt. In solch einer Umgebung verwenden Sie bitte die extensions Anweisung in Ihrer php.ini. Die CGI und CLI Module sind davon jedoch nicht betroffen!

Anmerkung: dl() unterscheidet auf Unix Plattformen zwischen Groß- und Kleinschreibung.

Siehe auch Extension Loading Directives and extension_loaded().

Zurück | Zum Anfang | Nach vorne
assert | Nach oben | extension_loaded


extension_loaded

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

extension_loaded -- Zeigt an, ob eine Bibliothek geladen wurde

Beschreibung

bool extension_loaded ( string name)

Ist wahr, wenn die Bibliothek, die mit name definiert wurde, geladen ist. Einen Überblick über die verschiedenen Bibliotheken erhält man mit phpinfo().

Siehe auch phpinfo().

Anmerkung: Diese Funktion wurde mit Version 3.0.10 eingeführt.

Zurück | Zum Anfang | Nach vorne
dl | Nach oben | get_cfg_var


get_cfg_var

(PHP 3, PHP 4 , PHP 5)

get_cfg_var -- Zeigt den Wert einer Option der PHP-Konfiguration

Beschreibung

string get_cfg_var ( string varname)

Zeigt den derzeitigen Wert der Variablen der PHP-Konfiguration, die mit varname ausgewählt wurde oder FALSE bei einem Fehler.

Bringt keine Informationen über die Konfiguration, mit der PHP kompilert wurde, oder die aus der Apache-Konfiguration gelesen wird (mittels der php3_configuration_option Anweisungen).

Um herauszubekommen, ob ein configuration file, benutzt wird, sollte versucht werden, den Wert der cfg_file_path Einstellung zu erhalten. Ist dieser Wert verfügbar, wird eine Konfigurationsdatei verwendet.

Zurück | Zum Anfang | Nach vorne
extension_loaded | Nach oben | get_current_user


get_current_user

(PHP 3, PHP 4 , PHP 5)

get_current_user -- Den Besitzer des aktuellen PHP-Scripts anzeigen.

Beschreibung

string get_current_user ( void )

Zeigt den Namen des Besitzers des aktuellen PHP-Scripts an.

Siehe auch getmyuid(),
getmypid(), getmyinode(),
und getlastmod().

Zurück | Zum Anfang | Nach vorne
get_cfg_var | Nach oben | get_defined_constants


get_defined_constants

(PHP 4 >= 4.1.0, PHP 5)

get_defined_constants -- Returns an associative array with the names of all the constants and their values

Description

array get_defined_constants ( void )

This function returns the names and values of all the constants currently defined. This includes those created by extensions as well as those created with the define() function.

For example the line below:

<?php
print_r(get_defined_constants());
?>

will print a list like:

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

See also
get_loaded_extensions(),
get_defined_functions(), and
get_defined_vars().

Zurück | Zum Anfang | Nach vorne
get_current_user | Nach oben | get_extension_funcs


get_extension_funcs

(PHP 4 , PHP 5)

get_extension_funcs -- Stellt ein Array mit den Namen einer Funktion eines Moduls zur Verfügung

Bescheibung

array get_extension_funcs ( string module_name)

Diese Funktion zeigt die Namen aller Funktionen, die im Modul, welches von module_name angezeigt wird, an.

Zum Beispiel würden diese Zeilen

print_r(get_extension_funcs("xml"));
print_r(get_extension_funcs("gd"));

eine Liste von Funktionen in den Modulen xml bzw. gd ausgeben.

Siehe auch: get_loaded_extensions()

Zurück | Zum Anfang | Nach vorne
get_defined_constants | Nach oben | get_include_path


get_include_path

(PHP 4 >= 4.3.0, PHP 5)

get_include_path -- Gets the current include_path configuration option

Description

string get_include_path ( void )

Gets the current include_path configuration option value.

Beispiel 1. get_include_path() example

<?php
// Works as of PHP 4.3.0
echo get_include_path();

// Works in all PHP versions
echo ini_get('include_path');
?>

See also ini_get(),
restore_include_path(),
set_include_path(), and
include().

Zurück | Zum Anfang | Nach vorne
get_extension_funcs | Nach oben | get_included_files


get_included_files

(PHP 4 , PHP 5)

get_included_files -- Stellt ein Array der Dateinamen zur Verfügung, die mittels include_once() in ein Script geladen wurden

Beschreibung

array get_included_files ( void )

Diese Funktion stellt ein assoziatives Array der Namen aller Dateien zur Verfügung, die mit include_once() in ein Script geladen wurden. Die Indexe dieses Arrays sind die Dateinamen, die in include_once() benutzt wurden, ohne die Endung ".php".

Anmerkung: Ab PHP 4.0.1pl2 setzt diese Funktion voraus, dass die Dateien, die mit include_onceaufgerufen wurden, die Endung ".php" haben. Andere Endungen funktionieren nicht.

Siehe auch: require_once(),
include_once() und
get_required_files().

Zurück | Zum Anfang | Nach vorne
get_include_path | Nach oben | get_loaded_extensions


get_loaded_extensions

(PHP 4 , PHP 5)

get_loaded_extensions -- Stellt ein Array mit den Namen aller Module, die kompiliert und geladen sind, zur Verfügung

Beschreibung

array get_loaded_extensions ( void )

Dieser Funktion zeigt die Namen aller Module an, die in den PHP-Interpreter kompiliert und geladen wurden

Zum Beispiel gibt diese Zeile

print_r (get_loaded_extensions());

eine Liste wie die folgende aus:

Array
(
    [0] => xml
    [1] => wddx
    [2] => standard
    [3] => session
    [4] => posix
    [5] => pgsql
    [6] => pcre
    [7] => gd
    [8] => ftp
    [9] => db
    [10] => Calendar
    [11] => bcmath
)

Siehe auch: get_extension_funcs()

Zurück | Zum Anfang | Nach vorne
get_included_files | Nach oben | get_magic_quotes_gpc


get_magic_quotes_gpc

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

get_magic_quotes_gpc -- Zeigt die aktuelle Konfiguration von magic quotes gpc

Beschreibung

long get_magic_quotes_gpc ( void )

Zeigt die aktuelle Konfiguration von magic_quotes_gpc. (0 für aus, 1 für an).

Siehe auch get_magic_quotes_runtime() und set_magic_quotes_runtime().

Zurück | Zum Anfang | Nach vorne
get_loaded_extensions | Nach oben | get_magic_quotes_runtime


get_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

get_magic_quotes_runtime -- Zeigt die aktuelle Konfiguration von magic_quotes_runtime

Beschreibung

Long get_magic_quotes_runtime ( void )

Zeigt die aktuelle Konfiguration von magic_quotes_runtime. (0 für aus, 1 für an).

Siehe auch get_magic_quotes_gpc() und set_magic_quotes_runtime().

Zurück | Zum Anfang | Nach vorne
get_magic_quotes_gpc | Nach oben | get_required_files


get_required_files

(PHP 4 , PHP 5)

get_required_files -- Stellt ein Array mit den Namen der Dateien zur Verfügung, die über require_once() in einem Script aufgerufen wurden

Beschreibung

array get_required_files ( void )

Diese Funktion stellt ein assoziatives Array der Namen aller Dateien zur Verfügung, die mit require_once() in ein Script geladen wurden. Die Indexe dieses Arrays sind die Dateinamen, die in require_once() benutzt werden, ohne die Endung ".php".

Dieses Beispiel

Beispiel 1. Ausgabe der required und included Dateien

<?php

require_once("local.php");
require_once("../inc/global.php");

for ($i=1; $i<5; $i++)
    include "util".$i."php";

echo "Required_once files\n";
print_r (get_required_files());

echo "Included_once files\n";
print_r (get_included_files());
wird folgendes ausgeben:

Required_once files
Array
(
    [local] => local.php
    [../inc/global] => /full/path/to/inc/global.php
)

Included_once files
Array
(
    [util1] => util1.php
    [util2] => util2.php
    [util3] => util3.php
    [util4] => util4.php
)

Anmerkung: Ab PHP 4.0.1pl2 setzt diese Funktion voraus, dass die Dateien, die mit required_once aufgerufen wurden, die Endung ".php" haben. Andere Endungen funktionieren nicht.

Siehe auch: require_once(),
include_once() und
get_included_files().

Zurück | Zum Anfang | Nach vorne
get_magic_quotes_runtime | Nach oben | getenv


getenv

(PHP 3, PHP 4 , PHP 5)

getenv -- Zeigt den Wert einer Umgebungsvariablen an

Beschreibung

string getenv ( string varname)

Zeigt den Wert der Umgebungsvariablen varname an oder FALSE bei einem Fehler.

$ip = getenv ("REMOTE_ADDR"); // get the ip number of the user

Eine Liste aller Umgebungsvariablen wird mit phpinfo() angezeigt. Ein Überlick über viele Umgebungsvariablen und deren Bedeutung findet sich unter den CGI Spezificationen, speziell auf der Seite der Umgebungsvariablen .

Zurück | Zum Anfang | Nach vorne
get_required_files | Nach oben | getlastmod


getlastmod

(PHP 3, PHP 4 , PHP 5)

getlastmod -- Zeigt die Uhrzeit der letzten Änderung einer Seite

Beschreibung

int getlastmod ( void )

Zeigt die Uhrzeit der letzten Änderung der aktuellen Seite. Der Wert wird als Unix-Timestamp angezeigt, welcher für date() benutzt werden kann. Bringt FALSE bei einem Fehler.

Beispiel 1. getlastmod() Beispiel

// outputs e.g. 'Last modified: March 04 1998 20:43:59.'
echo "Last modified: ".date ("F d Y H:i:s.", getlastmod());

Siehe auch date(),
getmyuid(),
get_current_user(),
getmyinode() und
getmypid().

Zurück | Zum Anfang | Nach vorne
getenv | Nach oben | getmygid


getmygid

(PHP 4 >= 4.1.0, PHP 5)

getmygid -- Get PHP script owner's GID

Description

int getmygid ( void )

Returns the group ID of the current script, or FALSE on error.

See also getmyuid(),
getmypid(),
get_current_user(),
getmyinode(), and
getlastmod().

Zurück | Zum Anfang | Nach vorne
getlastmod | Nach oben | getmyinode


getmyinode

(PHP 3, PHP 4 , PHP 5)

getmyinode -- Gibt den Inode des aktuellen Skripts aus

Beispiel

int getmyinode ( void )

Zeigt den inode des aktuellen Scripts oder FALSE bei einem Fehler.

Siehe auch getmyuid(),
get_current_user(),
getmypid() und
getlastmod().

Zurück | Zum Anfang | Nach vorne
getmygid | Nach oben | getmypid


getmypid

(PHP 3, PHP 4 , PHP 5)

getmypid -- Zeigt die ID des PHP-Prozesses

Beschreibung

int getmypid ( void )

Zeigt die aktuelle ID des PHP-Prozesses oder FALSE bei einem Fehler.

Achtung: Wenn PHP als Server-Modul läuft, ist es nicht garantiert, dass Scripts unter verschiedenen PIDs laufen.

Siehe auch getmyuid(),
get_current_user(),
getmyinode() und
getlastmod().

Zurück | Zum Anfang | Nach vorne
getmyinode | Nach oben | getmyuid


getmyuid

(PHP 3, PHP 4 , PHP 5)

getmyuid -- Zeigt die UID des Besitzers eines PHP-Scripts

Beschreibung

int getmyuid ( void )

Zeigt die User-ID des aktuellen Scripts oder FALSE bei einem Fehler.

Siehe auch getmypid(),
get_current_user(),
getmyinode() und
getlastmod().

Zurück | Zum Anfang | Nach vorne
getmypid | Nach oben | getopt


getopt

(PHP 4 >= 4.3.0, PHP 5)

getopt -- Gets options from the command line argument list

Description

array getopt ( string options)

Returns an associative array of option / argument pairs based on the options format specified in options, or FALSE on an error.

<?php
// parse the command line ($GLOBALS['argv'])
$options = getopt("f:hp:");
?>

The options parameter may contain the following elements: individual characters, and characters followed by a colon to indicate an option argument is to follow. For example, an option string x recognizes an option -x, and an option string x: recognizes an option and argument -x argument. It does not matter if an argument has leading white space.

This function will return an array of option / argument pairs. If an option does not have an argument, the value will be set to FALSE.

Anmerkung: Diese Funktion ist auf Windows-Plattformen nicht implementiert.

Zurück | Zum Anfang | Nach vorne
getmyuid | Nach oben | getrusage


getrusage

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

getrusage -- Zeigt den aktuellen Ressourcenverbrauch an

Beschreibung

array getrusage ( [int who])

Dies ist eine Schnittstlle zu getrusage(2). Stellt ein assoziatives Array mit den Daten zur Verfügung, die der Systemaufruf ausgibt. Wenn who 1 ist, wird getusage mit RUSAGE_CHILDREN aufgerufen.

Alle Einträge können über ihre Dukumentenfeldernamen aufgerufen werden.

Beispiel 1. getrusage() Beispiel

$dat = getrusage();
echo $dat["ru_nswap"];         # number of swaps
echo $dat["ru_majflt"];        # number of page faults
echo $dat["ru_utime.tv_sec"];  # user time used (seconds)
echo $dat["ru_utime.tv_usec"]; # user time used (microseconds)
Siehe auch im Handbuch des Betriebssystems für weitere Details.

Zurück | Zum Anfang | Nach vorne
getopt | Nach oben | ini_alter


ini_alter

ini_alter -- Alias of ini_set()

Description

This function is an alias of ini_set().

Zurück | Zum Anfang | Nach vorne
getrusage | Nach oben | ini_get_all


ini_get_all

(PHP 4 >= 4.2.0, PHP 5)

ini_get_all -- Gets all configuration options

Description

array ini_get_all ( [string extension])

Returns all the registered configuration options as an associative array. If the optional extension parameter is set, returns only options specific for that extension.

The returned array uses the directive name as the array key, with elements of that array being global_value (set in php.ini), local_value (perhaps set with ini_set() or .htaccess), and access (the access level). See the manual section on configuration changes for information on what access levels mean.

Anmerkung: It's possible for a directive to have multiple access levels, which is why access shows the appropriate bitmask values.

Beispiel 1. A ini_get_all() example

<?php
$inis = ini_get_all();

print_r($inis);

?>

Partial output may look like:

Array
(
    [allow_call_time_pass_reference] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 6
    )
    [allow_url_fopen] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 7
    )

    ...

)

See also: ini_get(),
ini_restore(),
ini_set(),
get_loaded_extensions(), and
phpinfo().

Zurück | Zum Anfang | Nach vorne
ini_alter | Nach oben | ini_get


ini_get

(PHP 4 , PHP 5)

ini_get -- Gets the value of a configuration option

Description

string ini_get ( string varname)

Returns the value of the configuration option on success. Failure, such as querying for a non-existant value, will return an empty string.

When querying boolean values: A boolean ini value of off will be returned as an empty string while a boolean ini value of on will be returned as "1".

When querying memory size values: Many ini memory size values, such as upload_max_filesize are stored in the php.ini file in shorthand notation. ini_get() will return the exact string stored in the php.ini file, NOT its integer equivalent. Attempting normal arithmetic functions on these values will not have otherwise expected results.

<?php
/*
Our php.ini contains the following settings:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";

?>

This script will produce:

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9

See also
get_cfg_var(),
ini_get_all(),
ini_restore(), and
ini_set().

Zurück | Zum Anfang | Nach vorne
ini_get_all | Nach oben | ini_restore


ini_restore

(PHP 4 , PHP 5)

ini_restore -- Restores the value of a configuration option

Description

void ini_restore ( string varname)

Restores a given configuration option to its original value.

See also
ini_get(),
ini_get_all(), and
ini_set().

Zurück | Zum Anfang | Nach vorne
ini_get | Nach oben | ini_set


ini_set

(PHP 4 , PHP 5)

ini_set -- Sets the value of a configuration option

Description

string ini_set ( string varname, string newvalue)

Sets the value of the given configuration option. Returns the old value on success, FALSE on failure. The configuration option will keep this new value during the script's execution, and will be restored at the script's ending.

Not all the available options can be changed using ini_set(). Below is a table with a list of all PHP options (as of PHP 4.2.0), indicating which ones can be changed/set and at what level.

Tabelle 1. Configuration options

Name | Default | Changeable
com.allow_dcom | "0" | PHP_INI_SYSTEM
com.autoregister_typelib | "0" | PHP_INI_SYSTEM
com.autoregister_verbose | "0" | PHP_INI_SYSTEM
com.autoregister_casesensitive | "1" | PHP_INI_SYSTEM
com.typelib_file | "" | PHP_INI_SYSTEM
crack.default_dictionary | NULL | PHP_INI_SYSTEM
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL
exif.encode_jis | "" | PHP_INI_ALL
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL
exif.decode_jis_intel | "JIS" | PHP_INI_ALL
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM
fbsql.autocommit | "1" | PHP_INI_SYSTEM
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM
fbsql.max_links | "128" | PHP_INI_SYSTEM
fbsql.max_connections | "128" | PHP_INI_SYSTEM
fbsql.max_results | "128" | PHP_INI_SYSTEM
fbsql.batchSize | "1000" | PHP_INI_SYSTEM
fbsql.default_host | NULL | PHP_INI_SYSTEM
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM
fbsql.default_password | "" | PHP_INI_SYSTEM
fbsql.default_database | "" | PHP_INI_SYSTEM
fbsql.default_database_password | "" | PHP_INI_SYSTEM
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM
hyperwave.default_port | "418" | PHP_INI_ALL
iconv.input_encoding | ICONV_INPUT_ENCODING | PHP_INI_ALL
iconv.output_encoding | ICONV_OUTPUT_ENCODING | PHP_INI_ALL
iconv.internal_encoding | ICONV_INTERNAL_ENCODING | PHP_INI_ALL
ifx.allow_persistent | "1" | PHP_INI_SYSTEM
ifx.max_persistent | "-1" | PHP_INI_SYSTEM
ifx.max_links | "-1" | PHP_INI_SYSTEM
ifx.default_host | NULL | PHP_INI_SYSTEM
ifx.default_user | NULL | PHP_INI_SYSTEM
ifx.default_password | NULL | PHP_INI_SYSTEM
ifx.blobinfile | "1" | PHP_INI_ALL
ifx.textasvarchar | "0" | PHP_INI_ALL
ifx.byteasvarchar | "0" | PHP_INI_ALL
ifx.charasvarchar | "0" | PHP_INI_ALL
ifx.nullformat | "0" | PHP_INI_ALL
ingres.allow_persistent | "1" | PHP_INI_SYSTEM
ingres.max_persistent | "-1" | PHP_INI_SYSTEM
ingres.max_links | "-1" | PHP_INI_SYSTEM
ingres.default_database | NULL | PHP_INI_ALL
ingres.default_user | NULL | PHP_INI_ALL
ingres.default_password | NULL | PHP_INI_ALL
ibase.allow_persistent | "1" | PHP_INI_SYSTEM
ibase.max_persistent | "-1" | PHP_INI_SYSTEM
ibase.max_links | "-1" | PHP_INI_SYSTEM
ibase.default_user | NULL | PHP_INI_ALL
ibase.default_password | NULL | PHP_INI_ALL
ibase.timestampformat | "%m/%d/%Y%H:%M:%S" | PHP_INI_ALL
ibase.dateformat | "%m/%d/%Y" | PHP_INI_ALL
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL
java.class.path | NULL | PHP_INI_ALL
java.home | NULL | PHP_INI_ALL
java.library.path | NULL | PHP_INI_ALL
java.library | JAVALIB | PHP_INI_ALL
java.library | NULL | PHP_INI_ALL
ldap.max_links | "-1" | PHP_INI_SYSTEM
mbstring.detect_order | NULL | PHP_INI_ALL
mbstring.http_input | NULL | PHP_INI_ALL
mbstring.http_output | NULL | PHP_INI_ALL
mbstring.internal_encoding | NULL | PHP_INI_ALL
mbstring.substitute_character | NULL | PHP_INI_ALL
mbstring.func_overload | "0" | PHP_INI_SYSTEM
mcrypt.algorithms_dir | NULL | PHP_INI_ALL
mcrypt.modes_dir | NULL | PHP_INI_ALL
mime_magic.magicfile | "/usr/share/misc/magic.mime" | PHP_INI_SYSTEM
mssql.allow_persistent | "1" | PHP_INI_SYSTEM
mssql.max_persistent | "-1" | PHP_INI_SYSTEM
mssql.max_links | "-1" | PHP_INI_SYSTEM
mssql.max_procs | "25" | PHP_INI_ALL
mssql.min_error_severity | "10" | PHP_INI_ALL
mssql.min_message_severity | "10" | PHP_INI_ALL
mssql.compatability_mode | "0" | PHP_INI_ALL
mssql.connect_timeout | "5" | PHP_INI_ALL
mssql.timeout | "60" | PHP_INI_ALL
mssql.textsize | "-1" | PHP_INI_ALL
mssql.textlimit | "-1" | PHP_INI_ALL
mssql.batchsize | "0" | PHP_INI_ALL
mssql.datetimeconvert | "1" | PHP_INI_ALL
mssql.secure_connection | "0" | PHP_INI_SYSTEM
mysql.allow_persistent | "1" | PHP_INI_SYSTEM
mysql.max_persistent | "-1" | PHP_INI_SYSTEM
mysql.max_links | "-1" | PHP_INI_SYSTEM
mysql.default_host | NULL | PHP_INI_ALL
mysql.default_user | NULL | PHP_INI_ALL
mysql.default_password | NULL | PHP_INI_ALL
mysql.default_port | NULL | PHP_INI_ALL
mysql.default_socket | NULL | PHP_INI_ALL
ncurses.value | "42" | PHP_INI_ALL
ncurses.string | "foobar" | PHP_INI_ALL
odbc.allow_persistent | "1" | PHP_INI_SYSTEM
odbc.max_persistent | "-1" | PHP_INI_SYSTEM
odbc.max_links | "-1" | PHP_INI_SYSTEM
odbc.default_db | NULL | PHP_INI_ALL
odbc.default_user | NULL | PHP_INI_ALL
odbc.default_pw | NULL | PHP_INI_ALL
odbc.defaultlrl | "4096" | PHP_INI_ALL
odbc.defaultbinmode | "1" | PHP_INI_ALL
odbc.check_persistent | "1" | PHP_INI_SYSTEM
pfpro.defaulthost | "test.signio.com" |
pfpro.defaulthost | "test-payflow.verisign.com" |
pfpro.defaultport | "443" | PHP_INI_ALL
pfpro.defaulttimeout | "30" | PHP_INI_ALL
pfpro.proxyaddress | "" | PHP_INI_ALL
pfpro.proxyport | "" | PHP_INI_ALL
pfpro.proxylogon | "" | PHP_INI_ALL
pfpro.proxypassword | "" | PHP_INI_ALL
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM
pgsql.max_links | "-1" | PHP_INI_SYSTEM
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM
pgsql.ignore_notice | "0" | PHP_INI_ALL
pgsql.log_notice | "0" | PHP_INI_ALL
session.save_path | "/tmp" | PHP_INI_ALL
session.name | "PHPSESSID" | PHP_INI_ALL
session.save_handler | "files" | PHP_INI_ALL
session.auto_start | "0" | PHP_INI_ALL
session.gc_probability | "1" | PHP_INI_ALL
session.gc_divisor | "100" | PHP_INI_ALL
session.gc_maxlifetime | "1440" | PHP_INI_ALL
session.serialize_handler | "php" | PHP_INI_ALL
session.cookie_lifetime | "0" | PHP_INI_ALL
session.cookie_path | "/" | PHP_INI_ALL
session.cookie_domain | "" | PHP_INI_ALL
session.cookie_secure | "" | PHP_INI_ALL
session.use_cookies | "1" | PHP_INI_ALL
session.use_only_cookies | "0" | PHP_INI_ALL
session.referer_check | "" | PHP_INI_ALL
session.entropy_file | "" | PHP_INI_ALL
session.entropy_length | "0" | PHP_INI_ALL
session.cache_limiter | "nocache" | PHP_INI_ALL
session.cache_expire | "180" | PHP_INI_ALL
session.use_trans_sid | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
session.encode_sources | "globals,track" | PHP_INI_ALL
assert.active | "1" | PHP_INI_ALL
assert.bail | "0" | PHP_INI_ALL
assert.warning | "1" | PHP_INI_ALL
assert.callback | NULL | PHP_INI_ALL
assert.quiet_eval | "0" | PHP_INI_ALL
safe_mode_protected_env_vars | SAFE_MODE_PROTECTED_ENV_VARS | PHP_INI_SYSTEM
safe_mode_allowed_env_vars | SAFE_MODE_ALLOWED_ENV_VARS | PHP_INI_SYSTEM
url_rewriter.tags | "a=href,area=href,frame=src,form=fakeentry" | PHP_INI_ALL
sybct.allow_persistent | "1" | PHP_INI_SYSTEM
sybct.max_persistent | "-1" | PHP_INI_SYSTEM
sybct.max_links | "-1" | PHP_INI_SYSTEM
sybct.min_server_severity | "10" | PHP_INI_ALL
sybct.min_client_severity | "10" | PHP_INI_ALL
sybct.hostname | NULL | PHP_INI_ALL
vpopmail.directory | "" | PHP_INI_ALL
zlib.output_compression | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
zlib.output_compression_level | "-1" | PHP_INI_ALL
define_syslog_variables | "0" | PHP_INI_ALL
highlight.bg | HL_BG_COLOR | PHP_INI_ALL
highlight.comment | HL_COMMENT_COLOR | PHP_INI_ALL
highlight.default | HL_DEFAULT_COLOR | PHP_INI_ALL
highlight.html | HL_HTML_COLOR | PHP_INI_ALL
highlight.keyword | HL_KEYWORD_COLOR | PHP_INI_ALL
highlight.string | HL_STRING_COLOR | PHP_INI_ALL
allow_call_time_pass_reference | "1" | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
display_errors | "1" | PHP_INI_ALL
display_startup_errors | "0" | PHP_INI_ALL
enable_dl | "1" | PHP_INI_SYSTEM
expose_php | "1" | PHP_INI_SYSTEM
html_errors | "1" | PHP_INI_ALL
xmlrpc_errors | "0" | PHP_INI_SYSTEM
xmlrpc_error_number | "0" | PHP_INI_ALL
ignore_user_abort | "0" | PHP_INI_ALL
implicit_flush | "0" | PHP_INI_ALL
log_errors | "0" | PHP_INI_ALL
log_errors_max_len | "1024" | PHP_INI_ALL
ignore_repeated_errors | "0" | PHP_INI_ALL
ignore_repeated_source | "0" | PHP_INI_ALL
magic_quotes_gpc | "1" | PHP_INI_PERDIR|PHP_INI_SYSTEM
magic_quotes_runtime | "0" | PHP_INI_ALL
magic_quotes_sybase | "0" | PHP_INI_ALL
output_buffering | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
output_handler | NULL | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv | "1" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_globals | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
safe_mode | "1" | PHP_INI_SYSTEM
safe_mode | "0" | PHP_INI_SYSTEM
safe_mode_include_dir | NULL | PHP_INI_SYSTEM
safe_mode_gid | "0" | PHP_INI_SYSTEM
short_open_tag | DEFAULT_SHORT_OPEN_TAG | PHP_INI_SYSTEM|PHP_INI_PERDIR
sql.safe_mode | "0" | PHP_INI_SYSTEM
track_errors | "0" | PHP_INI_ALL
y2k_compliance | "0" | PHP_INI_ALL
unserialize_callback_func | NULL | PHP_INI_ALL
arg_separator.output | "&" | PHP_INI_ALL
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file | NULL | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_prepend_file | NULL | PHP_INI_SYSTEM|PHP_INI_PERDIR
doc_root | NULL | PHP_INI_SYSTEM
default_charset | SAPI_DEFAULT_CHARSET | PHP_INI_ALL
default_mimetype | SAPI_DEFAULT_MIMETYPE | PHP_INI_ALL
error_log | NULL | PHP_INI_ALL
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
gpc_order | "GPC" | PHP_INI_ALL
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
max_execution_time | "30" | PHP_INI_ALL
open_basedir | NULL | PHP_INI_SYSTEM
safe_mode_exec_dir | "1" | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR
file_uploads | "1" | PHP_INI_SYSTEM
post_max_size | "8M" | PHP_INI_SYSTEM|PHP_INI_PERDIR
upload_tmp_dir | NULL | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
variables_order | NULL | PHP_INI_ALL
error_append_string | NULL | PHP_INI_ALL
error_prepend_string | NULL | PHP_INI_ALL
SMTP | "localhost" | PHP_INI_ALL
smtp_port | 25 | PHP_INI_ALL
browscap | NULL | PHP_INI_SYSTEM
error_reporting | NULL | PHP_INI_ALL
memory_limit | "8M" | PHP_INI_ALL
precision | "14" | PHP_INI_ALL
sendmail_from | NULL | PHP_INI_ALL
sendmail_path | DEFAULT_SENDMAIL_PATH | PHP_INI_SYSTEM
disable_classes | "" | php.ini only
disable_functions | "" | php.ini only
allow_url_fopen | "1" | PHP_INI_ALL
always_populate_raw_post_data | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
xbithack | "0" | PHP_INI_ALL
engine | "1" | PHP_INI_ALL
last_modified | "0" | PHP_INI_ALL
child_terminate | "0" | PHP_INI_ALL
async_send | "0" | PHP_INI_ALL

Tabelle 2. Definition of PHP_INI_* constants

Constant | Value | Meaning
PHP_INI_USER | 1 | Entry can be set in user scripts
PHP_INI_PERDIR | 2 | Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM | 4 | Entry can be set in php.ini or httpd.conf
PHP_INI_ALL | 7 | Entry can be set anywhere

See also: get_cfg_var(),
ini_get(),
ini_get_all(), and
ini_restore()

Zurück | Zum Anfang | Nach vorne
ini_restore | Nach oben | main


main

main -- Dummy for main()

Description

There is no function named main() except in the PHP source. In PHP 4.3.0, a new type of error handling in the PHP source (php_error_docref) was introduced. One feature is to provide links to a manual page in PHP error messages when the PHP directives html_errors (on by default) and docref_root (on by default until PHP 4.3.2) are set.

Sometimes error messages refer to a manual page for the function main() which is why this page exists. Please add a user comment below that mentions what PHP function caused the error that linked to main() and it will be fixed and properly documented.

Tabelle 1. Known errors that point to main()

Function name | No longer points here as of
include() | 4.3.2
include_once() | 4.3.2
require() | 4.3.2
require_once() | 4.3.2

See also html_errors and display_errors.

Zurück | Zum Anfang | Nach vorne
ini_set | Nach oben | memory_get_usage


memory_get_usage

(PHP 4 >= 4.3.2, PHP 5)

memory_get_usage -- Returns the amount of memory allocated to PHP

Description

int memory_get_usage ( void )

Returns the amount of memory, in bytes, that's currently being allocated to your PHP script.

memory_get_usage() will only be defined if your PHP is compiled with the --enable-memory-limit configuration option.

Beispiel 1. A memory_get_usage() example

<?php
// This is only an example, the numbers below will
// differ depending on your system

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hello", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

See also memory_limit.

Zurück | Zum Anfang | Nach vorne
main | Nach oben | php_ini_scanned_files


php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5)

php_ini_scanned_files -- Return a list of .ini files parsed from the additional ini dir

Description

string php_ini_scanned_files ( void )

php_ini_scanned_files() returns a comma-separated list of configuration files parsed after php.ini. These files are found in a directory defined by the --with-config-file-scan-dir. option which is set during compilation.

Returns a comma-separated string of .ini files on success. If the directive --with-config-files-scan-dir wasn't set, FALSE is returned. If it was set and the directory was empty, an empty string is returned. If a file is unrecognizable, the file will still make it into the returned string but a PHP error will also result. This PHP error will be seen both at compile time and while using php_ini_scanned_files().

The returned configuration files also include the path as declared in the --with-config-file-scan-dir directive. Also, each comma is followed by a newline.

Beispiel 1. A simple example to list the returned ini files

<?php
if ($filelist = php_ini_scanned_files()) {
    if (strlen($filelist) > 0) {
        $files = explode(',', $filelist);

        foreach ($files as $file) {
            echo "<li>" . trim($file) . "</li>\n";
        }
    }
}
?>

See also ini_set() and phpinfo().

Zurück | Zum Anfang | Nach vorne
memory_get_usage | Nach oben | php_logo_guid


php_logo_guid

(PHP 4 , PHP 5)

php_logo_guid -- Die logo-guid abfragen

Beschreibung

string php_logo_guid ( void )

Diese Funktion gibt die ID zurück, die genutzt werden kann, um das eingebaute PHP-Logo darzustellen.

Beispiel 1. php_logo_guid() Beispiel

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . php_logo_guid() . '" alt="PHP Logo !" />';

?>

Siehe auch
phpinfo(),
phpversion(),
phpcredits() und
zend_logo_guid().

Zurück | Zum Anfang | Nach vorne
php_ini_scanned_files | Nach oben | php_sapi_name


php_sapi_name

(PHP 4 >= 4.0.1, PHP 5)

php_sapi_name -- Zeigt die Schnittstelle zwischen Webserver und PHP an

Beschreibung

string php_sapi_name ( void )

php_sapi_name() zeigt die Schnittstelle zwischen Webserver und PHP (Server API, SAPI) als kleingeschriebene Zeichenkette an. Bei CGI PHP ist diese Zeichenkette "cgi", bei mod_php für Apache ist die Zeichenkette "apache" usw.

Beispiel 1. php_sapi_name() Beispiel

$inter_type = php_sapi_name();
if ($inter_type == "cgi")
    print "Sie benutzen CGI PHP\n";
else
    print "Sie benutzen nicht CGI PHP\n";

Zurück | Zum Anfang | Nach vorne
php_logo_guid | Nach oben | php_uname


php_uname

(PHP 4 >= 4.0.2, PHP 5)

php_uname -- Returns information about the operating system PHP was built on

Description

string php_uname ( void )

php_uname() returns a string with a description of the operating system PHP is built on. If you're just wanting the name of the operating system, consider using the PHP_OS constant.

Beispiel 1. Some php_uname() examples

<?php
echo php_uname();
echo PHP_OS;

/* Some possible outputs:
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux

FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD

Windows NT XN1 5.1 build 2600
WINNT
*/

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    echo 'This is a server using Windows!';
} else {
    echo 'This is a server not using Windows!';
}

?>

There are also some related Predefined PHP constants that may come in handy, for example:

Beispiel 2. A few OS related constant examples

<?php
// *nix
echo DIRECTORY_SEPARATOR; // /
echo PHP_SHLIB_SUFFIX;    // so
echo PATH_SEPARATOR;      // :

// Win*
echo DIRECTORY_SEPARATOR; // \
echo PHP_SHLIB_SUFFIX;    // dll
echo PATH_SEPARATOR;      // ;
?>

See also phpversion(),
php_sapi_name(), and
phpinfo().

Zurück | Zum Anfang | Nach vorne
php_sapi_name | Nach oben | phpcredits


phpcredits

(PHP 4 , PHP 5)

phpcredits -- Prints out the credits for PHP

Description

void phpcredits ( [int flag])

This function prints out the credits listing the PHP developers, modules, etc. It generates the appropriate HTML codes to insert the information in a page. flag is optional, and it defaults to CREDITS_ALL. To generate a custom credits page, you may want to use the flag parameter. For example to print the general credits, you will use somewhere in your code:

<?php
phpcredits(CREDITS_GENERAL);
?>

And if you want to print the core developers and the documentation group, in a page of its own, you will use:

<?php
phpcredits(CREDITS_GROUP + CREDITS_DOCS + CREDITS_FULLPAGE);
?>

And if you feel like embedding all the credits in your page, then code like the one below will do it:

<html>
<head>
  <title>My credits page</title>
</head>
<body>
<?php
// some code of your own
phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);
// some more code
?>
 </body>
</html>

Tabelle 1. Pre-defined phpcredits() flags

name | description
CREDITS_ALL | All the credits, equivalent to using: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. It generates a complete stand-alone HTML page with the appropriate tags.
CREDITS_DOCS | The credits for the documentation team
CREDITS_FULLPAGE | Usually used in combination with the other flags. Indicates that the a complete stand-alone HTML page needs to be printed including the information indicated by the other flags.
CREDITS_GENERAL | General credits: Language design and concept, PHP 4.0 authors and SAPI module.
CREDITS_GROUP | A list of the core developers
CREDITS_MODULES | A list of the extension modules for PHP, and their authors
CREDITS_SAPI | A list of the server API modules for PHP, and their authors

See also phpinfo(),
phpversion() and
php_logo_guid().

Zurück | Zum Anfang | Nach vorne
php_uname | Nach oben | phpinfo


phpinfo

(PHP 3, PHP 4 , PHP 5)

phpinfo -- Zeigt viele Informationen zu PHP

Beschreibung

int phpinfo ( void )

Zeigt eine grosse Anzahl von Informationen über die aktuelle Konfiguration von PHP an. Unter anderem die Optionen während der Kompilierens und die Erweiterungen, die PHP Version, Informationen über den Server, die Umgebung (wenn PHP als Modul kompiliert wurde), die PHP Umgebung, Version und Informationen zum Betriebssystem, Pfade, Haupt- and lokale Werte der Konfigurationsoptionen, HTTP Header, und die GNU Public License.

Siehe auch phpversion().

Zurück | Zum Anfang | Nach vorne
phpcredits | Nach oben | phpversion


phpversion

(PHP 3, PHP 4 , PHP 5)

phpversion -- Fragt die installierte PHP-Version ab

Beschreibung

string phpversion ( void )

Gibt einen String zurück, der die Version des installierten PHP-Parsers enthält.

Anmerkung: Diese Information ist auch in der vordefinierten Konstanten PHP_VERSION enthalten.

Beispiel 1. phpversion() Beispiel

<?php
// Gibt z.B. 'Aktuelle PHP-Version: 4.1.1' aus
echo 'Aktuelle PHP-Version: ' . phpversion();
?>

Siehe auch
version_compare(),
phpinfo(),
phpcredits(),
php_logo_guid(), und
zend_version().

Zurück | Zum Anfang | Nach vorne
phpinfo | Nach oben | putenv


putenv

(PHP 3, PHP 4 , PHP 5)

putenv -- Setzt den Wert einer Umgebungsvariablen.

Beschreibung

void putenv ( string setting)

Setzt setting als Umgebungsvariable.

Beispiel 1. Setzen einer Umgebungsvariablen

putenv ("UNIQID=$uniqid");

Zurück | Zum Anfang | Nach vorne
phpversion | Nach oben | restore_include_path


restore_include_path

(PHP 4 >= 4.3.0, PHP 5)

restore_include_path -- Restores the value of the include_path configuration option

Description

void restore_include_path ( void )

Restores the include_path configuration option back to its original master value as set in php.ini

Beispiel 1. restore_include_path() example

<?php

echo get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path();  // /inc

// Works as of PHP 4.3.0
restore_include_path();

// Works in all PHP versions
ini_restore('include_path');

echo get_include_path();  // .:/usr/local/lib/php

?>

See also ini_restore(),
set_include_path(),
get_include_path(), and
include().

Zurück | Zum Anfang | Nach vorne
putenv | Nach oben | set_include_path


set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_path -- Sets the include_path configuration option

Description

string set_include_path ( string new_include_path)

Sets the include_path configuration option for the duration of the script. Returns the old include_path on success or FALSE on failure.

Beispiel 1. set_include_path() example

<?php
// Works as of PHP 4.3.0
set_include_path('/inc');

// Works in all PHP versions
ini_set('include_path', '/inc');
?>

See also ini_set(),
get_include_path(),
restore_include_path(), and
include().

Zurück | Zum Anfang | Nach vorne
restore_include_path | Nach oben | set_magic_quotes_runtime


set_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

set_magic_quotes_runtime -- Setzt magic_quotes_runtime

Beschreibung

long set_magic_quotes_runtime ( int new_setting)

Setzt magic_quotes_runtime. (0 für aus, 1 für an).

Siehe auch get_magic_quotes_gpc() und get_magic_quotes_runtime().

Zurück | Zum Anfang | Nach vorne
set_include_path | Nach oben | set_time_limit


set_time_limit

(PHP 3, PHP 4 , PHP 5)

set_time_limit -- Setzt die maximale Ausführungszeit

Beschreibung

void set_time_limit ( int seconds)

Legt die Zeit in Sekunden fest, die ein Script laufen darf. Ist diese Zeit abgelaufen, wird ein Fehler zurückgegeben. Der Standard liegt bei 30 Sekunden, es sei denn, max_execution_time ist configuration file eingetragen. Bei einer Einstellung von 0 Sekunden ist die maximale Ausführungszeit nicht begrenzt.

Wenn set_time_limit() aufgerufen wird, dann startet der Zähler neu. Das heisst, wenn die Standardeinstellung 30 Sekunden beträgt und nach 25 Sekunden durch ein Script ein Aufruf wie z.B. set_time_limit(20) erfolgt, darf das Script insgesamt 45 Sekunden laufen, bevor eine Fehlermeldung ausgegeben wird.

Achtung: Wenn PHP im Safemode läuft, hat set_time_limit() keinen Effekt. Die einzige Möglichkeit, dies zu umgehen, ist den Safemode im configuration file auszuschalten.

Zurück | Zum Anfang | Nach vorne
set_magic_quotes_runtime | Nach oben | version_compare


version_compare

(PHP 4 >= 4.1.0, PHP 5)

version_compare -- Compares two "PHP-standardized" version number strings

Description

int version_compare ( string version1, string version2 [, string operator])

version_compare() compares two "PHP-standardized" version number strings. This is useful if you would like to write programs working only on some versions of PHP.

version_compare() returns -1 if the first version is lower than the second, 0 if they are equal, and +1 if the second is lower.

The function first replaces _, - and + with a dot . in the version strings and also inserts dots . before and after any non number so that for example '4.3.2RC1' becomes '4.3.2.RC.1'. Then it splits the results like if you were using explode('.', $ver). Then it compares the parts starting from left to right. If a part contains special version strings these are handled in the following order: dev < alpha = a < beta = b < RC < pl. This way not only versions with different levels like '4.1' and '4.1.2' can be compared but also any PHP specific version containing development state.

If you specify the third optional operator argument, you can test for a particular relationship. The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively. Using this argument, the function will return 1 if the relationship is the one specified by the operator, 0 otherwise.

Beispiel 1. version_compare() example

<?php
// prints -1
echo version_compare("4.0.4", "4.0.6");

// these all print 1
echo version_compare("4.0.4", "4.0.6", "<");
echo version_compare("4.0.6", "4.0.6", "eq");
?>

Zurück | Zum Anfang | Nach vorne
set_time_limit | Nach oben | zend_logo_guid


zend_logo_guid

(PHP 4 , PHP 5)

zend_logo_guid -- Zeigt die Zend guid

Beschreibung

string zend_logo_guid ( void )

Anmerkung: Diese Funktion wurde mit Version PHP4 Beta 4 eingeführt.

Zurück | Zum Anfang | Nach vorne
version_compare | Nach oben | zend_version


zend_version

(PHP 4 , PHP 5)

zend_version -- Zeigt die aktuelle Zend engine Version

Beschreibung:

string zend_version ( void )

Zeigt die aktuelle Version des momentan laufendem PHP-Parsers.

Beispiel 1. zend_version()Beispiel

// Ausgabe z.b. 'Die Aktuelle Zend engine Version ist: 1.0.4'
echo "Die Aktuelle Zend engine Version ist: ".zend_version()."";

Siehe auch phpinfo(),
phpcredits(),
php_logo_guid(), und
phpversion().

Zurück | Zum Anfang | Nach vorne
zend_logo_guid | Nach oben | POSIX Funktionen


POSIX Funktionen

PHP Handbuch
Zurück Nach vorne

LXXXIII. POSIX Funktionen

Einführung

Dieses Modul enthält eine Schnittstelle zu den im IEEE 1003.1 (POSIX.1) Standards Dokument definierten Funktionen, die durch andere Mittel nicht erreichbar sind. POSIX.1 definierte zum Beispiel auch die open(), read(), write() und close() Funktionen, die seit langer Zeit Bestandteil von PHP 3 sind. Trotzdem standen einige andere systemspezifische Funktionen bisher nicht zur Verfügung. Dieses Modul versucht hier Abhilfe zu schaffen, indem es einen einfachen Zugang zu diesen Funktionen bereitstellt.

Warnung

Sensible Daten können mit den POSIX-Funktionen, z.B. posix_getpwnam() und Freunde, abgefragt werden. Die POSIX-Funktionen führen keinerlei Zugriffsüberprüfungen durch, wenn safe mode aktiviert ist. Es wird daher stark empfohlen, die POSIX-Erweiterung komplett zu deaktivieren (verwenden Sie dazu bei der Konfiguration --disable-posix), wenn Sie in einer solchen Umgebung arbeiten.

Anmerkung: This extension is not available on Windows platforms.

Installation

Die POSIX-Funktionen stehen standardmäßig zur Verfügung. Sie können sie mit der Option --disable-posix deaktivieren.

Siehe auch

Der Abschnitt über Prozesskontroll-Funktionen könnte für Sie von Interesse sein.

Inhaltsverzeichnis
posix_ctermid -- Liefert den Pfad des maßgebenden Terminals
posix_get_last_error -- Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer
posix_getcwd -- Pfadname des aktuellen Verzeichnisses
posix_getegid -- Liefert die effektive Gruppen-ID des aktuellen Prozesses
posix_geteuid -- Liefert die effektive Benutzer-ID des aktuellen Prozesses
posix_getgid -- Liefert die reale Gruppen-ID des aktuellen Prozesses
posix_getgrgid -- Liefert zu einer Gruppen-ID Informationen über diese Gruppe
posix_getgrnam -- Liefert zu einem Gruppennamen Informationen über diese Gruppe
posix_getgroups -- Liefert die Gruppenliste des aktuellen Prozesses
posix_getlogin -- Liefert den Benutzernamen des Eigentümers des aktuellen Prozesses
posix_getpgid -- Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
posix_getpgrp -- Liefert die Prozessgruppenkennung des aktuellen Prozesses
posix_getpid -- Liefert die aktuelle Prozesskennung
posix_getppid -- Liefert die Prozesskennung des Elternprozesses
posix_getpwnam -- Liefert zu einem Benutzernamen Informationen über diese Benutzerin
posix_getpwuid -- Liefert zu einer Benutzer-ID Informationen über diese Benutzerin
posix_getrlimit -- Liefert Informationen über Systemressourcen-Limits
posix_getsid -- Liefert die aktuelle Session-ID (sid) des Prozesses
posix_getuid -- Liefert die reale Benutzer-ID des aktuellen Prozesses
posix_isatty -- Ermittelt, ob ein Datei-Deskriptor ein interaktives Terminal ist
posix_kill -- Sendet einem Prozess ein Signal
posix_mkfifo -- Erzeugt eine "FIFO special"-Datei (named pipe)
posix_setegid -- Setzt die effektive Gruppen-ID des aktuellen Prozesses
posix_seteuid -- Setzt die effektive Benutzer-ID des aktuellen Prozesses
posix_setgid -- Setzt die Gruppen-ID des aktuellen Prozesses
posix_setpgid -- Setzt die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
posix_setsid -- Macht den aktuellen Prozess zum Prozessgruppen-Führer
posix_setuid -- Setzt die Benutzer-ID des aktuellen Prozesses
posix_strerror -- Liefert die System-Fehlermeldung, die zur angegebenen errno gehört
posix_times -- Liefert Rechenzeiten
posix_ttyname -- Ermittelt den Namen des Terminal-Devices
posix_uname -- Liefert Auskunft über das System

Zurück | Zum Anfang | Nach vorne
zend_version | Nach oben | posix_ctermid


posix_ctermid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_ctermid -- Liefert den Pfad des maßgebenden Terminals

Beschreibung

string posix_ctermid ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
POSIX Funktionen | Nach oben | posix_get_last_error


posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5)

posix_get_last_error -- Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer

Beschreibung

int posix_get_last_error ( void )

Diese Funktion gibt die errno (Fehlernummer) zurück, die von der letzten fehlgeschlagenen Posix-Funktion gesetzt wurde. Falls keine Fehler aufgetreten sind, wird 0 zurückgegeben. Verwenden Sie posix_strerror(), wenn Sie die Systemmeldung haben wollen, die zu errno gehört.

Siehe auch: posix_strerror().

Zurück | Zum Anfang | Nach vorne
posix_ctermid | Nach oben | posix_getcwd


posix_getcwd

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getcwd -- Pfadname des aktuellen Verzeichnisses

Beschreibung

string posix_getcwd ( void )

Die Funktion posix_getcwd() gibt den absoluten Pfadnamen des aktuellen Arbeitsverzeichnisses des Scripts und FALSE bei Auftreten eines Fehlers zurück.

Zurück | Zum Anfang | Nach vorne
posix_get_last_error | Nach oben | posix_getegid


posix_getegid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getegid -- Liefert die effektive Gruppen-ID des aktuellen Prozesses

Beschreibung

int posix_getegid ( void )

Diese Funktion gibt die effektive numerische Gruppen-ID des aktuellen Prozesses zurück.

Für Informationen darüber, wie die Gruppen-ID in einen gebräuchlichen Gruppennamen umgewandelt werden kann, siehe auch posix_getgrgid().

Zurück | Zum Anfang | Nach vorne
posix_getcwd | Nach oben | posix_geteuid


posix_geteuid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_geteuid -- Liefert die effektive Benutzer-ID des aktuellen Prozesses

Beschreibung

int posix_geteuid ( void )

Diese Funktion gibt die effektive numerische Benutzer-ID des aktuellen Prozesses zurück.

Für Informationen darüber, wie die Benutzer-ID in einen gebräuchlichen Benutzernamen umgewandelt werden kann, siehe auch posix_getpwuid().

Zurück | Zum Anfang | Nach vorne
posix_getegid | Nach oben | posix_getgid


posix_getgid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getgid -- Liefert die reale Gruppen-ID des aktuellen Prozesses

Beschreibung

int posix_getgid ( void )

Diese Funktion gibt die reale numerische Gruppen-ID des aktuellen Prozesses zurück.

Für Informationen darüber, wie die Gruppen-ID in einen gebräuchlichen Gruppennamen umgewandelt werden kann, siehe auch posix_getgrgid().

Zurück | Zum Anfang | Nach vorne
posix_geteuid | Nach oben | posix_getgrgid


posix_getgrgid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getgrgid -- Liefert zu einer Gruppen-ID Informationen über diese Gruppe

Beschreibung

array posix_getgrgid ( int gid)

Diese Funktion gibt ein Array mit Informationen über eine Gruppe zurück oder FALSE beim Autreten eines Fehlers. Falls gid keine Zahl ist, gibt sie NULL zurück und erzeugt einen E_WARNING-Fehler.

Beispiel 1. Beispiel zur Verwendung von posix_getgrgid()

<?php

$gruppenid   = posix_getegid();
$gruppeninfo = posix_getgrgid($gruppenid);

print_r($gruppeninfo);

?>

Eine Beispielausgabe:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Anmerkung: Seit PHP 4.2.0 wird members als Array der Benutzernamen der Gruppenmitglieder zurückgegeben. Davor war es nur eine ganze Zahl (die Anzahl der Gruppenmitglieder) und die Namen der Mitglieder wurden mit numerischen Indizes zurückgegeben.

Siehe auch: posix_getegid(),
filegroup(),
stat() und
safe_mode_gid.

Zurück | Zum Anfang | Nach vorne
posix_getgid | Nach oben | posix_getgrnam


posix_getgrnam

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getgrnam -- Liefert zu einem Gruppennamen Informationen über diese Gruppe

Beschreibung

array posix_getgrnam ( string Gruppenname)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
posix_getgrgid | Nach oben | posix_getgroups


posix_getgroups

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getgroups -- Liefert die Gruppenliste des aktuellen Prozesses

Beschreibung

array posix_getgroups ( void )

Diese Funktion gibt ein Array von ganzen Zahlen zurück, das die numerischen Gruppen-IDs der Gruppenliste des aktuellen Prozesses enthält.

Für Informationen darüber, wie die Gruppen-IDs in gebräuchliche Gruppennamen umgewandelt werden können, siehe auch posix_getgrgid().

Zurück | Zum Anfang | Nach vorne
posix_getgrnam | Nach oben | posix_getlogin


posix_getlogin

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getlogin -- Liefert den Benutzernamen des Eigentümers des aktuellen Prozesses

Beschreibung

string posix_getlogin ( void )

Diese Funktion gibt den Benutzernamen des Benutzers zurück, dem der aktuelle Prozess gehört.

Für Informationen darüber, wie mehr Informationen über diesen Benutzer bekommen werden können, siehe posix_getpwnam().

Zurück | Zum Anfang | Nach vorne
posix_getgroups | Nach oben | posix_getpgid


posix_getpgid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getpgid -- Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle

Beschreibung

int posix_getpgid ( int pid)

Diese Funktion gibt die Prozessgruppenkennung des Prozzesses pid zurück.

Dies ist keine POSIX-Funktion, ist aber auf BSD- und System V-Systemen gängig. Falls Ihr System diese Funktion nicht auf der Systemebene unterstützt, gibt diese PHP-Funktion immer FALSE zurück.

Zurück | Zum Anfang | Nach vorne
posix_getlogin | Nach oben | posix_getpgrp


posix_getpgrp

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getpgrp -- Liefert die Prozessgruppenkennung des aktuellen Prozesses

Beschreibung

int posix_getpgrp ( void )

Diese Funktion gibt die Prozessgruppenkennung des aktuellen Prozesses zurück. Sehen Sie sich dazu POSIX.1 und die getpgrp(2)-Manpage auf Ihrem POSIX-System an, um mehr Informationen über Prozessgruppen zu erhalten.

Zurück | Zum Anfang | Nach vorne
posix_getpgid | Nach oben | posix_getpid


posix_getpid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getpid -- Liefert die aktuelle Prozesskennung

Beschreibung

int posix_getpid ( void )

Diese Funktion gibt die Prozesskennung des aktuellen Prozesses zurück.

Zurück | Zum Anfang | Nach vorne
posix_getpgrp | Nach oben | posix_getppid


posix_getppid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getppid -- Liefert die Prozesskennung des Elternprozesses

Beschreibung

int posix_getppid ( void )

Diese Funktion gibt die Prozesskennung des Elternprozesses des aktuellen Prozesses zurück.

Zurück | Zum Anfang | Nach vorne
posix_getpid | Nach oben | posix_getpwnam


posix_getpwnam

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getpwnam -- Liefert zu einem Benutzernamen Informationen über diese Benutzerin

Beschreibung

array posix_getpwnam ( string Benutzername)

Diese Funktion gibt ein assoziatives Array zurück, das Informationen über die Benutzerin enthält, auf die der in Benutzername übergebene alphanumerische Benutzername verweist.

Die Elemente des zurückgegebenen Array sind:

Tabelle 1. Das Benutzerinformation-Array

Element | Beschreibung
name | Das name-Element enthält den Benutzernamen. Es handelt sich dabei nicht um ihren wirklichen, kompletten Namen, sondern um einen kurzen "Bezeichner" der Benutzerin mit normalerweise weniger als 16 Zeichen. Der Benutzername sollte der selbe wie der bei Aufruf der Funktion verwendete Parameter Benutzername sein und ist von daher redundant.
passwd | Das passwd-Element enthält das verschlüsselte Passwort der Benutzerin. Oft, zum Beispiel wenn auf einem System "shadow"-Passwörter verwendet werden, wird stattdessen ein Sternchen zurückgegeben.
uid | Die Benutzer-ID in numerischem Format.
gid | Die Gruppen-ID der Benutzerin. Benutzen Sie die Funktion posix_getgrgid(), um den Gruppennamen und eine Liste der Gruppenmitglieder aufzulösen.
gecos | GECOS ist ein veralteter Begriff, der sich auf das finger-Informationsfeld auf einem Honeywell Stapelverarbeitungssystem bezieht. Das Feld gibt es aber immer noch und sein Inhalt wurde durch POSIX formalisiert. Es enthält eine durch Komma getrennte Liste, bestehend aus dem kompletten Namen der Benutzerin, der Telefonnummer des Büros, der Zimmernummer des Büros und der privaten Telefonnummer. Auf den meisten Systemen ist nur der komplette Name der Benutzerin verfügbar.
dir | Dieses Element enthält den absoluten Pfad des Homeverzeichnisses der Benutzerin.
shell | Das shell-Element enthält den absoluten Pfad zur standardmäßigen Shell der Benutzerin.

Zurück | Zum Anfang | Nach vorne
posix_getppid | Nach oben | posix_getpwuid


posix_getpwuid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getpwuid -- Liefert zu einer Benutzer-ID Informationen über diese Benutzerin

Beschreibung

array posix_getpwuid ( int uid)

Diese Funktion gibt ein assoziatives Array zurück, das Informationen über die Benutzerin enthält, auf die die in uid übergebene numerische Benutzer-ID verweist.

Die Elemente des zurückgegebenen Array sind:

Tabelle 1. Das Benutzerinformation-Array

Element | Beschreibung
name | Das name-Element enthält den Benutzernamen. Es handelt sich dabei nicht um ihren wirklichen, kompletten Namen, sondern um einen kurzen "Bezeichner" der Benutzerin mit normalerweise weniger als 16 Zeichen.
passwd | Das passwd-Element enthält das verschlüsselte Passwort der Benutzerin. Oft, zum Beispiel wenn auf einem System "shadow"-Passwörter verwendet werden, wird stattdessen ein Sternchen zurückgegeben.
uid | Die Benutzer-ID sollte die selbe wie der Parameter uid sein und ist von daher redundant.
gid | Die Gruppen-ID der Benutzerin. Benutzen Sie die Funktion posix_getgrgid(), um den Gruppennamen und eine Liste der Gruppenmitglieder aufzulösen.
gecos | GECOS ist ein veralteter Begriff, der sich auf das finger-Informationsfeld auf einem Honeywell Stapelverarbeitungssystem bezieht. Das Feld gibt es aber immer noch und sein Inhalt wurde durch POSIX formalisiert. Es enthält eine durch Komma getrennte Liste, bestehend aus dem kompletten Namen der Benutzerin, der Telefonnummer des Büros, der Zimmernummer des Büros und der privaten Telefonnummer. Auf den meisten Systemen ist nur der komplette Name der Benutzerin verfügbar.
dir | Dieses Element enthält den absoluten Pfad des Homeverzeichnisses der Benutzerin.
shell | Das shell-Element enthält den absoluten Pfad zur standardmäßigen Shell der Benutzerin.

Zurück | Zum Anfang | Nach vorne
posix_getpwnam | Nach oben | posix_getrlimit


posix_getrlimit

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getrlimit -- Liefert Informationen über Systemressourcen-Limits

Beschreibung

array posix_getrlimit ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
posix_getpwuid | Nach oben | posix_getsid


posix_getsid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getsid -- Liefert die aktuelle Session-ID (sid) des Prozesses

Beschreibung

int posix_getsid ( int pid)

Diese Funktion gibt die Session-ID des Prozesses pid zurück. Falls pid 0 ist, wird die Session-ID des aktuellen Prozesses zurückgegeben.

Dies ist keine POSIX-Funktion, ist aber auf BSD- und System V-Systemen gängig. Falls Ihr System diese Funktion nicht auf der Systemebene unterstützt, gibt diese PHP-Funktion immer FALSE zurück.

Zurück | Zum Anfang | Nach vorne
posix_getrlimit | Nach oben | posix_getuid


posix_getuid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getuid -- Liefert die reale Benutzer-ID des aktuellen Prozesses

Beschreibung

int posix_getuid ( void )

Diese Funktion gibt die reale numerische Benutzer-ID des aktuellen Prozesses zurück.

Für Informationen darüber, wie die Benutzer-ID in einen gebräuchlichen Benutzernamen umgewandelt werden kann, siehe auch posix_getpwuid().

Zurück | Zum Anfang | Nach vorne
posix_getsid | Nach oben | posix_isatty


posix_isatty

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_isatty -- Ermittelt, ob ein Datei-Deskriptor ein interaktives Terminal ist

Beschreibung

bool posix_isatty ( int fd)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
posix_getuid | Nach oben | posix_kill


posix_kill

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_kill -- Sendet einem Prozess ein Signal

Description

bool posix_kill ( int pid, int sig)

Diese Funktion sendet das Signal sig zum Prozess mit der Prozesskennung (Prozess-ID) pid. Sie gibt FALSE zurück, wenn sie das Signal nicht senden konnte, andernfalls TRUE.

Sehen Sie sich dazu auch die kill(2)-Manpage Ihres POSIX-Systems an, die zusätzliche Informationen über negative Prozess-IDs, die speziellen pid 0 und -1 und die Signalnummer 0 enthält.

Zurück | Zum Anfang | Nach vorne
posix_isatty | Nach oben | posix_mkfifo


posix_mkfifo

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_mkfifo -- Erzeugt eine "FIFO special"-Datei (named pipe)

Beschreibung

bool posix_mkfifo ( string Pfadname, int Modus)

posix_mkfifo() erzeugt eine spezielle FIFO-Datei, die im Dateisystem existiert und als bidirektionaler Kommunikationsendpunkt für Prozesse agiert.

Der zweite Parameter, mode, muss in oktaler Schreibweise angegeben werden (z.B. 0644). Die Zugriffsberechtigungen des neu erzeugten FIFO hängen auch von der Einstellung der aktuellen umask() ab. Die Zugriffsberechtigungen der erzeugten Datei sind (mode & ~umask).

Anmerkung: Wenn Safe Mode aktiviert ist, überprüft PHP ob das Verzeichnis in dem das Skript ausgeführt werden soll, die gleiche UID hat wie das Skript selbst.

Zurück | Zum Anfang | Nach vorne
posix_kill | Nach oben | posix_setegid


posix_setegid

(PHP 4 >= 4.0.2, PHP 5)

posix_setegid -- Setzt die effektive Gruppen-ID des aktuellen Prozesses

Beschreibung

bool posix_setegid ( int gid)

Diese Funktion setzt die effektive Gruppen-ID des aktuellen Prozesses. Es handelt sich um eine privilegierte Funktion, für die Sie die entspechenden Berechtigungen (normalerweise root) auf Ihrem System benötigen, um diese Funktion ausführen zu können.

Gibt bei Erfolg TRUE und andernfalls FALSE zurück.

Zurück | Zum Anfang | Nach vorne
posix_mkfifo | Nach oben | posix_seteuid


posix_seteuid

(PHP 4 >= 4.0.2, PHP 5)

posix_seteuid -- Setzt die effektive Benutzer-ID des aktuellen Prozesses

Beschreibung

bool posix_seteuid ( int uid)

Diese Funktion setzt die effektive Benutzer-ID uid des aktuellen Prozesses. Es handelt sich um eine privilegierte Funktion, für die Sie die entspechenden Berechtigungen (normalerweise root) auf Ihrem System benötigen, um diese Funktion ausführen zu können.

Gibt bei Erfolg TRUE und andernfalls FALSE zurück.

Siehe auch: posix_setgid().

Zurück | Zum Anfang | Nach vorne
posix_setegid | Nach oben | posix_setgid


posix_setgid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setgid -- Setzt die Gruppen-ID des aktuellen Prozesses

Beschreibung

bool posix_setgid ( int gid)

Diese Funktion setzt die reale Gruppen-ID gid des aktuellen Prozesses. Es handelt sich um eine privilegierte Funktion, für die Sie die entspechenden Berechtigungen (normalerweise root) auf Ihrem System benötigen, um diese Funktion ausführen zu können. Die sachgemäße Reihenfolge der Funktionsaufrufe ist zuerst posix_setgid() und zuletzt posix_setuid().

Gibt bei Erfolg TRUE und andernfalls FALSE zurück.

Zurück | Zum Anfang | Nach vorne
posix_seteuid | Nach oben | posix_setpgid


posix_setpgid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setpgid -- Setzt die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle

Beschreibung

int posix_setpgid ( int pid, int pgid)

Diese Funktion fügt den Prozess pid der Prozessgruppe pgid hinzu. Sehen Sie sich dazu POSIX.1 und die setpgid(2)-Manpage auf Ihrem POSIX-System an, um mehr Informationen über Prozessgruppen und Job-Kontrolle zu erhalten.

Gibt bei Erfolg TRUE und andernfalls FALSE zurück.

Zurück | Zum Anfang | Nach vorne
posix_setgid | Nach oben | posix_setsid


posix_setsid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setsid -- Macht den aktuellen Prozess zum Prozessgruppen-Führer

Beschreibung

int posix_setsid ( void )

Diese Funktion macht den aktuellen Prozess zum Prozessgruppen-Führer. Sehen Sie sich dazu POSIX.1 und die setsid(2)-Manpage auf Ihrem POSIX-System an, um mehr Informationen über Prozessgruppen und Job-Kontrolle zu erhalten.

Gibt die Session-ID zurück.

Zurück | Zum Anfang | Nach vorne
posix_setpgid | Nach oben | posix_setuid


posix_setuid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setuid -- Setzt die Benutzer-ID des aktuellen Prozesses

Beschreibung

bool posix_setuid ( int uid)

Diese Funktion setzt die reale Benutzer-ID uid des aktuellen Prozesses. Es handelt sich um eine privilegierte Funktion, für die Sie die entspechenden Berechtigungen (normalerweise root) auf Ihrem System benötigen, um diese Funktion ausführen zu können.

Gibt bei Erfolg TRUE und andernfalls FALSE zurück.

Siehe auch: posix_setgid().

Zurück | Zum Anfang | Nach vorne
posix_setsid | Nach oben | posix_strerror


posix_strerror

(PHP 4 >= 4.2.0, PHP 5)

posix_strerror -- Liefert die System-Fehlermeldung, die zur angegebenen errno gehört

Beschreibung

string posix_strerror ( int errno)

Diese Funktion gibt die POSIX System-Fehlermeldung zurück, die zur angegebenen errno gehört. Falls errno 0 ist, wird die Zeichenkette "Success" zurückgegeben. Die Funktion posix_get_last_error() wird verwendet, um die letzte POSIX errno zu bekommen

Siehe auch: posix_get_last_error().

Zurück | Zum Anfang | Nach vorne
posix_setuid | Nach oben | posix_times


posix_times

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_times -- Liefert Rechenzeiten

Beschreibung

array posix_times ( void )

Diese Funktion gibt eine Reihe von Zahlenwerten mit Informationen über die Auslastung der CPU durch den aktuellen Prozess zurück. Die Indizes dieser Zahlenwerte sind

  • ticks - die Anzahl von Clock-Ticks, die seit dem Reboot verstrichen sind.

  • utime - Benutzerzeit, die vom aktuellen Prozess verbraucht wurde.

  • stime - Systemzeit, die vom aktuellen Prozess verbraucht wurde.

  • cutime - Benutzerzeit, die vom aktuellen Prozess und dessen Kindprozessen verbraucht wurde.

  • cstime - Systemzeit, die vom aktuellen Prozess und dessen Kindprozessen verbraucht wurde.

Zurück | Zum Anfang | Nach vorne
posix_strerror | Nach oben | posix_ttyname


posix_ttyname

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_ttyname -- Ermittelt den Namen des Terminal-Devices

Beschreibung

string posix_ttyname ( int fd)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
posix_times | Nach oben | posix_uname


posix_uname

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_uname -- Liefert Auskunft über das System

Beschreibung

array posix_uname ( void )

Diese Funktion gibt eine Reihe von Daten mit Informationen über das System zurück. Die Indizes dieser Daten sind

  • sysname - Name des Betriebssystems (z.B. Linux)

  • nodename - Name des Systems (z.B. valiant)

  • release - Release des Betriebssystems (z.B. 2.2.10)

  • version - Version des Betriebssystems (z.B. #4 Tue Jul 20 17:01:36 MEST 1999)

  • machine - Systemarchitektur (z.B. i586)

  • domainname - DNS Domainname (z.B. php.net)

domainname ist eine GNU-Erweiterung und nicht Teil von POSIX.1. Deshalb steht dieses Feld nur auf GNU-Systemen oder bei Verwendung der GNU libc zur Verfügung.

Posix erfordert, dass Sie bezüglich des Formats der Werte nichts voraussetzen dürfen, z.B. können Sie sich weder darauf verlassen, dass die Release-Nummer aus drei Ziffern besteht noch auf irgendetwas anderes, das von dieser Funktion zurückgegeben wird.

Zurück | Zum Anfang | Nach vorne
posix_ttyname | Nach oben | PostgreSQL Funktionen


PostgreSQL Funktionen

PHP Handbuch
Zurück Nach vorne

LXXXIV. PostgreSQL Funktionen

Einführung

PostgreSQL ist ein kostenloses Open Source Datenbanksystem. Es wurde ursprünglich im UC Berkeley Computer Science Department entwickelt und hat Pionierarbeit bei objektrelationalen Datenbankkonzepten geleistet, die jetzt Einzug in einige kommerzielle Datenbanken halten. PostgreSQL bietet SQL92/SQL99 Sprachunterstützung, Transaktionen, referentielle Integrität, benutzerdefinierte Funktionen und ein erweiterbares Typkonzept. PostgreSQL ist eine Weiterentwicklung des ursprünglichen Berkeley-Codes.

Anforderungen

Um PostgreSQL benutzen zu können, brauchen Sie mindestens eine Version 6.5 oder später, um alle Leistungsmerkmale des PostgreSQL-Moduls nutzen zu können, müssen Sie eine Version ab 7.0 haben. PostgreSQL unterstützt viele Zeichencodierungen, einschließlich multibyte character encoding. Die aktuelle Version sowie weitere Informationen über PostgreSQL sind auf den Seiten http://www.postgresql.org/ und http://techdocs.postgresql.org/ erhältlich.

Installation

Um die PostgreSQL-Unterstützung zu aktivieren müssen Sie PHP mit der Option --with-pgsql[=DIR] kompilieren. DIR ist das Basis Installationsverzeichnis von PostgreSQL, normalerweise /usr/local/pgsql. Falls das shared-object-Modul verfügbar ist, kann PostgreSQL mit der extension-Directive in php.ini oder der Funktion dl() geladen werden.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. PostgreSQL Konfigurationsoptionen

Name | Standard | Änderbar
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM
pgsql.max_links | "-1" | PHP_INI_SYSTEM
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM
pgsql.ignore_notice | "0" | PHP_INI_ALL
pgsql.log_notice | "0" | PHP_INI_ALL
Für weitere Details und Definitionen der PHP_INI_* Konstanten wird auf ini_set() verwiesen.

Hier sind kurze Erläuterungen zu den Konfigurationsdirektiven:

pgsql.allow_persistent boolean

Bestimmt, ob persistente PostgreSQL-Verbindungen zulässig sind.

pgsql.max_persistent integer

Legt die maximale Anzahl persistenter PostgreSQL-Verbindungen pro Prozess fest.

pgsql.max_links integer

Legt Die maximale Anzahl aller PostgreSQL-Verbindungen, einschliesslich der persistenten Verbindungen, pro Prozess fest.

Hinweise

Warnung

Wegen eines Bugs in der Behandlung von NOTICE-Benachrichtigungen sollte das PostgreSQL-Modul der PHP Version 4.0.6 nicht benutzt werden. Bitte benutzen Sie PHP 4.1.0 oder höher.

Warnung

Die Namen der PostgreSQL-Funktionen wurden ab der PHP Version 4.2.0 geändert, um sie an die gültigen Coding-Standards anzupassen. Die meisten neuen Namen enthalten zusätzliche Unterstriche, z.B. pg_lo_open(). Einige Funktionen wurden der Einheitlichkeit wegen umbenannt, z.B. pg_exec() zu pg_query(). Die älteren Namen können in der Version 4.2.0 und auch ein paar Releases danach noch verwendet werden, aber sie werden irgendwann gelöscht.

Tabelle 2. Die geänderten Funktionsnamen

Alter Name | Neuer Name
pg_exec() | pg_query()
pg_getlastoid() | pg_last_oid()
pg_cmdtuples() | pg_affected_rows()
pg_numrows() | pg_num_rows()
pg_numfields() | pg_num_fields()
pg_fieldname() | pg_field_name()
pg_fieldsize() | pg_field_size()
pg_fieldnum() | pg_field_num()
pg_fieldprtlen() | pg_field_prtlen()
pg_fieldisnull() | pg_field_is_null()
pg_freeresult() | pg_free_result()
pg_result() | pg_fetch_result()
pg_loreadall() | pg_lo_read_all()
pg_locreate() | pg_lo_create()
pg_lounlink() | pg_lo_unlink()
pg_loopen() | pg_lo_openk()
pg_loclose() | pg_lo_close()
pg_loread() | pg_lo_read()
pg_lowrite() | pg_lo_write()
pg_loimport() | pg_lo_import()
pg_loexport() | pg_lo_export()

Die veraltete Syntax von pg_connect() und pg_pconnect() wird ungültig werden, um zukünftig asynchrone Verbindungen zu unterstützen. Bitte benutzen Sie einen Verbindungsstring mit pg_connect() bzw. pg_pconnect().

Nicht alle Funktionen sind in allen Versionen verfügbar. Es hängt davon ab, welche libpq Version (das PostgreSQL C Client Interface) auf Ihrem Rechner verfügbar ist und wie libpq kompiliert wurde. Falls eine Funktion nicht verfügbar ist, liegt es daran, dass libpq die nötigen Routinen nicht unterstützt, die die Funktion braucht.

Es ist außerdem wichtig, dass Ihre libpq nicht älter ist, als der PostgreSQL-Server, zu dem Sie eine Verbindung aufbauen. Wenn Sie eine libpq benutzen, die älter ist, als vom PostgreSQL-Server erwartet, werden Sie wahrscheinlich Probleme haben.

Seit Version 6.3 (03/02/1998) benutzt PostgreSQL per Voreinstellung Unix Domain Sockets. Ein TCP/IP Port wird NICHT standardmäßig geöffnet. In der untenstehenden Tabelle werden diese neuen Verbindungsmöglichkeiten gezeigt. Der Socket ist in /tmp/.s.PGSQL.5432 zu finden. Der Schalter -i, der dem postmaster mitgegeben werden kann, weist diesen an, sowohl über TCP/IP Sockets als auch über UNIX Domain Sockets eine Verbindung aufzubauen.

Tabelle 3. Der Postmaster und PHP

Postmaster | PHP | Status
postmaster & | pg_connect("dbname=MyDbName"); | OK
postmaster -i & | pg_connect("dbname=MyDbName"); | OK
postmaster & | pg_connect("host=localhost dbname=MyDbName"); | Unable to connect to PostgreSQL server: connectDB() failed: Is the postmaster running and accepting TCP/IP (with -i) connection at 'localhost' on port '5432'? in /pfad/zu/datei.php on line 20.
postmaster -i & | pg_connect("host=localhost dbname=MyDbName"); | OK

Eine Verbindung zu einem PostgreSQL-Server lässt sich auch mit den folgenden Wertepaaren, die im Verbindungsstring gesetzt werden, herstellen (wobei mindestens der Name der Datenbank angegeben sein muss): $conn = pg_connect("host=myHost port=myPort tty=myTTY options=myOptions dbname=myDB user=myUser password=myPassword ");

Die bisherige Syntax $conn = pg_connect ("host", "port", "options", "tty", "dbname") ist veraltet und sollte nicht weiter verwendet werden.

Umgebungsvariablen beeinflussen das Server/Client-Verhalten von PostgreSQL. Zum Beispiel sucht das PostgreSQL-Modul nach der Umgebungsvariablen PGHOST, falls der Hostname im Verbindungsstring nicht angegeben wurde. Die unterstützten Umgebungsvariablen variieren von Version zu Version. Schauen Sie für weitere Informationen in den PostgreSQL Programmer's Guide (nach den libpq Umgebungsvariablen).

Versichen Sie sich, dass Sie die Umgebungsvariable für den aktuellen Benutzer gesetzt haben. Um sich die Umgebungsvariablen, die für den aktuellen Prozess verfügbar sind, anzeigen zu lassen, benutzen Sie $_ENV oder getenv().

Beispiel 1. Umgebungsvariablen setzen

PGHOST=psgql.exmaple.com
PGPORT=7890
PGDATABASE=web-system
PGUSER=web-user
PGPASSWORD=secret
PGDATESTYLE=ISO
PGTZ=JST
PGCLIENTENCODING=EUC-JP

export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCODING

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

PGSQL_ASSOC (integer)

PGSQL_NUM (integer)

PGSQL_BOTH (integer)

PGSQL_CONNECTION_BAD (integer)

PGSQL_CONNECTION_OK (integer)

PGSQL_SEEK_SET (integer)

PGSQL_SEEK_CUR (integer)

PGSQL_SEEK_END (integer)

PGSQL_ESCAPE_STRING (integer)

PGSQL_ESCAPE_BYTEA (integer)

PGSQL_EMPTY_QUERY (integer)

PGSQL_COMMAND_OK (integer)

PGSQL_TUPLES_OK (integer)

PGSQL_COPY_OUT (integer)

PGSQL_COPY_IN (integer)

PGSQL_BAD_RESPONSE (integer)

PGSQL_NONFATAL_ERROR (integer)

PGSQL_FATAL_ERROR (integer)

Beispiele

Ab der PostgreSQL Version 7.1.0 ist die maximale Grösse eines Feldes mit dem Datentyp text 1GB. Ältere PostgreSQL Versionen begrenzten Felder vom Typ text auf Blockgrösse (normalerweise 8 KB bis maximal 32 KB, falls dies bei der Kompilation angegeben wurde).

Um die Large Object-Schnittstelle (lo) zu benutzen, ist es nötig, die Large-Object-Funktionen in einen Transaktionsblock einzuschließen. Ein Transaktionsblock beginnt mit einem SQL-Befehl BEGIN und endet, falls die Transaktion gültig war, mit COMMIT oder END. Wenn die Transaktion fehlschlägt, sollte sie mit ROLLBACK oder ABORT geschlossen werden.

Beispiel 2. Large Objects benutzen

<?php
    $database = pg_connect ("dbname=jacarta");
    pg_query ($database, "begin");
    $oid = pg_lo_create ($database);
    echo ("$oid\n");
    $handle = pg_lo_open ($database, $oid, "w");
    echo ("$handle\n");
    pg_lo_write ($handle, "Daten des Large Objects");
    pg_lo_close ($handle);
    pg_query ($database, "commit");
?>
Schließen Sie zuerst das Large Object, bevor Sie die Verbindung zum PostgreSQL Server schließen.

Inhaltsverzeichnis
pg_affected_rows -- Gibt die Anzahl betroffener Datensätze (Tupel) zurück
pg_cancel_query -- Löscht eine asynchrone Abfrage
pg_client_encoding -- Liefert die Kodierung des Clients
pg_close -- Schließt eine PostgreSQL-Verbindung
pg_connect -- Öffnet eine PostgreSQL Verbindung
pg_connection_busy -- Gibt den Status der Verbindung zurück (busy/not busy)
pg_connection_reset -- Setzt die Verbindung zurück und verbindet neu
pg_connection_status -- Gibt den Verbindungsstatus zurück
pg_convert -- Convert associative array value into suitable for SQL statement.
pg_copy_from -- Fügt Datensätze aus einem Array in eine Tabelle ein
pg_copy_to -- Kopiert eine Tabelle in ein Array
pg_dbname -- Gibt den Namen der Datenbank zurück
pg_delete -- Deletes records.
pg_end_copy -- Synchronisation mit dem PostgreSQL-Server
pg_escape_bytea -- Maskiert Binärdaten für den Typ bytea
pg_escape_string -- Maskiert einen String für die text/char Datentypen
pg_fetch_all -- Fetches all rows from a result as an array
pg_fetch_array -- Holt eine Zeile als Array
pg_fetch_assoc -- Fetch a row as an associative array
pg_fetch_object -- Holt einen Datensatz als Objekt
pg_fetch_result -- Liefert Werte aus einer Ergebnismenge
pg_fetch_row -- Holt einen Datensatz als nummerisches Array
pg_field_is_null -- Prüft, ob ein Feld NULL ist
pg_field_name -- Gibt den Namen eines Feldes zurück
pg_field_num -- Liefert die Feldnummer des angegebenen Feldes
pg_field_prtlen -- Gibt die Länge des Feldes zurück
pg_field_size -- Liefert die interne Speichergröße des bezeichneten Felds
pg_field_type -- Liefert den Feldtyp der entsprechenden Feldnummer
pg_free_result -- Gibt den durch Ergebnisse belegten Speicher frei
pg_get_notify -- Ping database connection
pg_get_pid -- Ping database connection
pg_get_result -- Gibt asynchrone Abfrageergebnisse zurück
pg_host -- Gibt den Namen des Host zurück, zu dem verbunden wurde
pg_insert -- Insert array into table.
pg_last_error -- Gibt die letzte Fehlermeldung einer Verbindung zurück
pg_last_notice -- Gibt die letzte NOTICE-Meldung des PostgreSQL-Servers zurück
pg_last_oid -- Gibt den Objektbezeichner eines neu eingefügten Datensatzes zurück
pg_lo_close -- Schließt ein Large Object
pg_lo_create -- Erzeugt ein Large Object
pg_lo_export -- Exportiert ein Large Object in eine Datei
pg_lo_import -- Importiert ein Large Object aus einer Datei
pg_lo_open -- Öffnet ein Large Object
pg_lo_read_all -- Liest ein Large Object vollständig und reicht es direkt an den Browser weiter
pg_lo_read -- Liest ein Large Object
pg_lo_seek -- Seeks position of large object
pg_lo_tell -- Returns current position of large object
pg_lo_unlink -- Löscht ein Large Object
pg_lo_write -- Schreibt in ein Large Object
pg_meta_data -- Get meta data for table.
pg_num_fields -- Gibt die Anzahl der Felder zurück
pg_num_rows -- Gibt die Anzahl der Zeilen zurück
pg_options -- Liefert die Verbindungsoptionen
pg_pconnect -- Öffnet eine persistente PostgreSQL-Verbindung
pg_ping -- Ping database connection
pg_port -- Gibt die Portnummer zurück, mit der die Verbindung aufgebaut wurde
pg_put_line -- Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL-Server
pg_query -- Führt eine Abfrage aus
pg_result_error -- Gibt eine Fehlermeldung zu einer Ergebniskennung zurück
pg_result_seek -- Set internal row offset in result resource
pg_result_status -- Gibt den Status eines Abfrageergebnisses zurück
pg_select -- Select records.
pg_send_query -- Sendet eine asynchrone Abfrage
pg_set_client_encoding -- Setzt die Kodierung des Clients
pg_trace -- Ermöglicht die Protokollierung einer Verbindung
pg_tty -- Gibt den tty-Namen zurück, der mit der Verbindung verknüpft ist.
pg_unescape_bytea -- Unescape binary for bytea type
pg_untrace -- Beendet die Protokollierung der Verbindung
pg_update -- Update table.

Zurück | Zum Anfang | Nach vorne
posix_uname | Nach oben | pg_affected_rows


pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_affected_rows -- Gibt die Anzahl betroffener Datensätze (Tupel) zurück

Beschreibung

int pg_affected_rows ( resource result)

pg_affected_rows() gibt die Anzahl der Tupels (Instanzen/Datensätze/Zeilen) zurück, die von einer mit pg_query() ausgeführten INSERT-, UPDATE- oder DELETE-Abfrage betroffen wurden. Die Funktion liefert 0 zurück, wenn kein Datensatz betroffen wurde.

Beispiel 1. pg_affected_rows()

<?php
$result = pg_query ($conn, "INSERT INTO publisher VALUES ('Author')");
$cmdtuples = pg_affected_rows ($result);
echo $cmdtuples . " Datensätze wurden betroffen.";
?>

Anmerkung: Diese Funktion entspricht der Funktion pg_cmdtuples().

Siehe auch pg_query() und pg_num_rows().

Zurück | Zum Anfang | Nach vorne
PostgreSQL Funktionen | Nach oben | pg_cancel_query


pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5)

pg_cancel_query -- Löscht eine asynchrone Abfrage

Beschreibung

bool pg_cancel_query ( resource connection)

pg_cancel_query() löscht eine asynchrone
Abfrage, die mit pg_send_query() gesendet
wurde. Abfragen, die mit pg_query() gesendet
wurden, können nicht gelöscht werden.

Siehe auch pg_send_query() und pg_connection_busy()

Zurück | Zum Anfang | Nach vorne
pg_affected_rows | Nach oben | pg_client_encoding


pg_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_client_encoding -- Liefert die Kodierung des Clients

Beschreibung

string pg_client_encoding ( [resource connection])

pg_client_encoding() gibt die Kodierung des Clients als String zurück. Dieser String sollte einen der folgenden Werte beinhalten: SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250.

Anmerkung: Diese Funktion arbeitet ab PHP Versin 4.0.3 oder höher und PostgreSQL 7.0 oder höher. Wenn die libpq ohne multibyte encoding Unterstützung kompiliert wurde, gibt pg_set_client_encoding() immer "SQL_ASCII" zurück. Die unterstützten Kodierungen sind von der PostgreSQL-Version abhängig. Weitere Informationen, wie Sie multibyte Unterstützung aktivieren, und welche Kodierungen unterstützt werden, entnehmen Sie dem PostgreSQL-Manual.

Diese Funktion ersetzt die Funktion pg_clientencoding().

Siehe auch pg_set_client_encoding().

Zurück | Zum Anfang | Nach vorne
pg_cancel_query | Nach oben | pg_close


pg_close

(PHP 3, PHP 4 , PHP 5)

pg_close -- Schließt eine PostgreSQL-Verbindung

Beschreibung

bool pg_close ( resource connection)

pg_close() schließt die nichtpersistente Verbindung zu einem PostgreSQL-Datenbankserver, die durch die angegebene connection Kennung bezeichnet wird. Falls connection eine gültige Verbindungskennung ist, wird TRUE zurückgegeben, anderenfalls FALSE.

Anmerkung: pg_close() ist normalerweise nicht notwendig, da geöffnete, nichtpersistente Verbindungen automatisch geschlossen werden, wenn die Ausführung des Skripts beendet ist.

Falls es auf dieser Verbindung geöffnete Large Objects gibt, sollten Sie diese schließen, bevor Sie die Verbindung schließen.

Zurück | Zum Anfang | Nach vorne
pg_client_encoding | Nach oben | pg_connect


pg_connect

(PHP 3, PHP 4 , PHP 5)

pg_connect -- Öffnet eine PostgreSQL Verbindung

Beschreibung

resource pg_connect ( string connection_string)

pg_connect() gibt eine Verbindungskennung zurück, die von anderen PostgreSQL-Funktionen benötigt wird.

pg_connect() öffnet eine Verbindung zu einer PostgreSQL Datenbank, die durch den connection_string näher bezeichnet wird. Zurückgegeben wird bei Erfolg eine Verbindungskennung oder FALSE, falls die Verbindung nicht zustande kam. Der connection_string sollte in Anführungszeichen stehen und keine Kommas zwischen den Parametern haben.

Beispiel 1. pg_connect benutzen

<?php
$dbconn = pg_connect ("dbname=mary");
//Verbindungsaufbau zu einer Datenbank namens "mary"
$dbconn2 = pg_connect ("host=localhost port=5432 dbname=mary");
// Verbindungsaufbau zu einer Datenbank namens "mary" auf dem
// Host "localhost" über den (Standard-)Port "5432"
$dbconn3 = pg_connect ("host=sheep port=5432 dbname=mary user=lamb password=foo");
//Verbindungsaufbau zu einer Datenbank namens "mary" auf dem Host
// "sheep" mit dem Benutzernamen "lamb" und dem Passwort "foo"
$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_connect ($conn_string);
//Verbindungsaufbau zu einer Datenbank namens "test" auf dem Host
//"sheep" unter dem Benutzernamen "lamb" mit dem Passwort "bar"
?>
Die Argumente für connection_string schliessen host, port, tty, options, dbname, user, und password ein.

Falls ein zweiter Aufruf von pg_connect() mit demselben connection_string gemacht wird, wird keine neue Verbindung geöffnet, sondern es wird die Verbindungskennung der bereits geöffneten Verbindung zurückgegeben. Mit unterschiedlichen Verbindungsstrings können Sie mehrere Verbindungen zu derselben Datenbank öffnen.

Die Syntax $conn = pg_connect ("host", "port", "options", "tty", "dbname") ist veraltet und sollte nicht mehr benutzt werden.

Siehe auch pg_pconnect(),
pg_close(), pg_host(),
pg_port(), pg_tty(),
pg_options() und pg_dbname().

Zurück | Zum Anfang | Nach vorne
pg_close | Nach oben | pg_connection_busy


pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_busy -- Gibt den Status der Verbindung zurück (busy/not busy)

Beschreibung

bool pg_connection_busy ( resource connection)

pg_connection_busy() gibt TRUE zurück, falls die Verbindung gerade benutzt wird. Ist dies der Fall, wird die zuvor an den Server gesendete Abfrage noch bearbeitet. Ein Aufruf von pg_get_result() wir dann blockiert.

Siehe auch pg_connection_status() und pg_get_result()

Zurück | Zum Anfang | Nach vorne
pg_connect | Nach oben | pg_connection_reset


pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_reset -- Setzt die Verbindung zurück und verbindet neu

Beschreibung

bool pg_connection_reset ( resource connection)

pg_connection_reset() setzt die Verbindung zurück und erstellt sie neu. Falls die Verbindung erfolgreich neu aufgebaut werden konnte, wird TRUE zurückgegeben, FALSE sonst.

Siehe auch pg_connect(),
pg_pconnect() und
pg_connection_status()

Zurück | Zum Anfang | Nach vorne
pg_connection_busy | Nach oben | pg_connection_status


pg_connection_status

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_status -- Gibt den Verbindungsstatus zurück

Beschreibung

int pg_connection_status ( resource connection)

pg_connection_status() gibt den Status der Verbindung zurück. Mögliche Werte sind: PGSQL_CONNECTION_OK oder PGSQL_CONNECTION_BAD.

Siehe auch pg_connection_busy()

Zurück | Zum Anfang | Nach vorne
pg_connection_reset | Nach oben | pg_convert


pg_convert

(PHP 4 >= 4.3.0, PHP 5)

pg_convert -- Convert associative array value into suitable for SQL statement.

Description

array pg_convert ( resource connection, string table_name, array assoc_array [, int options])

pg_convert() checks and converts the values in assoc_array into suitable values for use in a SQL statement. Precondition for pg_convert() is the existence of a table table_name which has at least as many columns as assoc_array has elements. The fieldnames as well as the fieldvalues in table_name must match the indices and values of assoc_array. Returns an array with the converted values on success, FALSE otherwise.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

See also pg_meta_data().

Zurück | Zum Anfang | Nach vorne
pg_connection_status | Nach oben | pg_copy_from


pg_copy_from

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_from -- Fügt Datensätze aus einem Array in eine Tabelle ein

Beschreibung

int pg_copy_from ( int connection, string table_name, array rows [, string delimiter [, string null_as]])

pg_copy_from() fügt Datensätze aus einem Array in eine Tabelle ein. Intern wird der COPY-Befehl aufgerufen, um die Datensätze einzufügen. Bei Erfolg gibt die Funktion TRUE zurück, FALSE sonst.

Siehe auch pg_copy_to()

Zurück | Zum Anfang | Nach vorne
pg_convert | Nach oben | pg_copy_to


pg_copy_to

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_to -- Kopiert eine Tabelle in ein Array

Beschreibung

int pg_copy_to ( int connection, string table_name [, string delimiter [, string null_as]])

pg_copy_to() kopiert eine Tabelle in ein Array. Intern wird das SQL Kommando COPY TO aufgerufen, um die Datensätze einzufügen. Die Funktion gibt das Array als Ergebnis zurück, falls die Aktion erfolgreich war, anderenfalls FALSE.

Siehe auch pg_copy_from()

Zurück | Zum Anfang | Nach vorne
pg_copy_from | Nach oben | pg_dbname


pg_dbname

(PHP 3, PHP 4 , PHP 5)

pg_dbname -- Gibt den Namen der Datenbank zurück

Beschreibung

string pg_dbname ( resource connection)

pg_dbname() gibt den Namen der Datenbank, deren connection Kennung übergeben wurde, zurück - oder FALSE, wenn connection eine ungültige Kennung ist.

Zurück | Zum Anfang | Nach vorne
pg_copy_to | Nach oben | pg_delete


pg_delete

(PHP 4 >= 4.3.0, PHP 5)

pg_delete -- Deletes records.

Description

mixed pg_delete ( resource connection, string table_name, array assoc_array [, int options])

pg_delete() deletes record condition specified by assoc_array which has field=>value. If option is specified, pg_convert() is applied to assoc_array with specified option.

Beispiel 1. pg_delete() example

<?php
    $db = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $res = pg_delete($db, 'post_log', $_POST);
    if ($res) {
        echo "POST data is deleted: $res\n";
    } else {
        echo "User must have sent wrong inputs\n";
    }
?>

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

See also pg_convert().

Zurück | Zum Anfang | Nach vorne
pg_dbname | Nach oben | pg_end_copy


pg_end_copy

(PHP 4 >= 4.0.3, PHP 5)

pg_end_copy -- Synchronisation mit dem PostgreSQL-Server

Beschreibung

bool pg_end_copy ( [resource connection])

pg_end_copy() syncronisiert das PostgreSQL-Frontend (normalerweise ein Prozess des Webservers) mit dem PostgreSQL-Server nach einer Kopier-Operation, die von der Funktion pg_put_line() durchgeführt wurde. pg_end_copy() muss aufgerufen werden, da sonst der PostgreSQL-Server einen "out of sync" Fehler mit dem Frontend meldet. Die Funktion gibt bei Erfolg TRUE zurück, FALSE sonst.

Weitere Details und ein Beispiel finden Sie bei der Funktion pg_put_line().

Zurück | Zum Anfang | Nach vorne
pg_delete | Nach oben | pg_escape_bytea


pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_bytea -- Maskiert Binärdaten für den Typ bytea

Beschreibung

string pg_escape_bytea ( string data)

pg_escape_string() maskiert Binärdaten so, dass sie als bytea-Stream in eine Tabelle eingefügt werden können. Der Rückgabewert ist der maskierte String.

Anmerkung: Wenn Sie mit SELECT Daten vom Typ bytea abfragen, gibt PostgreSQL die Oktalwerte der einzelnen Datenbytes zurück, die mit einem Backslash gequoted sind (z.B. \032). Diese Werte müssen vom Benutzer in das Binärformat zurückkonvertiert werden.

Diese Funktion setzt PostgreSQL 7.2 oder höher voraus. Mit den PostgreSQL-Versionen 7.2.0 und 7.2.1 muss der Typ bytea konvertiert werden, falls die multi-byte-Unterstützung benutzt wird, z.B. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);. Ab der PostgreSQL-Version 7.2.2 und höher, muss kein Typecast mehr durchgeführt werden. Es sei denn, die Codierungen von Client und Backend passen nicht zusammen, was zu einem multi-byte Streamfehler führen kann. Um diesen Fehler zu vermeiden, muss der Stream in den Typ bytea konvertiert werden.

Neuere PostgreSQL-Versionen werden eine unescape-Funktion unterstützen, diese eingebaute unescape-Funktion wird in PHP übernommen, sobald sie verfügbar ist.

Siehe auch pg_escape_string()

Zurück | Zum Anfang | Nach vorne
pg_end_copy | Nach oben | pg_escape_string


pg_escape_string

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_string -- Maskiert einen String für die text/char Datentypen

Beschreibung

string pg_escape_string ( string data)

pg_escape_string() Maskiert einen String für die text/char Datentypen von Postgresql. Der Rückgabewert ist der maskierte String. Diese Funktion sollte anstelle von addslashes() verwendet werden.

Anmerkung: Diese Funktion setzt PostgreSQL 7.2 oder höher voraus.

Siehe auch pg_escape_bytea()

Zurück | Zum Anfang | Nach vorne
pg_escape_bytea | Nach oben | pg_fetch_all


pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_all -- Fetches all rows from a result as an array

Description

array pg_fetch_all ( resource result)

pg_fetch_all() returns an array that contains all rows (tuples/records) in result resource. It returns FALSE, if there are no rows.

Beispiel 1. PostgreSQL fetch all

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

$arr = pg_fetch_all($result);

var_dump($arr);

?>

See also pg_fetch_row(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Zurück | Zum Anfang | Nach vorne
pg_escape_string | Nach oben | pg_fetch_array


pg_fetch_array

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_array -- Holt eine Zeile als Array

Beschreibung

array pg_fetch_array ( resource result [, int row [, int result_type]])

pg_fetch_array() gibt ein Array zurück, das die gelesene Zeile (Tupel, Datensatz) enthält. Falls keine Zeile mehr gelesen werden konnte, wird FALSE zurückgegeben.

pg_fetch_array() ist eine erweiterte Version von pg_fetch_row(). Zusätzlich zur Speicherung der Daten in einem nummerischen Array (mit den Feldindizes) speichert diese Funktion die Daten standardmässig in einem assoziativen Array mit den Feldnamen als Indizes.

row ist die Zeilennummer des Datensatzes, der gelesen werden soll. Die Zählung beginnt bei 0.

result_type ist ein optionaler Parameter, der angibt, wie der Rückgabewert initialisiert wird. result_type ist eine Konstante, die die folgenden Werte annehmen kann: PGSQL_ASSOC, PGSQL_NUM, und PGSQL_BOTH. pg_fetch_array() gibt mit PGSQL_ASSOC ein assoziatives Array mit den Feldnamen als Schlüssel zurück, mit PGSQL_NUM wird ein nummerisches Array mit den Feldnummern zurückgegeben und mit PGSQL_BOTH wird ein Array mit beiden Indizes zurückgegeben. PGSQL_BOTH ist die Standardeinstellung.

Anmerkung: result_type wurde in PHP 4.0 eingeführt.

pg_fetch_array() ist NICHT wesentlich langsamer als pg_fetch_row(), ist aber viel einfacher zu benutzen.

Beispiel 1. PostgreSQL fetch array

<?php
$conn = pg_pconnect ("dbname=publisher");
if (!$conn) {
    echo "Ein Fehler ist aufgetreten.\n";
    exit;
}

$result = pg_query ($conn, "SELECT * FROM authors");
if (!$result) {
    echo "Ein Fehler ist aufgetreten.\n";
    exit;
}

$arr = pg_fetch_array ($result, 0, PGSQL_NUM);
echo $arr[0] . " <- array\n";

$arr = pg_fetch_array ($result, 1, PGSQL_ASSOC);
echo $arr["autor"] . " <- array\n";
?>

 Siehe auch pg_fetch_row(),
pg_fetch_object() und
pg_fetch_result().

Anmerkung: Ab der Version 4.1.0 ist der Parameter row optional. Ein Aufruf von pg_fetch_array() inkrementiert den internen Datensatzzähler um 1.

Zurück | Zum Anfang | Nach vorne
pg_fetch_all | Nach oben | pg_fetch_assoc


pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_assoc -- Fetch a row as an associative array

Description

array pg_fetch_assoc ( resource result [, int row])

pg_fetch_assoc() returns an associative array that corresponds to the fetched row (tuples/records). It returns FALSE, if there are no more rows.

pg_fetch_assoc() is equivalent to calling pg_fetch_array() with PGSQL_ASSOC for the optional third parameter. It only returns an associative array. If you need the numeric indices, use pg_fetch_row().

row is row (record) number to be retrieved. First row is 0.

pg_fetch_assoc() is NOT significantly slower than using pg_fetch_row(), while it provides a significant ease of use.

Beispiel 1. pg_fetch_assoc() example

<?php
$conn = pg_connect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT id, author, email FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

while ($row = pg_fetch_assoc($result)) {
    echo $row['id'];
    echo $row['author'];
    echo $row['email'];
}
?>

See also
pg_fetch_row(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Zurück | Zum Anfang | Nach vorne
pg_fetch_array | Nach oben | pg_fetch_object


pg_fetch_object

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_object -- Holt einen Datensatz als Objekt

Beschreibung

object pg_fetch_object ( resource result [, int row [, int result_type]])

pg_fetch_object() gibt ein Objekt zurück, dessen Eigenschaften mit den Feldern des erhaltenen Datensatzes übereinstimmen oder FALSE, wenn kein Datensatz mehr gelesen werden konnte oder ein Fehler auftrat.

pg_fetch_object() ist pg_fetch_array() ähnlich, mit einem Unterschied: Statt eines Arrays wird ein Objekt zurückgegeben. Indirekt heisst das, dass man die Daten nur über die Feldnamen und nicht über ihre Offsets ansprechen kann (Zahlen sind nicht erlaubte Eigenschaftsnamen).

row ist die Nummer der Zeile, die geholt wird, die Nummerierung beginnt bei 0.

Von der Geschwindigkeit her ist die Funktion mit pg_fetch_array() identisch und fast so schnell wie pg_fetch_row() (Der Unterschied ist unwesentlich).

Anmerkung: Ab der Version 4.1.0 ist der Parameter row optional.

Ab der PHP-Version 4.3.0 ist die Standardeinstellung von result_type PGSQL_ASSOC, während PGSQL_BOTH in älteren Versionen voreingestellt ist. Da nummerische Eigenschaftsnamen von Objekten nicht erlaubt sind, ist PGSQL_BOTH überflüssig.

result_type wird möglicherweise in zukünftigen Versionen gelöscht werden.

Beispiel 1. PostgreSQL fetch object

<?php
$database = "verlag";
$db_conn = pg_connect ("host=localhost port=5432 dbname=$database");
if (!$db_conn): ?>
    <H1>Konnte keine Verbindung zur PostgreSQL Datenbank <?php echo $database; ?> herstellen.</H1> <?php
    exit;
endif;

$qu = pg_query ($db_conn, "SELECT * FROM verlag ORDER BY autor");
$row = 0; // PostgreSQL braucht einen Zähler, andere DBs evtl. nicht
while ($data = pg_fetch_object ($qu, $row)) {
    echo $data->autor." (";
    echo $data->jahr ."): ";
    echo $data->titel."<BR>";
    $row++;
}
?>
<PRE>
<?php
$fields[] = Array ("autor", "Author");
$fields[] = Array ("jahr",  "  Jahr");
$fields[] = Array ("titel", " Titel");

$row= 0; // PostgreSQL braucht einen Zähler, andere DBs evtl. nicht
while ($data = pg_fetch_object ($qu, $row)) {
    echo "----------\n";
    reset ($fields);
    while (list (,$item) = each ($fields)):
        echo $item[1].": ".$data->$item[0]."\n";
    endwhile;
    $row++;
}
echo "----------\n";
?>
</PRE>
<?php
pg_free_result ($qu);
pg_close ($db_conn);
?>

Siehe auch pg_query(), pg_fetch_array(), pg_fetch_row() und pg_fetch_result().

Anmerkung: Ab der Version 4.1.0 ist der Parameter row optional. Ein Aufruf von pg_fetch_object() inkrementiert den internen Datensatzzähler um 1.

Zurück | Zum Anfang | Nach vorne
pg_fetch_assoc | Nach oben | pg_fetch_result


pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5)

pg_fetch_result -- Liefert Werte aus einer Ergebnismenge

Beschreibung

mixed pg_fetch_result ( resource result, int row, mixed field)

pg_fetch_result() liefert Werte aus einer Ergebnismenge result, die von pg_query() zurückgegeben wurde. Der Parameter row ist ein Integerwert. field bestimmt, welcher Wert aus der Ergebnismatrix zurückgegeben werden soll. Die Nummerierung der Zeilen beginnt bei 0. Anstatt die Felder durch ihre Namen anzugeben, können Sie auch den Feldindex benutzen. Dieser beginnt ebenfalls bei 0 und ist eine ungequotete Zahl.

PostgreSQL unterstützt viele eingebaute Datentypen und nur die grundlegenden werden direkt von PHP unterstützt. Alle Formen von integer-Typen werden als integer-Werte zurückgegeben. Alle Formen von float- und real-Typen werden als float-Werte zurückgegeben. Alle anderen Typen, einschließlich Arrays werden als Strings zurückgegeben, in der durch den psql-Befehl bekannten PostgreSQL-Standardformatierung.

Zurück | Zum Anfang | Nach vorne
pg_fetch_object | Nach oben | pg_fetch_row


pg_fetch_row

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_row -- Holt einen Datensatz als nummerisches Array

Beschreibung

array pg_fetch_row ( resource result, int row)

pg_fetch_row() holt einen Datensatz der Ergebnismenge, die durch die Ergebniskennung result bezeichnet wird. Die Zeile (Datensatz) wird als nummerisches Array zurückgegeben. Jedes Ergebnisfeld wird in einer Arraykomponente gespeichert, angefangen bei Offset 0.

Zurückgegeben wird ein Array, dessen Komponenten der gelesenen Zeile entsprechen, oder FALSE, falls keine Zeile mehr gelesen werden konnte.

Beispiel 1. PostgreSQL fetch row

<?php
$conn = pg_pconnect ("dbname=verlag");
if (!$conn) {
    echo "Es ist ein Fehler aufgetreten.\n";
    exit;
}

$result = pg_query ($conn, "SELECT * FROM autoren");
if (!$result) {
    echo "Es ist ein Fehler aufgetreten.\n";
    exit;
}
while ($row = pg_fetch_row($result, $i)) {
  for ($j=0; $j < count($row); $j++) {
    echo "$row[$j]&nbsp;";
  }

  echo "<BR>";

}
?>

Siehe auch: pg_query(),
pg_fetch_array(),
pg_fetch_object() und
pg_fetch_result().

Anmerkung: Ab der Version 4.1.0 ist der Parameter row optional. Ein Aufruf von pg_fetch_row() inkrementiert den internen Datensatzzähler um 1.

Zurück | Zum Anfang | Nach vorne
pg_fetch_result | Nach oben | pg_field_is_null


pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5)

pg_field_is_null -- Prüft, ob ein Feld NULL ist

Beschreibung

int pg_field_is_null ( resource result, int row, mixed field)

pg_field_is_null() prüft, ob ein Feld NULL ist. Die Funktion liefert 1 zurück, wenn das Feld in der übergebenen Zeile NULL ist und 0, wenn das Feld NICHT NULL ist. Das zu prüfende Feld kann als Spaltenindex (Nummer) oder Feldname (String) angegeben werden. Die Nummerierung der Felder eines Datensatzes beginnt bei 0.

Anmerkung: Diese Funktion ersetzt die Funktion pg_fieldisnull().

Zurück | Zum Anfang | Nach vorne
pg_fetch_row | Nach oben | pg_field_name


pg_field_name

(PHP 4 >= 4.2.0, PHP 5)

pg_field_name -- Gibt den Namen eines Feldes zurück

Beschreibung

string pg_field_name ( resource result, int field_number)

pg_field_name() gibt den Feldnamen mit der übergebenen field_number aus der durch result bezeichneten PostgreSQL-Ergebnismenge zurück. Die Feldnummerierung beginnt bei 0.

Anmerkung: Diese Funktion ersetzt die Funktion pg_fieldname().

Siehe auch pg_field_num().

Zurück | Zum Anfang | Nach vorne
pg_field_is_null | Nach oben | pg_field_num


pg_field_num

(PHP 4 >= 4.2.0, PHP 5)

pg_field_num -- Liefert die Feldnummer des angegebenen Feldes

Beschreibung

int pg_field_num ( resource result, string field_name)

pg_field_num() gibt die Nummer der Spalte (Feld) aus, die zu dem übergebenen field_name in dem duch result bezeichneten PostgreSQL-Ergebnis gehört. Die Feldnummerierung beginnt bei 0. Diese Funktion gibt bei einem Fehler -1 aus.

Anmerkung: Diese Funktion ersetzt die Funktion pg_fieldnum().

Siehe auch pg_field_name().

Zurück | Zum Anfang | Nach vorne
pg_field_name | Nach oben | pg_field_prtlen


pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5)

pg_field_prtlen -- Gibt die Länge des Feldes zurück

Beschreibung

int pg_field_prtlen ( resource result, int row_number, string field_name)

pg_field_prtlen() gibt die aktuelle Länge (Anzahl der Zeichen) eines bestimmten Wertes in einem PostgreSQL result zurück. Die Feldnummerierung beginnt bei 0. Die Funktion liefert bei einem Fehler -1 zurück.

Anmerkung: Diese Funktion ersetzt die Funktion pg_fieldprtlen().

Siehe auch pg_field_size().

Zurück | Zum Anfang | Nach vorne
pg_field_num | Nach oben | pg_field_size


pg_field_size

(PHP 4 >= 4.2.0, PHP 5)

pg_field_size -- Liefert die interne Speichergröße des bezeichneten Felds

Beschreibung

int pg_field_size ( resource result, int field_number)

pg_field_size() liefert die interne Speichergrösse (in Bytes) des angegebenen Feldes in dem durch result bezeichneten PostgreSQL-Ergebnis zurück. Die Feldnummerierung beginnt bei 0. Eine Feldgrösse von -1 beschreibt ein Feld mit variabler Länge. Diese Funktion gibt im Fehlerfall FALSE zurück.

Anmerkung: Diese Funktion ersetzt die Funktion pg_fieldsize().

Siehe auch pg_field_prtlen() und pg_field_type().

Zurück | Zum Anfang | Nach vorne
pg_field_prtlen | Nach oben | pg_field_type


pg_field_type

(PHP 4 >= 4.2.0, PHP 5)

pg_field_type -- Liefert den Feldtyp der entsprechenden Feldnummer

Beschreibung

string pg_field_type ( resource result, int field_number)

pg_field_type() liefert einen String, der den Feldtyp des mit field_number bezeichneten Feldes aus dem mit result bezeichneten PostgreSQL-Ergebnis enthält. Die Feldnummerierung beginnt bei 0.

Anmerkung: Diese Funktion ersetzt die Funktion pg_fieldtype().

Siehe auch pg_field_prtlen() und pg_field_name().

Zurück | Zum Anfang | Nach vorne
pg_field_size | Nach oben | pg_free_result


pg_free_result

(PHP 4 >= 4.2.0, PHP 5)

pg_free_result -- Gibt den durch Ergebnisse belegten Speicher frei

Beschreibung

bool pg_free_result ( resource result)

pg_free_result() braucht nur aufgerufen zu werden, wenn man befürchten muss, dass während des Skripts zu viel Speicher verbraucht wird. Der Speicherplatz, den Ergebnisse belegen, wird automatisch nach Beendigung des Skriptes freigegeben. Wer allerdings sicher ist, die Ergebnisdaten innerhalb des Skriptes nicht mehr zu benötigen, kann pg_free_result() mit dem Parameter result aufrufen, und der entsprechende Speicher wird freigegeben. Bei Erfolg wird TRUE zurückgegeben und FALSE sonst.

Anmerkung: Diese Funktion ersetzt die Funktion pg_freeresult().

Siehe auch pg_query().

Zurück | Zum Anfang | Nach vorne
pg_field_type | Nach oben | pg_get_notify


pg_get_notify

(PHP 4 >= 4.3.0, PHP 5)

pg_get_notify -- Ping database connection

Description

array pg_get_notify ( resource connection [, int result_type])

pg_get_notify() gets notify message sent by NOTIFY SQL command. To receive notify messages, LISTEN SQL command must be issued. If there is notify message on the connection, array contains message name and backend PID is returned. If there is no message, FALSE is returned.

See also pg_get_pid()

Beispiel 1. PostgreSQL NOTIFY message

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Listen 'author_updated' message from other processes
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
    echo "No messages\n";
} else {
    print_r($notify);
}
?>

Zurück | Zum Anfang | Nach vorne
pg_free_result | Nach oben | pg_get_pid


pg_get_pid

(PHP 4 >= 4.3.0, PHP 5)

pg_get_pid -- Ping database connection

Description

int pg_get_pid ( resource connection)

pg_get_pid() gets backend (database server process) PID. PID is useful to check if NOTIFY message is sent from other process or not.

Beispiel 1. PostgreSQL backend PID

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Backend process PID. Use PID with pg_get_notify()
$pid = pg_get_pid($conn);
?>

See also pg_get_notify().

Zurück | Zum Anfang | Nach vorne
pg_get_notify | Nach oben | pg_get_result


pg_get_result

(PHP 4 >= 4.2.0, PHP 5)

pg_get_result -- Gibt asynchrone Abfrageergebnisse zurück

Beschreibung

resource pg_get_result ( [resource connection])

pg_get_result() gibt die Ergebniskennung einer asynchronen Abfrage zurück, die mit pg_send_query() an den Datenbankserver gesendet wurde. Mit pg_send_query() können mehrere Abfragen an den Server geschickt werden, deren Ergebnisse mit pg_get_result() nacheinander abgefragt werden können. Die Funktion gibt die Ergebniskennung zurück oder FALSE, falls es keine Ergebnisse mehr gibt.

Zurück | Zum Anfang | Nach vorne
pg_get_pid | Nach oben | pg_host


pg_host

(PHP 3, PHP 4 , PHP 5)

pg_host -- Gibt den Namen des Host zurück, zu dem verbunden wurde

Beschreibung

string pg_host ( resource connection)

pg_host() gibt den Namen des Hosts zurück, zu dem mit der angegebenen PostgreSQL connection verbunden wurde.

Siehe auch pg_connect() und pg_pconnect().

Zurück | Zum Anfang | Nach vorne
pg_get_result | Nach oben | pg_insert


pg_insert

(PHP 4 >= 4.3.0, PHP 5)

pg_insert -- Insert array into table.

Description

bool pg_insert ( resource connection, string table_name, array assoc_array [, int options])

pg_insert() inserts the values of assoc_array into the table specified by table_name. table_name must at least have as many columns as assoc_array has elements. The fieldnames as well as the fieldvalues in table_name must match the indices and values of assoc_array. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. If options is specified, pg_insert() is applied to assoc_array with specified option.

Beispiel 1. pg_insert() example

<?php
    $dbconn = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $res = pg_insert($dbconn, 'post_log', $_POST);
    if ($res) {
        echo "POST data is successfully logged\n";
    } else {
        echo "User must have sent wrong inputs\n";
    }
?>

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

See also pg_convert().

Zurück | Zum Anfang | Nach vorne
pg_host | Nach oben | pg_last_error


pg_last_error

(PHP 4 >= 4.2.0, PHP 5)

pg_last_error -- Gibt die letzte Fehlermeldung einer Verbindung zurück

Beschreibung

string pg_last_error ( resource connection)

pg_last_error() gibt einen String zurück, der die letzte Fehlermeldung der durch connection gegebenen Verbindung enthält.

Fehlermeldungen können durch interne PostgreSQL- (libpq) Funktionsaufrufe überschrieben werden. Falls mehrere Fehler innerhalb einer internen PostgreSQL-Funktion auftreten, wird möglicherweise keine passende Fehlermeldung angezeigt.

Verwenden Sie pg_result_error(),
pg_result_status() und
pg_connection_status() für eine bessere Fehlerbehandlung.

Anmerkung: Diese Funktion ersetzt die Funktion pg_errormessage().

Siehe auch pg_result_error().

Zurück | Zum Anfang | Nach vorne
pg_insert | Nach oben | pg_last_notice


pg_last_notice

(PHP 4 >= 4.0.6, PHP 5)

pg_last_notice -- Gibt die letzte NOTICE-Meldung des PostgreSQL-Servers zurück

Beschreibung

string pg_last_notice ( resource connection)

pg_last_notice() gibt die letzte NOTICE-Meldung des PostgreSQL Servers für die angegebene connection zurück. Der PostgreSQL-Server sendet zu unterschiedlichen Anlässen NOTICE-Meldungen an den Client, beispielsweise, wenn eine Transaktion nicht weiter ausgeführt werden kann. In diesem Fall kann man mit der Funktion pg_last_notice() das Senden überflüssiger Abfragen vermeiden, indem man prüft, ob eine NOTICE-Meldung sich auf die Transaktion bezieht oder nicht.

Warnung

Diese Funktion ist EXPERIMENTELL und noch nicht vollständig implementiert. pg_last_notice() wurde mit der Version 4.0.6 eingeführt. Diese Version hat jedoch Probleme mit der Verarbeitung der NOTICE-Meldungen. Von der Benutzung des PostgreSQL-Moduls mit PHP 4.0.6 wird abgeraten, auch wenn Sie die Funktion pg_last_notice() nicht nutzen.

Ab der Version 4.3.0 ist diese Funktion vollständig implementiert. Die Versionen vor 4.3.0 ignorieren den Parameter connection.

Die Ausgabe der NOTICE-Meldungen kann ab PHP 4.3.0 auf optional gesetzt werden indem man pgsql.ignore_notice in php.ini auf den Wert 1 setzt.

Das Protokollieren der NOTICE-Meldungen kann ab PHP 4.3.0 auf optional gesetzt werden, indem pgsql.log_notice in php.ini auf den Wert 0 gesetzt wird. NOTICE-Meldungen können nur protokolliert werden, wenn pgsql.ignore_notice den Wert 0 hat.

Siehe auch pg_query() und pg_last_error().

Zurück | Zum Anfang | Nach vorne
pg_last_error | Nach oben | pg_last_oid


pg_last_oid

(PHP 4 >= 4.2.0, PHP 5)

pg_last_oid -- Gibt den Objektbezeichner eines neu eingefügten Datensatzes zurück

Beschreibung

int pg_last_oid ( resource result)

pg_last_oid() wird benutzt, um den Object Identifier oid, der einem eingefügten Datensatz (Tupel) zugewiesen wurde, auszulesen. result muss die Ergebniskennung des letzten Kommandos sein, das mit pg_query() an den Server gesendet wurde, und dieses Kommando muss ein INSERT gewesen sein. Die Funktion gibt einen positiven Integerwert zurück, wenn es einen gültigen oid gibt. Falls ein Fehler auftritt, oder das letzte Kommando, das mit pg_query() gesendet wurde, kein INSERT war, oder der INSEERT fehlgeschlagen ist, wird FALSE zurückgegeben.

Das OID-Feld (Datensatznummer) wurde in der PostgreSQL-Version 7.2 optional. Falls eine Tabelle ohne OID definiert wurde, muss mit der Funktion pg_result_status() geprüft werden, ob ein Datensatz korrekt eingefügt wurde.

Anmerkung: Diese Funktion ersetzt die Funktion pg_getlastoid().

Siehe auch pg_query() und pg_result_status().

Zurück | Zum Anfang | Nach vorne
pg_last_notice | Nach oben | pg_lo_close


pg_lo_close

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_close -- Schließt ein Large Object

Beschreibung

bool pg_lo_close ( resource large_object)

pg_lo_close() schließt ein Large Object. large_object ist eine Referenz auf das Large Object, das mit pg_lo_open() geöffnet wurde.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anmerkung: Diese Funktion ersetzt die Funktion pg_loclose().

Siehe auch pg_lo_open(),
pg_lo_create() und
pg_lo_import().

Zurück | Zum Anfang | Nach vorne
pg_last_oid | Nach oben | pg_lo_create


pg_lo_create

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_create -- Erzeugt ein Large Object

Beschreibung

int pg_lo_create ( resource connection)

pg_lo_create() erzeugt ein Large Object und liefert dessen oid zurück. connection bezeichnet eine gültige Datenbankverbindung, die mit pg_connect() oder pg_pconnect() geöffnet wurde. Die Zugriffsmethoden von PostgreSQL, INV_READ, INV_WRITE und INV_ARCHIVE werden nicht unterstützt, ein Large Object wird immer mit Lese- und Schreibzugriff erzeugt. INV_ARCHIVE wurde von PostgreSQL selber (ab Version 6.3 und höher) entfernt. Die Funktion gibt den Objektbezeichner oid des Large Objects zurück oder FALSE, falls ein Fehler auftrat.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anmerkung: Diese Funktion ersetzt die Funktion pg_locreate().

Zurück | Zum Anfang | Nach vorne
pg_lo_close | Nach oben | pg_lo_export


pg_lo_export

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_export -- Exportiert ein Large Object in eine Datei

Beschreibung

bool pg_lo_export ( int oid, string pathname [, resource connection])

Das Argument oid ist der Objektbezeichner des Large Objects, oid, das exportiert werden soll und pathname ist der Pfad der Datei. Falls ein Fehler auftritt, wird FALSE zurückgegeben, anderenfalls TRUE.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anmerkung: Diese Funktion ersetzt die Funktion pg_loexport().

Siehe auch pg_lo_import().

Zurück | Zum Anfang | Nach vorne
pg_lo_create | Nach oben | pg_lo_import


pg_lo_import

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_import -- Importiert ein Large Object aus einer Datei

Beschreibung

int pg_lo_import ( [resource connection, string pathname])

In PHP Versionen vor 4.2.0 hatte diese Funktion eine andere Syntax, siehe die folgende Definition:.

int pg_lo_import ( string pathname [, resource connection])

Das Argument pathname bezeichnet den Pfad zu der Datei, die als Large Object importiert werden soll. Die Funktion gibt den Objektbezeichner, oid, des gerade erzeugten Large Objects zurück oder FALSE, falls ein Fehler auftrat.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anmerkung: Wenn Safe Mode aktiviert ist, überprüft PHP, ob die Dateien/Verzeichnisse die mit dem Skript bearbeitet werden sollen, die gleiche UID haben wie das Skript selbst.

Anmerkung: Diese Funktion ersetzt die Funktion pg_loimport().

Siehe auch pg_lo_export() und pg_lo_open().

Zurück | Zum Anfang | Nach vorne
pg_lo_export | Nach oben | pg_lo_open


pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_open -- Öffnet ein Large Object

Beschreibung

resource pg_lo_open ( resource connection, int oid, string mode)

pg_lo_open() öffnet ein Large Object und gibt einen Handler (eine Referenz) zurück. Der Handler kapselt Informationen über die Verbindung. oid ist ein gültiger Objektbezeichner eines Large Objects und mode gibt die Zugriffsart an. Mögliche Werte für mode sind "r", "w" oder "rw". Bei einem Fehler wird FALSE zurückgegeben.

Warnung

Bevor Sie die Datenbankverbindung schließen, müssen Sie das Large Object wieder schließen.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anmerkung: Diese Funktion ersetzt die Funktion pg_loopen().

Siehe auch pg_lo_close() und pg_lo_create().

Zurück | Zum Anfang | Nach vorne
pg_lo_import | Nach oben | pg_lo_read_all


pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read_all -- Liest ein Large Object vollständig und reicht es direkt an den Browser weiter

Beschreibung

int pg_lo_read_all ( resource large_object)

pg_lo_read_all() liest ein Large Object vollständig und übergibt es direkt an den Browser, nachdem alle entsprechenden Header gesendet wurden. Die Funktion wird hauptsächlich für Binärdaten wie Bilder oder Sound genutzt. Falls ein Fehler aufgetreten ist, wird FALSE zurückgegeben.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anmerkung: Diese Funktion ersetzt die Funktion pg_loreadall().

Siehe auch pg_lo_read().

Zurück | Zum Anfang | Nach vorne
pg_lo_open | Nach oben | pg_lo_read


pg_lo_read

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read -- Liest ein Large Object

Beschreibung

string pg_lo_read ( resource large_object, int len)

pg_lo_read() liest höchstens len Bytes eines großen Objektes und gibt dies als String zurück. Das Argument large_object bezeichnet einen gültigen Handler für ein Large Object und len gibt die maximal erlaubte Grösse des Segmentes des Large Objects an. Bei einem Fehler wird FALSE zurückgegeben.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anmerkung: Diese Funktion ersetzt die Funktion pg_loread().

Siehe auch pg_lo_read_all().

Zurück | Zum Anfang | Nach vorne
pg_lo_read_all | Nach oben | pg_lo_seek


pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_seek -- Seeks position of large object

Beschreibung

bool pg_lo_seek ( resource large_object, int offset [, int whence])

pg_lo_seek() seeks position of large object resource. whence is PGSQL_SEEK_SET, PGSQL_SEEK_CUR or PGSQL_SEEK_END.

Siehe auch pg_lo_tell().

Zurück | Zum Anfang | Nach vorne
pg_lo_read | Nach oben | pg_lo_tell


pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_tell -- Returns current position of large object

Beschreibung

int pg_lo_tell ( resource large_object)

pg_lo_tell() returns current position (offset from the beginning of large object).

Siehe auch pg_lo_seek().

Zurück | Zum Anfang | Nach vorne
pg_lo_seek | Nach oben | pg_lo_unlink


pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_unlink -- Löscht ein Large Object

Beschreibung

bool pg_lo_unlink ( resource connection, int oid)

pg_lo_unlink() löscht das Large Object mit dem Objektbezeichner oid. Bei Erfolg wird TRUE zurückgegeben, FALSE sonst.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anmerkung: Diese Funktion ersetzt die Funktion pg_lounlink().

Siehe auch pg_lo_create() und pg_lo_import().

Zurück | Zum Anfang | Nach vorne
pg_lo_tell | Nach oben | pg_lo_write


pg_lo_write

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_write -- Schreibt in ein Large Object

Beschreibung

int pg_lo_write ( resource large_object, string data)

pg_lo_write() schreibt aus einer Variablen höchstens data in ein großes Objekt und liefert die Anzahl der tasächlich geschriebenen Bytes zurück, oder FALSE, wenn ein Fehler auftrat. large_object ist der Handler des Large Objects, der von der Funktion pg_lo_open() zurückgegeben wurde.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anmerkung: Diese Funktion ersetzt die Funktion pg_lowrite().

Siehe auch pg_lo_create() und pg_lo_open().

Zurück | Zum Anfang | Nach vorne
pg_lo_unlink | Nach oben | pg_meta_data


pg_meta_data

(PHP 4 >= 4.3.0, PHP 5)

pg_meta_data -- Get meta data for table.

Description

array pg_meta_data ( resource connection, string table_name)

pg_meta_data() returns table definition for table_name as an array. If there is error, it returns FALSE

Beispiel 1. Getting table metadata

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

    $meta = pg_meta_data($dbconn, 'authors');
    if (is_array($meta)) {
        echo '<pre>';
        var_dump($meta);
        echo '</pre>';
    }
?>

The above example would produce the following output:

array(3) {
  ["author"]=>
  array(5) {
    ["num"]=>
    int(1)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["year"]=>
  array(5) {
    ["num"]=>
    int(2)
    ["type"]=>
    string(4) "int2"
    ["len"]=>
    int(2)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["title"]=>
  array(5) {
    ["num"]=>
    int(3)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

See also pg_convert().

Zurück | Zum Anfang | Nach vorne
pg_lo_write | Nach oben | pg_num_fields


pg_num_fields

(PHP 4 >= 4.2.0, PHP 5)

pg_num_fields -- Gibt die Anzahl der Felder zurück

Beschreibung

int pg_num_fields ( resource result)

pg_num_fields() liefert die Anzahl der Felder (Spalten) eines PostgreSQL result. Das Argument ist eine gültige Ergebniskennung, die von pg_query() zurückgegeben wurde. Diese Funktion gibt im Fehlerfall -1 aus.

Anmerkung: Diese Funktion ersetzt die Funktion pg_numfields().

Siehe auch pg_num_rows() und pg_affected_rows().

Zurück | Zum Anfang | Nach vorne
pg_meta_data | Nach oben | pg_num_rows


pg_num_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_num_rows -- Gibt die Anzahl der Zeilen zurück

Beschreibung

int pg_num_rows ( resource result)

pg_num_rows() liefert die Anzahl der Zeilen in einem PostgreSQL result. Das Argument result ist eine gültige Ergebniskennung, die von pg_query() zurückgegeben wurde. Diese Funktion gibt im Fehlerfall -1 zurück.

Anmerkung: Um die Anzahl der von einer INSERT-, UPDATE- oder DELETE-Operation betroffener Zeilen zu erhalten, benutzen Sie die Funktion pg_affected_rows().

Anmerkung: Diese Funktion ersetzt die Funktion pg_numrows().

Siehe auch pg_num_fields() und pg_affected_rows().

Zurück | Zum Anfang | Nach vorne
pg_num_fields | Nach oben | pg_options


pg_options

(PHP 3, PHP 4 , PHP 5)

pg_options -- Liefert die Verbindungsoptionen

Beschreibung

string pg_options ( resource connection)

pg_options() liefert einen String, der die Verbindungsoptionen der durch connection bezeichneten Verbindung enthält.

Zurück | Zum Anfang | Nach vorne
pg_num_rows | Nach oben | pg_pconnect


pg_pconnect

(PHP 3, PHP 4 , PHP 5)

pg_pconnect -- Öffnet eine persistente PostgreSQL-Verbindung

Beschreibung

resource pg_pconnect ( string connection_string)

pg_pconnect() öffnet eine Verbindung zu einer PostgreSQL-Datenbank. Zurückgegeben wird eine Verbindungskennung, die von anderen PostgreSQL-Funktionen benötigt wird.

Eine Beschreibung des Parameters connection_string finden Sie bei der Funktion pg_connect().

Um persostente Verbindungen zu ermöglichen, muss die pgsql.allow_persistent -Direktive in php.ini auf den Wert "On" gesetzt sein (was der Standardeinstellung entspricht). Die maximale Anzahl geöffneter persistenter Verbindungen kann mit der Direktive pgsql.max_persistent in php.ini definiert werden (der Standardwert ist -1, der für unbegrenzt steht). Die Gesamtanzahl der Verbindungen kann mit der pgsql.max_links -Direktive in php.ini gesetzt werden.

pg_close() schließt keine persistenten Verbindungen, die mit pg_pconnect() geöffnet wurden.

Siehe auch pg_connect() sowie den Abschnitt über persistente Datenbankverbindungen für weitere Informationen.

Zurück | Zum Anfang | Nach vorne
pg_options | Nach oben | pg_ping


pg_ping

(PHP 4 >= 4.3.0, PHP 5)

pg_ping -- Ping database connection

Description

bool pg_ping ( resource connection)

pg_ping() ping database connection, try to reconnect if it is broken. It returns TRUE if connection is alive, otherwise FALSE.

Beispiel 1. pg_ping() example

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

if (!pg_ping($conn))
    die("Connection is broken\n");
?>

See also pg_connection_status() and pg_connection_reset().

Zurück | Zum Anfang | Nach vorne
pg_pconnect | Nach oben | pg_port


pg_port

(PHP 3, PHP 4 , PHP 5)

pg_port -- Gibt die Portnummer zurück, mit der die Verbindung aufgebaut wurde

Beschreibung

int pg_port ( resource connection)

pg_port() gibt die Portnummer der durch die Kennung connection bezeichneten PostgresSQL-Verbindung zurück.

Zurück | Zum Anfang | Nach vorne
pg_ping | Nach oben | pg_put_line


pg_put_line

(PHP 4 >= 4.0.3, PHP 5)

pg_put_line -- Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL-Server

Beschreibung

bool pg_put_line ( [resource connection, string data])

pg_put_line() sendet eine NULL-terminierte Zeichenkette an den PostgreSQL-Server. Diese Funktion ist nützlich, um bespielsweise Daten mit hoher Geschwindigkeit mit dem Copy-Befehl von PostgreSQL in eine Datenbanktabelle einzufügen. Das abschliessende NULL-Zeichen wird automatisch hinzugefügt. Liefert TRUE im Erfolgsfall, sonst FALSE.

Anmerkung: Beachten Sie, dass eine Anwendung explizit die beiden Zeichen "\." auf der der letzten Zeile senden muss, um dem Server das Ende der Übertragung anzuzeigen.

Siehe auch pg_end_copy().

Beispiel 1. Schnelles Einfügen von Daten in eine Tabelle

<?php
    $conn = pg_pconnect ("dbname=foo");
    pg_query($conn, "create table bar (a int4, b char(16), d float8)");
    pg_query($conn, "copy bar from stdin");
    pg_put_line($conn, "3\thello world\t4.5\n");
    pg_put_line($conn, "4\tgoodbye world\t7.11\n");
    pg_put_line($conn, "\\.\n");
    pg_end_copy($conn);
?>

Zurück | Zum Anfang | Nach vorne
pg_port | Nach oben | pg_query


pg_query

(PHP 4 >= 4.2.0, PHP 5)

pg_query -- Führt eine Abfrage aus

Beschreibung

resource pg_query ( resource connection, string query)

pg_query() gibt eine Ergebniskennung zurück, falls die Abfrage ausgeführt werden konnte. Bei einem Fehlschlag, oder wenn connection keine gültige Verbindungskennung ist, wird FALSE zurückgegeben. Details über einen aufgetretenen Fehler können mit der Funktion pg_last_error() abgefragt werden, sofern die Verbindung geöffnet ist. pg_last_error() sendet einen SQL-Befehl an die mit connection adressierte Datenbank. connection muss eine gültige Verbindungskennung sein, die von pg_connect() oder pg_pconnect() zurückgegeben wurde. Der Rückgabewert dieser Funktion ist eine Ergebniskennung, die von anderen PostgreSQL-Funktionen, wie etwa pg_fetch_array() benutzt wird.

Anmerkung: connection ist ein optionaler Parameter für pg_query(). Falls connection nicht angegeben wird, wird die Verbindung benutzt, die zuletzt mit pg_connect() oder pg_pconnect() geöffnet wurde.

Obwohl der Parameter connection ausgelassen werden kann, wird dies nicht empfohlen, weil es zu schwer auffindbaren Fehlern in einem Skript führen kann.

Anmerkung: Diese Funktion ersetzt die Funktion pg_exec(). Aus Gründen der Kompatibilität wird pg_exec() weiterhin unterstützt, wir empfehlen aber den Benutzern, den neuen Namen zu verwenden.

Siehe auch pg_connect(),
pg_pconnect(),
pg_fetch_array(),
pg_fetch_object(),
pg_num_rows(),
und pg_affected_rows().

Zurück | Zum Anfang | Nach vorne
pg_put_line | Nach oben | pg_result_error


pg_result_error

(PHP 4 >= 4.2.0, PHP 5)

pg_result_error -- Gibt eine Fehlermeldung zu einer Ergebniskennung zurück

Beschreibung

string pg_result_error ( resource result)

pg_result_error() gibt die mit der Ergebniskennung result verknüpfte Fehlermeldung zurück. So kann der Benutzer qualifiziertere Fehlermeldungen erhalten als mit der Funktion pg_last_error().

Siehe auch pg_query(),
pg_send_query(),
pg_get_result(),
pg_last_error() und
pg_last_notice()

Zurück | Zum Anfang | Nach vorne
pg_query | Nach oben | pg_result_seek


pg_result_seek

(PHP 4 >= 4.3.0, PHP 5)

pg_result_seek -- Set internal row offset in result resource

Description

array pg_result_seek ( resource result, int offset)

pg_result_seek() set internal row offset in result resource. It returns FALSE, if there is error.

 See also pg_fetch_row(),
pg_fetch_assoc(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Zurück | Zum Anfang | Nach vorne
pg_result_error | Nach oben | pg_result_status


pg_result_status

(PHP 4 >= 4.2.0, PHP 5)

pg_result_status -- Gibt den Status eines Abfrageergebnisses zurück

Beschreibung

int pg_result_status ( resource result)

pg_result_status() gibt den Status einer Ergebniskennung zurück. Mögliche Rückgabewerte sind: PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_TO, PGSQL_COPY_FROM, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR und PGSQL_FATAL_ERROR.

Siehe auch pg_connection_status().

Zurück | Zum Anfang | Nach vorne
pg_result_seek | Nach oben | pg_select


pg_select

(PHP 4 >= 4.3.0, PHP 5)

pg_select -- Select records.

Description

array pg_select ( resource connection, string table_name, array assoc_array [, int options])

pg_select() selects records specified by assoc_array which has field=>value. For successful query, it returns array contains all records and fields that match the condition specified by assoc_array. If options is specified, pg_convert() is applied to assoc_array with specified option.

Beispiel 1. pg_select() example

<?php
    $db = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $rec = pg_select($db, 'post_log', $_POST);
    if ($rec) {
        echo "Records selected\n";
        var_dump($rec);
    } else {
        echo "User must have sent wrong inputs\n";
    }
?>

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

See also pg_convert()

Zurück | Zum Anfang | Nach vorne
pg_result_status | Nach oben | pg_send_query


pg_send_query

(PHP 4 >= 4.2.0, PHP 5)

pg_send_query -- Sendet eine asynchrone Abfrage

Beschreibung

bool pg_send_query ( resource connection, string query)

bool pg_send_query ( string query)

pg_send_query() sendet eine asynchrone Abfrage auf der Verbindung connection. Im Unterschied zu pg_query() können hier mehrere Abfragen an den Server gesendet werden und die Ergebnisse nacheinander mit pg_get_result() geholt werden. Die Ausführung eines Skripts wird während der Abarbeitung der Anfragen nicht blockiert. Benutzen Sie die Funktion pg_connection_busy() um zu prüfen, ob die Verbindung gerade benutzt wird (z.B. ob gerade eine Abfrage ausgeführt wird). Mit der Funktion pg_cancel_query() können Sie die Abfrage löschen.

Obwohl man mehrere Abfragen auf einmal an den Server senden kann, können die Abfragen nicht über eine gerade benutzte Verbindung geschickt werden. Falls die Abfragen gesendet werden, während die Verbindung benutzt wird, wird abgewartet, bis die letzte Abfrage fertig ist und alle Ergebnisse werden verworfen.

Siehe auch pg_query(),
pg_cancel_query(),
pg_get_result() und
pg_connection_busy()

Zurück | Zum Anfang | Nach vorne
pg_select | Nach oben | pg_set_client_encoding


pg_set_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_set_client_encoding -- Setzt die Kodierung des Clients

Beschreibung

int pg_set_client_encoding ( [resource connection, string encoding])

pg_set_client_encoding() setzt die Kodierung des Clients und gibt bei Erfolg 0 zurück, anderenfalls -1.

encoding ist die Kodierung des Clients und kann einen der Werte SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5 odeer WIN1250 haben. Die verfügbaren Kodierungen sind von Ihrer PostgreSQL-Version und der libpq abhängig. Schauen Sie im PostgreSQL-Manual, welche Kodierung Ihre Version unterstützt.

Anmerkung: Diese Funktion arbeitet ab PHP Version 4.0.3 oder höher und PostgreSQL 7.0 oder höher. Die unterstützten Kodierungen sind von der PostgreSQL-Version abhängig. Weitere Informationen entnehmen Sie dem PostgreSQL-Manual.

Diese Funktion ersetzt die Funktion pg_setclientencoding().

Siehe auch pg_client_encoding().

Zurück | Zum Anfang | Nach vorne
pg_send_query | Nach oben | pg_trace


pg_trace

(PHP 4 >= 4.0.1, PHP 5)

pg_trace -- Ermöglicht die Protokollierung einer Verbindung

Beschreibung

bool pg_trace ( string pathname [, string mode [, resource connection]])

pg_trace() ermöglicht die Protokollierung der frontend/backend Kommunikation in eine Debug-Datei, die durch den Pfadnamen pathname bestimmt wurde. Um die Ergebnisse ganz zu verstehen, sollte man sich mit den Interna des PostgreSQL-Kommunikationsprotokolls auskennen. Für diejenigen, die sich damit nicht auskennen kann es trotzdem hilfreich sein, um Fehler in Abfragen zu finden, die an den Server gesendet wurden. Beispielsweise können Sie das Kommando grep '^To backend' trace.log eingeben und schauen, welche Abfrage gerade an den PostgreSQL Server geschickt wurde. Weitere Informationen finden Sie im PostgreSQL-Manual.

pathname und mode sind dieselben, wie bei der Funktion fopen() (Standardwert für mode ist 'w'), connection bezeichnet die Verbindung, die protokolliert werden soll. Standardmäßig wird die zuletzt geöffnete Verbindung protokolliert.

Falls die Datei pathname zum protokollieren geöffnet werden konne, wird TRUE zurückgegeben, anderenfalls FALSE.

Siehe auch fopen() und pg_untrace().

Zurück | Zum Anfang | Nach vorne
pg_set_client_encoding | Nach oben | pg_tty


pg_tty

(PHP 3, PHP 4 , PHP 5)

pg_tty -- Gibt den tty-Namen zurück, der mit der Verbindung verknüpft ist.

Beschreibung

string pg_tty ( resource connection)

pg_tty() gibt den tty-Namen zurück, an den die serverseitigen Debug-Meldungen für die gegebene connection gesendet werden.

Zurück | Zum Anfang | Nach vorne
pg_trace | Nach oben | pg_unescape_bytea


pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5)

pg_unescape_bytea -- Unescape binary for bytea type

Description

string pg_unescape_bytea ( string data)

pg_unescape_bytea() unescapes string from bytea datatype. It returns unescaped string (binary).

Anmerkung: When you SELECT bytea type, PostgreSQL returns octal byte value prefixed by \ (e.g. \032). Users are supposed to convert back to binary format by yourself.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea type must be casted when you enable multi-byte support. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea); PostgreSQL 7.2.2 or later does not need cast. Exception is when client and backend character encoding does not match, there may be multi-byte stream error. User must cast to bytea to avoid this error.

See also pg_escape_bytea() and pg_escape_string()

Zurück | Zum Anfang | Nach vorne
pg_tty | Nach oben | pg_untrace


pg_untrace

(PHP 4 >= 4.0.1, PHP 5)

pg_untrace -- Beendet die Protokollierung der Verbindung

Beschreibung

bool pg_untrace ( [resource connection])

Beendet die Protokollierung der Verbindung die mit connection begonnen wurde. Der Parameter connection bezeichnet die Verbindung, die protokolliert wurde und ist standardmäßig auf die zuletzt geöffnete Verbindung gesetzt.

Die Funktion gibt immer TRUE zurück.

Siehe auch pg_trace().

Zurück | Zum Anfang | Nach vorne
pg_unescape_bytea | Nach oben | pg_update


pg_update

(PHP 4 >= 4.3.0, PHP 5)

pg_update -- Update table.

Description

mixed pg_update ( resource connection, string table_name, array data, array condition [, int options])

pg_update() updates records that matches condition with data. If options is specified, pg_convert() is applied to data with specified options.

Beispiel 1. pg_update() example

<?php
    $db = pg_connect('dbname=foo');
    $data = array('field1'=>'AA', 'field2'=>'BB');

    // This is safe, since $_POST is converted automatically
    $res = pg_update($db, 'post_log', $_POST, $data);
    if ($res) {
        echo "Data is updated: $res\n";
    } else {
        echo "User must have sent wrong inputs\n";
    }
?>

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

See also pg_convert().

Zurück | Zum Anfang | Nach vorne
pg_untrace | Nach oben | Process Control Functions


Process Control Functions

PHP Handbuch
Zurück Nach vorne

LXXXV. Process Control Functions

Einführung

Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a webserver environment and unexpected results may happen if any Process Control functions are used within a webserver environment.

This documentation is intended to explain the general usage of each of the Process Control functions. For detailed information about Unix process control you are encouraged to consult your systems documentation including fork(2), waitpid(2) and signal(2) or a comprehensive reference such as Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL now uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You use the declare() statement to specify the locations in your program where callbacks are allowed to occur. This allows you to minimize the overhead of handling asynchronous events. In the past, compiling PHP with pcntl enabled would always incur this overhead, whether or not your script actually used pcntl.

There is one adjustment that all pcntl scripts prior to PHP 4.3.0 must make for them to work which is to either to use declare() on a section where you wish to allow callbacks or to just enable it across the entire script using the new global syntax of declare().

Anmerkung: This extension is not available on Windows platforms.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Process Control support in PHP is not enabled by default. You have to compile the CGI or CLI version of PHP with --enable-pcntl configuration option when compiling PHP to enable Process Control support.

Anmerkung: Currently, this module will not function on non-Unix platforms (Windows).

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

The following list of signals are supported by the Process Control functions. Please see your systems signal(7) man page for details of the default behavior of these signals.

WNOHANG (integer)

WUNTRACED (integer)

SIG_IGN (integer)

SIG_DFL (integer)

SIG_ERR (integer)

SIGHUP (integer)

SIGINT (integer)

SIGQUIT (integer)

SIGILL (integer)

SIGTRAP (integer)

SIGABRT (integer)

SIGIOT (integer)

SIGBUS (integer)

SIGFPE (integer)

SIGKILL (integer)

SIGUSR1 (integer)

SIGSEGV (integer)

SIGUSR2 (integer)

SIGPIPE (integer)

SIGALRM (integer)

SIGTERM (integer)

SIGSTKFLT (integer)

SIGCLD (integer)

SIGCHLD (integer)

SIGCONT (integer)

SIGSTOP (integer)

SIGTSTP (integer)

SIGTTIN (integer)

SIGTTOU (integer)

SIGURG (integer)

SIGXCPU (integer)

SIGXFSZ (integer)

SIGVTALRM (integer)

SIGPROF (integer)

SIGWINCH (integer)

SIGPOLL (integer)

SIGIO (integer)

SIGPWR (integer)

SIGSYS (integer)

SIGBABY (integer)

Beispiele

This example forks off a daemon process with a signal handler.

Beispiel 1. Process Control Example

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     exit(); // we are the parent
} else {
     // we are the child
}

// detatch from the controlling terminal
if (!posix_setsid()) {
    die("could not detach from terminal");
}

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// loop forever performing tasks
while (1) {

    // do something interesting here

}

function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         default:
             // handle all other signals
     }

}

?>

Siehe auch

A look at the section about POSIX functions may be useful.

Inhaltsverzeichnis
pcntl_alarm -- Set an alarm clock for delivery of a signal
pcntl_exec -- Executes specified program in current process space
pcntl_fork -- Forks the currently running process
pcntl_getpriority -- Get the priority of any process
pcntl_setpriority -- Change the priority of any process
pcntl_signal -- Installs a signal handler
pcntl_wait -- Waits on or returns the status of a forked child
pcntl_waitpid -- Waits on or returns the status of a forked child
pcntl_wexitstatus -- Returns the return code of a terminated child
pcntl_wifexited -- Returns TRUE if status code represents a successful exit
pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal
pcntl_wifstopped -- Returns TRUE if child process is currently stopped
pcntl_wstopsig -- Returns the signal which caused the child to stop
pcntl_wtermsig -- Returns the signal which caused the child to terminate

Zurück | Zum Anfang | Nach vorne
pg_update | Nach oben | pcntl_alarm


pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5)

pcntl_alarm -- Set an alarm clock for delivery of a signal

Description

int pcntl_alarm ( int seconds)

The pcntl_alarm() function creates a timer that will send a SIGALRM signal to the process after seconds seconds. If seconds is zero, no new alarm is created. Any call to pcntl_alarm() will cancel any previously set alarm.

pcntl_alarm() will return the time in seconds that any previously scheduled alarm had remaining before it was to be delivered, or 0 if there was no previously scheduled alarm.

Zurück | Zum Anfang | Nach vorne
Process Control Functions | Nach oben | pcntl_exec


pcntl_exec

(PHP 4 >= 4.2.0, PHP 5)

pcntl_exec -- Executes specified program in current process space

Description

bool pcntl_exec ( string path [, array args [, array envs]])

pcntl_exec() executes the program path with arguments args. path must be the path to a binary executable or a script with a valid path pointing to an executable in the shebang ( #!/usr/local/bin/perl for example) as the first line. See your system's man execve(2) page for additional information.

args is an array of argument strings passed to the program.

envs is an array of strings which are passed as environment to the program. The array is in the format of name => value, the key being the name of the environmental variable and the value being the value of that variable.

pcntl_exec() returns FALSE on error and does not return on success.

Zurück | Zum Anfang | Nach vorne
pcntl_alarm | Nach oben | pcntl_fork


pcntl_fork

(PHP 4 >= 4.1.0, PHP 5)

pcntl_fork -- Forks the currently running process

Description

int pcntl_fork ( void )

The pcntl_fork() function creates a child process that differs from the parent process only in its PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system.

On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised.

Beispiel 1. pcntl_fork() example

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     // we are the parent
} else {
     // we are the child
}

?>

See also pcntl_waitpid() and pcntl_signal().

Zurück | Zum Anfang | Nach vorne
pcntl_exec | Nach oben | pcntl_getpriority


pcntl_getpriority

(PHP 5)

pcntl_getpriority -- Get the priority of any process

Description

int pcntl_getpriority ( [int pid])

pcntl_getpriority() gets the priority of pid. If pid is not specified, the pid of the current process is used. Because priority levels can differ between system types and kernel versions, please see your system's getpriority(2) man page for specific details.

pcntl_getpriority() returns the priority of the process or FALSE on error. A lower numerical value causes more favorable scheduling.

Warnung

Diese Funktion kann das Boolsche FALSE zurückliefern, kann aber auch einen nicht-Boolschen Wert zurückgeben, der von einem einfachen if-Statement als FALSE ausgewertet wird, wie zum Beispiel 0 oder "". Weitere Informationen entnehmen Sie bitte dem Abschnitt über Boolsche Typen. Benutzen Sie deshalb bitte den === Operator um den Rückgabewert dieser Funktion zu überprüfen.

Zurück | Zum Anfang | Nach vorne
pcntl_fork | Nach oben | pcntl_setpriority


pcntl_setpriority

(PHP 5)

pcntl_setpriority -- Change the priority of any process

Description

bool pcntl_setpriority ( int priority [, int pid])

pcntl_setpriority() sets the priority of pid to priority. If pid is not specified, the pid of the current process is used.

priority is generally a value in the range -20 to 20. The default priority is 0 while a lower numerical value causes more favorable scheduling. Because priority levels can differ between system types and kernel versions, please see your system's setpriority(2) man page for specific details.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
pcntl_getpriority | Nach oben | pcntl_signal


pcntl_signal

(PHP 4 >= 4.1.0, PHP 5)

pcntl_signal -- Installs a signal handler

Description

bool pcntl_signal ( int signo, callback handle [, bool restart_syscalls])

The pcntl_signal() function installs a new signal handler for the signal indicated by signo. The signal handler is set to handler which may be the name of a user created function, or either of the two global constants SIG_IGN or SIG_DFL. The optional restart_syscalls specifies whether system call restarting should be used when this signal arrives and defaults to TRUE.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: The optional restart_syscalls parameter became available in PHP 4.3.0.

Anmerkung: The ability to use an object method as a callback became available in PHP 4.3.0. Note that when you set a handler to an object method, that object's reference count is increased which makes it persist until you either change the handler to something else, or your script ends.

Beispiel 1. pcntl_signal() example

<?php
// tick use required as of PHP 4.3.0
declare(ticks = 1);

// signal handler function
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         case SIGUSR1:
             echo "Caught SIGUSR1...\n";
             break;
         default:
             // handle all other signals
     }

}

echo "Installing signal handler...\n";

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// or use an object, available as of PHP 4.3.0
// pcntl_signal(SIGUSR1, array($obj, "do_something");

echo"Generating signal SIGTERM to self...\n";

// send SIGUSR1 to current process id
posix_kill(posix_getpid(), SIGUSR1);

echo "Done\n"

?>

Anmerkung: As of PHP 4.3.0 PCNTL uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You must use the declare() statement to specify the locations in your program where callbacks are allowed to occur for the signal handler to function properly (as used in the above example).

See also pcntl_fork() and pcntl_waitpid().

Zurück | Zum Anfang | Nach vorne
pcntl_setpriority | Nach oben | pcntl_wait


pcntl_wait

(PHP 5)

pcntl_wait -- Waits on or returns the status of a forked child

Description

int pcntl_wait ( int &status [, int options])

The wait function suspends execution of the current process until a child has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's wait(2) man page for specific details as to how wait works on your system.

pcntl_wait() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was provided as an option (on wait3-available systems) and no child was available.

If wait3 is available on your system (mostly BSD-style systems), you can provide the optional options parameter. If this parameter is not provided, wait will be used for the system call. If wait3 is not available, providing a value for options will have no effect. The value of options is the value of zero or more of the following two constants OR'ed together:

Tabelle 1. Possible values for options if wait3 is available

WNOHANG | Return immediately if no child has exited.
WUNTRACED | Return for children which are stopped, and whose status has not been reported.

pcntl_wait() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

Anmerkung: This function is equivalent to calling pcntl_waitpid() with a -1 pid and no options.

See also pcntl_fork(),
pcntl_signal(),
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig(),
pcntl_wstopsig() and
pcntl_waitpid().

Zurück | Zum Anfang | Nach vorne
pcntl_signal | Nach oben | pcntl_waitpid


pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5)

pcntl_waitpid -- Waits on or returns the status of a forked child

Description

int pcntl_waitpid ( int pid, int &status, int options)

The pcntl_waitpid() function suspends execution of the current process until a child as specified by the pid argument has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child as requested by pid has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's waitpid(2) man page for specific details as to how waitpid works on your system.

pcntl_waitpid() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was used and no child was available

The value of pid can be one of the following:

Tabelle 1. possible values for pid

< -1 | wait for any child process whose process group ID is equal to the absolute value of pid.
-1 | wait for any child process; this is the same behaviour that the wait function exhibits.
0 | wait for any child process whose process group ID is equal to that of the calling process.
> 0 | wait for the child whose process ID is equal to the value of pid.

Anmerkung: Specifying -1 as the pid is equivalent to the functionality pcntl_wait() provides (minus options).

pcntl_waitpid() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

The value of options is the value of zero or more of the following two global constants OR'ed together:

Tabelle 2. possible values for options

WNOHANG | return immediately if no child has exited.
WUNTRACED | return for children which are stopped, and whose status has not been reported.

See also pcntl_fork(),
pcntl_signal(),
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

Zurück | Zum Anfang | Nach vorne
pcntl_wait | Nach oben | pcntl_wexitstatus


pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wexitstatus -- Returns the return code of a terminated child

Description

int pcntl_wexitstatus ( int status)

Returns the return code of a terminated child. This function is only useful if pcntl_wifexited() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifexited().

Zurück | Zum Anfang | Nach vorne
pcntl_waitpid | Nach oben | pcntl_wifexited


pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifexited -- Returns TRUE if status code represents a successful exit

Description

int pcntl_wifexited ( int status)

Returns TRUE if the child status code represents a successful exit.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wexitstatus().

Zurück | Zum Anfang | Nach vorne
pcntl_wexitstatus | Nach oben | pcntl_wifsignaled


pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal

Description

int pcntl_wifsignaled ( int status)

Returns TRUE if the child process exited because of a signal which was not caught.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_signal().

Zurück | Zum Anfang | Nach vorne
pcntl_wifexited | Nach oben | pcntl_wifstopped


pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifstopped -- Returns TRUE if child process is currently stopped

Description

int pcntl_wifstopped ( int status)

Returns TRUE if the child process which caused the return is currently stopped; this is only possible if the call to pcntl_waitpid() was done using the option WUNTRACED.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid().

Zurück | Zum Anfang | Nach vorne
pcntl_wifsignaled | Nach oben | pcntl_wstopsig


pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wstopsig -- Returns the signal which caused the child to stop

Description

int pcntl_wstopsig ( int status)

Returns the number of the signal which caused the child to stop. This function is only useful if pcntl_wifstopped() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifstopped().

Zurück | Zum Anfang | Nach vorne
pcntl_wifstopped | Nach oben | pcntl_wtermsig


pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wtermsig -- Returns the signal which caused the child to terminate

Description

int pcntl_wtermsig ( int status)

Returns the number of the signal that caused the child process to terminate. This function is only useful if pcntl_wifsignaled() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid(),
pcntl_signal() and
pcntl_wifsignaled().

Zurück | Zum Anfang | Nach vorne
pcntl_wstopsig | Nach oben | Funktionen zur Programmausführung


Funktionen zur Programmausführung

PHP Handbuch
Zurück Nach vorne

LXXXVI. Funktionen zur Programmausführung

Diese Funktionen stellen Mittel und Wege zur Verfügung, Befehle und externe Programme auf dem System selbst auszuführen und diese Ausführung sicher durchzuführen. Diese Funktionen stehen in enger Beziehung zum Backtick-Operator.

Inhaltsverzeichnis
escapeshellarg -- Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können
escapeshellcmd -- Maskiert Shell-Metazeichen
exec -- Führt ein externes Programm aus
passthru -- Führt ein externes Programm aus und zeigt dessen Ausgabe an
proc_close -- Close a process opened by proc_open() and return the exit code of that process.
proc_get_status -- Get information about a process opened by proc_open()
proc_nice -- Change the priority of the current process
proc_open -- Execute a command and open file pointers for input/output
proc_terminate -- kills a process opened by proc_open
shell_exec -- Execute command via shell and return the complete output as a string
system -- Führt ein externes Programm aus und zeigt dessen Ausgabe an.

Zurück | Zum Anfang | Nach vorne
pcntl_wtermsig | Nach oben | escapeshellarg


escapeshellarg

(PHP 4 >= 4.0.3, PHP 5)

escapeshellarg -- Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können

Beschreibung

string escapeshellarg ( string arg)

escapeshellarg() fügt einfache Anführungszeichen um eine Zeichenkette herum ein und maskiert alle existierenden einfachen Anführungszeichen innerhalb der Zeichenkette. Dieses erlaubt es Ihnen, eine Zeichenkette direkt an eine Shell-Funktion zu übergeben, so dass diese als eine einzige, sichere Anweisung ausgeführt werden kann. Die Funktion sollte verwendet werden, um Parameter, die aus Benutzereingaben resultieren, an Shell-Funktionen zu übergeben. Die Shell-Funktionen umfassen exec(), system() und den backtick operator. Beispiel:

system("ls ".escapeshellarg($dir));

Siehe auch:exec(), popen(), system() und den Backtick Operator.

Zurück | Zum Anfang | Nach vorne
Funktionen zur Programmausführung | Nach oben | escapeshellcmd


escapeshellcmd

(PHP 3, PHP 4 , PHP 5)

escapeshellcmd -- Maskiert Shell-Metazeichen

Beschreibung

string escapeshellcmd ( string befehl)

escapeshellcmd() maskiert alle möglichen Zeichen in einer Zeichenkette, die dazu benutzt werden könnten, um einen Shellbefehl zur Durchführung von willkürlichen Befehlen zu veranlassen. Diese Funktion sollte verwendet werden um sicherzustellen, dass alle Daten aus einer Benutzereingabe maskiert werden bevor dieses Daten zu einer der Funktionen exec(), system() oder dem Backtick Operator übergeben werden. Beispiel:

$e = escapeshellcmd($userinput);
system("echo $e"); // hier ist es egal, ob $e Leerstellen hat
$f = escapeshellcmd($filename);
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\""); // hier ist es nicht egal

Siehe auch: escapeshellarg(),
exec(), popen(),
system() und den Backtick Operator.

Zurück | Zum Anfang | Nach vorne
escapeshellarg | Nach oben | exec


exec

(PHP 3, PHP 4 , PHP 5)

exec -- Führt ein externes Programm aus

Beschreibung

string exec ( string befehl [, array ausgabe [, int return_var]])

exec() führt ein gegebenen Befehl aus, ohne eine Ausgabe zu erzeugen. Die Funktion gibt lediglich die letzte Zeile aus dem Befehlsergebnis zurück. Wenn Sie auf die direkte Rückgabe/ Ausgabe eines Befehls angewiesen sind, dann benutzen Sie stattdessen die Funktion passthru().

Ist der Parameter array angegeben, wird dieses mit jeder Zeile des Befehlsausgabe gefüllt. Beachten Sie, dass wenn das Array schon Elemente enthält, die Funktion exec() die Ausgabe an das Array anhängt. Wenn Sie dieses nicht wünschen, rufen Sie die Funktion unset () für das Array auf, bevor Sie es als Parameter der Funktion exec() übergeben.

Ist der Parameter return_var angegeben, so wird der Rückgabestatus des ausgeführten Befehls in diese Variable geschrieben.

Beachten Sie, dass wenn Sie Benutzereingaben an diese Funktion übergeben, diese mit escapeshellcmd() behandelt, um sicherzustellen, dass niemand mit willkürlichen Befehlen Ihrem System Schaden zufügen kann.

Beachten Sie auch, dass wenn Sie ein Programm mit dieser Funktion starten und Sie es im Hintergrund laufen lassen möchten, Sie sicherstellen müssen, dass die Ausgabe des Programms in eine Datei oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP solange laufen, bis das Programm beendet ist.

Siehe auch: system(),
passthru(), popen(),
escapeshellcmd() und den Backtick Operator.

Zurück | Zum Anfang | Nach vorne
escapeshellcmd | Nach oben | passthru


passthru

(PHP 3, PHP 4 , PHP 5)

passthru -- Führt ein externes Programm aus und zeigt dessen Ausgabe an

Beschreibung

void passthru ( string befehl [, int return_var])

Die Funktion passthru() ähnelt der Funktion exec(), da sie ebenfalls einen Befehl ausführt. Ist der Parameter return_var angegeben, wird der Rückgabestatus des UNIX-Befehls hier abgelegt. Sie sollten diese Funktion jedoch an Stelle von exec() bzw. system() benutzen, wenn es sich bei der Ausgabe des Unix-Befehls um binäre Daten handelt, welche direkt zum Browser zurückgeschickt werden müssen. Ein praktisches Beispiel hierfür ist die Ausführung des pbmplus Utility, welches direkt einen Bildstream ausgibt. Wenn Sie den Content-Type auf image/gif setzen, und dann das pbmplus Program aufrufen um ein GIF zu erzeugen, können Sie auf diesem Weg mittels PHP direkt ein Bild erzeugen und es ausgeben.

Beachten Sie, dass wenn Sie ein Programm mit dieser Funktion starten und Sie es im Hintergrund laufen lassen möchten, Sie sicherstellen müssen, dass die Ausgabe des Programms in eine Datei oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP solange laufen, bis das Programm beendet ist.

Siehe auch: exec(),
system(), popen(),
escapeshellcmd() und den Backtick Operator.

Zurück | Zum Anfang | Nach vorne
exec | Nach oben | proc_close


proc_close

(PHP 4 >= 4.3.0, PHP 5)

proc_close -- Close a process opened by proc_open() and return the exit code of that process.

Description

int proc_close ( resource process)

proc_close() is similar to pclose() except that it only works on processes opened by proc_open(). proc_close() waits for the process to terminate, and returns its exit code. If you have open pipes to that process, you should fclose() them prior to calling this function in order to avoid a deadlock - the child process may not be able to exit while the pipes are open.

Zurück | Zum Anfang | Nach vorne
passthru | Nach oben | proc_get_status


proc_get_status

(PHP 5)

proc_get_status -- Get information about a process opened by proc_open()

Description

array proc_get_status ( resource process)

proc_get_status() fetches data about a process opened using proc_open(). The collected information is returned in an array containing the following elements:

element | type | description
command | string | The command string that was passed to proc_open()
pid | int | process id
running | bool | TRUE if the process is still running, FALSE if it has terminated
signaled | bool | TRUE if the child process has been terminated by an uncaught signal. Always set to FALSE on Windows.
stopped | bool | TRUE if the child process has been stopped by a signal. Always set to FALSE on Windows.
exitcode | int | the exit code returned by the process (which is only meaningful if running is FALSE)
termsig | int | the number of the signal that caused the child process to terminate its execution (only meaningful if signaled is TRUE)
stopsig | int | the number of the signal that caused the child process to stop its execution (only meaningful if stopped is TRUE)

See also proc_open().

Zurück | Zum Anfang | Nach vorne
proc_close | Nach oben | proc_nice


proc_nice

(PHP 5)

proc_nice -- Change the priority of the current process

Description

bool proc_nice ( int priority)

proc_nice() changes the priority of the current process. If an error occurs, like the user lacks permission to change the priority, an error of level E_WARNING is generated and FALSE is returned. Otherwise, TRUE is returned.

Anmerkung: proc_nice() will only exist if your system has 'nice' capabilities. 'nice' conforms to: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. This means that proc_nice() is not available on Windows.

proc_nice() is not related to proc_open() and its associated functions in any way.

Zurück | Zum Anfang | Nach vorne
proc_get_status | Nach oben | proc_open


proc_open

(PHP 4 >= 4.3.0, PHP 5)

proc_open -- Execute a command and open file pointers for input/output

Description

resource proc_open ( string cmd, array descriptorspec, array pipes)

proc_open() is similar to popen() but provides a much greater degree of control over the program execution. cmd is the command to be executed by the shell. descriptorspec is an indexed array where the key represents the descriptor number and the value represents how PHP will pass that descriptor to the child process. pipes will be set to an indexed array of file pointers that correspond to PHP's end of any pipes that are created. The return value is a resource representing the process; you should free it using proc_close() when you are finished with it.

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);
$process = proc_open("php", $descriptorspec, $pipes);
if (is_resource($process)) {
    // $pipes now looks like this:
    // 0 => writeable handle connected to child stdin
    // 1 => readable handle connected to child stdout
    // Any error output will be appended to /tmp/error-output.txt

    fwrite($pipes[0], "<?php echo \"Hello World!\"; ?>");
    fclose($pipes[0]);

    while (!feof($pipes[1])) {
        echo fgets($pipes[1], 1024);
    }
    fclose($pipes[1]);
    // It is important that you close any pipes before calling
    // proc_close in order to avoid a deadlock
    $return_value = proc_close($process);

    echo "command returned $return_value\n";
}
?>

PHP 5RC2 introduces pty support for systems with Unix98 ptys. This allows your script to interact with applications that expect to be talking to a terminal. A pty works like a pipe, but is bi-directional, so there is no need to specify a read/write mode. The example below shows how to use a pty; note that you don't have to have all descriptors talking to a pty. Also note that only one pty is created, even though pty is specified 3 times. In a future version of PHP, it might be possible to do more than just read and write to the pty.

<?php
// Create a psuedo terminal for the child process
$descriptorspec = array(
   0 => array("pty"),
   1 => array("pty"),
   2 => array("pty")
);
$process = proc_open("cvs -d:pserver:cvsread@cvs.php.net:/repository login", $descriptorspec, $pipes);
if (is_resource($process)) {
   // work with it here
}
?>

The file descriptor numbers in descriptorspec are not limited to 0, 1 and 2 - you may specify any valid file descriptor number and it will be passed to the child process. This allows your script to interoperate with other scripts that run as "co-processes". In particular, this is useful for passing passphrases to programs like PGP, GPG and openssl in a more secure manner. It is also useful for reading status information provided by those programs on auxiliary file descriptors.

Anmerkung: Windows compatibility: Descriptors beyond 2 (stderr) are made available to the child process as inheritable handles, but since the Windows architecture does not associate file descriptor numbers with low-level handles, the child process does not (yet) have a means of accessing those handles. Stdin, stdout and stderr work as expected.

Anmerkung: If you only need a uni-directional (one-way) process pipe, use popen() instead, as it is much easier to use.

See also stream_select(), exec(),
system(),
passthru(), popen(),
escapeshellcmd(), and the backtick operator.

Zurück | Zum Anfang | Nach vorne
proc_nice | Nach oben | proc_terminate


proc_terminate

(PHP 5)

proc_terminate -- kills a process opened by proc_open

Description

int proc_terminate ( resource process [, int signal])

Signals a process (created using proc_open()) that it should terminate. proc_terminate() returns immediately and does not wait for the process to terminate.

The optional signal is only useful on POSIX operating systems; you may specify a signal to send to the process using the kill(2) system call. The default is SIGTERM.

proc_terminate() allows you terminate the process and continue with other tasks. You may poll the process (to see if it has stopped yet) by using the proc_get_status() function.

See also proc_open(), proc_close(), and proc_get_status().

Zurück | Zum Anfang | Nach vorne
proc_open | Nach oben | shell_exec


shell_exec

(PHP 4 , PHP 5)

shell_exec -- Execute command via shell and return the complete output as a string

Description

string shell_exec ( string cmd)

This function is identical to the backtick operator.

Anmerkung: Diese Funktion ist bei Verwendung von Safe Mode deaktiviert.

Zurück | Zum Anfang | Nach vorne
proc_terminate | Nach oben | system


system

(PHP 3, PHP 4 , PHP 5)

system -- Führt ein externes Programm aus und zeigt dessen Ausgabe an.

Beschreibung

string system ( string befehl [, int return_var])

Die Funktion system() ähnelt der C Version der Funktion sehr, indem es einen übergebenen Befehl ausführt und dessen Ausgabe anzeigt. Wir als zweiter Parameter der Funktion eine Variable übergeben, so wird der Rückgabestatus des Befehls in diese geschrieben.

Beachten Sie, dass wenn Sie Benutzereingaben an diese Funktion übergeben, diese mit escapeshellcmd() behandelt, um sicherzustellen, dass niemand mit willkürlichen Befehlen Ihrem System Schaden zufügen kann.

Beachten Sie auch, dass wenn Sie ein Programm mit dieser Funktion starten und Sie es im Hintergrund laufen lassen möchten, Sie sicherstellen müssen, dass die Ausgabe des Programms in eine Datei oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP solange laufen, bis das Programm beendet ist.

Die system() Funktionsaufrufe versuchen übrigens automatisch nach jeder Ausgabezeile den Ausgabebuffer des Webservers zu flushen, wenn PHP als Servermodul läuft.

Gibt die letzte Zeile der Befehlsausgabe bei Erfolg, andernfalls FALSE zurück.

Wenn Sie auf die direkte Rückgabe/ Ausgabe eines Befehls angewiesen sind, dann benutzen Sie stattdessen die Funktion passthru().

Siehe auch: exec(),
passthru(), popen(),
escapeshellcmd() und den Backtick Operator.

Zurück | Zum Anfang | Nach vorne
shell_exec | Nach oben | Printer Functions


Printer Functions

PHP Handbuch
Zurück Nach vorne

LXXXVII. Printer Functions

Einführung

These functions are only available under Windows 9.x, ME, NT4 and 2000. They have been added in PHP 4.0.4.

Installation

Add the line extension=php_printer.dll to your php.ini file.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Printer configuration options

Name | Default | Changeable
printer.default_printer | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Inhaltsverzeichnis
printer_abort -- Deletes the printer's spool file
printer_close -- Close an open printer connection
printer_create_brush -- Create a new brush
printer_create_dc -- Create a new device context
printer_create_font -- Create a new font
printer_create_pen -- Create a new pen
printer_delete_brush -- Delete a brush
printer_delete_dc -- Delete a device context
printer_delete_font -- Delete a font
printer_delete_pen -- Delete a pen
printer_draw_bmp -- Draw a bmp
printer_draw_chord -- Draw a chord
printer_draw_elipse -- Draw an ellipse
printer_draw_line -- Draw a line
printer_draw_pie -- Draw a pie
printer_draw_rectangle -- Draw a rectangle
printer_draw_roundrect -- Draw a rectangle with rounded corners
printer_draw_text -- Draw text
printer_end_doc -- Close document
printer_end_page -- Close active page
printer_get_option -- Retrieve printer configuration data
printer_list -- Return an array of printers attached to the server
printer_logical_fontheight -- Get logical font height
printer_open -- Open connection to a printer
printer_select_brush -- Select a brush
printer_select_font -- Select a font
printer_select_pen -- Select a pen
printer_set_option -- Configure the printer connection
printer_start_doc -- Start a new document
printer_start_page -- Start a new page
printer_write -- Write data to the printer

Zurück | Zum Anfang | Nach vorne
system | Nach oben | printer_abort


printer_abort

(no version information, might be only in CVS)

printer_abort -- Deletes the printer's spool file

Description

void printer_abort ( resource handle)

This function deletes the printers spool file.

handle must be a valid handle to a printer.

Beispiel 1. printer_abort() example

<?php
$handle = printer_open();
printer_abort($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
Printer Functions | Nach oben | printer_close


printer_close

(no version information, might be only in CVS)

printer_close -- Close an open printer connection

Description

void printer_close ( resource handle)

This function closes the printer connection. printer_close() also closes the active device context.

handle must be a valid handle to a printer.

Beispiel 1. printer_close() example

<?php
$handle = printer_open();
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_abort | Nach oben | printer_create_brush


printer_create_brush

(no version information, might be only in CVS)

printer_create_brush -- Create a new brush

Description

mixed printer_create_brush ( int style, string color)

The function creates a new brush and returns a handle to it. A brush is used to fill shapes. For an example see printer_select_brush(). color must be a color in RGB hex format, i.e. "000000" for black, style must be one of the following constants:

  • PRINTER_BRUSH_SOLID: creates a brush with a solid color.

  • PRINTER_BRUSH_DIAGONAL: creates a brush with a 45-degree upward left-to-right hatch ( / ).

  • PRINTER_BRUSH_CROSS: creates a brush with a cross hatch ( + ).

  • PRINTER_BRUSH_DIAGCROSS: creates a brush with a 45 cross hatch ( x ).

  • PRINTER_BRUSH_FDIAGONAL: creates a brush with a 45-degree downward left-to-right hatch ( \ ).

  • PRINTER_BRUSH_HORIZONTAL: creates a brush with a horizontal hatch ( - ).

  • PRINTER_BRUSH_VERTICAL: creates a brush with a vertical hatch ( | ).

  • PRINTER_BRUSH_CUSTOM: creates a custom brush from an BMP file. The second parameter is used to specify the BMP instead of the RGB color code.

Zurück | Zum Anfang | Nach vorne
printer_close | Nach oben | printer_create_dc


printer_create_dc

(no version information, might be only in CVS)

printer_create_dc -- Create a new device context

Description

void printer_create_dc ( resource handle)

The function creates a new device context. A device context is used to customize the graphic objects of the document. handle must be a valid handle to a printer.

Beispiel 1. printer_create_dc() example

<?php
$handle = printer_open();
printer_start_doc($handle);
printer_start_page($handle);

printer_create_dc($handle);
/* do some stuff with the dc */
printer_set_option($handle, PRINTER_TEXT_COLOR, "333333");
printer_draw_text($handle, 1, 1, "text");
printer_delete_dc($handle);

/* create another dc */
printer_create_dc($handle);
printer_set_option($handle, PRINTER_TEXT_COLOR, "000000");
printer_draw_text($handle, 1, 1, "text");
/* do some stuff with the dc */

printer_delete_dc($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_create_brush | Nach oben | printer_create_font


printer_create_font

(no version information, might be only in CVS)

printer_create_font -- Create a new font

Description

mixed printer_create_font ( string face, int height, int width, int font_weight, bool italic, bool underline, bool strikeout, int orientaton)

The function creates a new font and returns a handle to it. A font is used to draw text. For an example see printer_select_font(). face must be a string specifying the font face. height specifies the font height, and width the font width. The font_weight specifies the font weight (400 is normal), and can be one of the following predefined constants.

  • PRINTER_FW_THIN: sets the font weight to thin (100).

  • PRINTER_FW_ULTRALIGHT: sets the font weight to ultra light (200).

  • PRINTER_FW_LIGHT: sets the font weight to light (300).

  • PRINTER_FW_NORMAL: sets the font weight to normal (400).

  • PRINTER_FW_MEDIUM: sets the font weight to medium (500).

  • PRINTER_FW_BOLD: sets the font weight to bold (700).

  • PRINTER_FW_ULTRABOLD: sets the font weight to ultra bold (800).

  • PRINTER_FW_HEAVY: sets the font weight to heavy (900).

italic can be TRUE or FALSE, and sets whether the font should be italic.

underline can be TRUE or FALSE, and sets whether the font should be underlined.

strikeout can be TRUE or FALSE, and sets whether the font should be stroked out.

orientation specifies a rotation. For an example see printer_select_font().

Zurück | Zum Anfang | Nach vorne
printer_create_dc | Nach oben | printer_create_pen


printer_create_pen

(no version information, might be only in CVS)

printer_create_pen -- Create a new pen

Description

mixed printer_create_pen ( int style, int width, string color)

The function creates a new pen and returns a handle to it. A pen is used to draw lines and curves. For an example see printer_select_pen(). color must be a color in RGB hex format, i.e. "000000" for black, width specifies the width of the pen whereas style must be one of the following constants:

  • PRINTER_PEN_SOLID: creates a solid pen.

  • PRINTER_PEN_DASH: creates a dashed pen.

  • PRINTER_PEN_DOT: creates a dotted pen.

  • PRINTER_PEN_DASHDOT: creates a pen with dashes and dots.

  • PRINTER_PEN_DASHDOTDOT: creates a pen with dashes and double dots.

  • PRINTER_PEN_INVISIBLE: creates an invisible pen.

Zurück | Zum Anfang | Nach vorne
printer_create_font | Nach oben | printer_delete_brush


printer_delete_brush

(no version information, might be only in CVS)

printer_delete_brush -- Delete a brush

Description

bool printer_delete_brush ( resource handle)

The function deletes the selected brush. For an example see printer_select_brush(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. handle must be a valid handle to a brush.

Zurück | Zum Anfang | Nach vorne
printer_create_pen | Nach oben | printer_delete_dc


printer_delete_dc

(no version information, might be only in CVS)

printer_delete_dc -- Delete a device context

Description

bool printer_delete_dc ( resource handle)

The function deletes the device context. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. For an example see printer_create_dc(). handle must be a valid handle to a printer.

Zurück | Zum Anfang | Nach vorne
printer_delete_brush | Nach oben | printer_delete_font


printer_delete_font

(no version information, might be only in CVS)

printer_delete_font -- Delete a font

Description

bool printer_delete_font ( resource handle)

The function deletes the selected font. For an example see printer_select_font(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. handle must be a valid handle to a font.

Zurück | Zum Anfang | Nach vorne
printer_delete_dc | Nach oben | printer_delete_pen


printer_delete_pen

(no version information, might be only in CVS)

printer_delete_pen -- Delete a pen

Description

bool printer_delete_pen ( resource handle)

The function deletes the selected pen. For an example see printer_select_pen(). Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. handle must be a valid handle to a pen.

Zurück | Zum Anfang | Nach vorne
printer_delete_font | Nach oben | printer_draw_bmp


printer_draw_bmp

(no version information, might be only in CVS)

printer_draw_bmp -- Draw a bmp

Description

void printer_draw_bmp ( resource handle, string filename, int x, int y)

The function simply draws an bmp the bitmap filename at position x, y. handle must be a valid handle to a printer.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. printer_draw_bmp() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_draw_bmp($handle, "c:\\image.bmp", 1, 1);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_delete_pen | Nach oben | printer_draw_chord


printer_draw_chord

(no version information, might be only in CVS)

printer_draw_chord -- Draw a chord

Description

void printer_draw_chord ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad_x, int rad_y, int rad_x1, int rad_y1)

The function simply draws an chord. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad_x is x coordinate of the radial defining the beginning of the chord.

rad_y is y coordinate of the radial defining the beginning of the chord.

rad_x1 is x coordinate of the radial defining the end of the chord.

rad_y1 is y coordinate of the radial defining the end of the chord.

Beispiel 1. printer_draw_chord() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_chord($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_draw_bmp | Nach oben | printer_draw_elipse


printer_draw_elipse

(no version information, might be only in CVS)

printer_draw_elipse -- Draw an ellipse

Description

void printer_draw_elipse ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y)

The function simply draws an ellipse. handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the ellipse.

ul_y is the upper left y coordinate of the ellipse.

lr_x is the lower right x coordinate of the ellipse.

lr_y is the lower right y coordinate of the ellipse.

Beispiel 1. printer_draw_elipse() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_elipse($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_draw_chord | Nach oben | printer_draw_line


printer_draw_line

(no version information, might be only in CVS)

printer_draw_line -- Draw a line

Description

void printer_draw_line ( resource printer_handle, int from_x, int from_y, int to_x, int to_y)

The function simply draws a line from position from_x, from_y to position to_x, to_y using the selected pen. printer_handle must be a valid handle to a printer.

Beispiel 1. printer_draw_line() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "000000");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 10, 1000, 10);
printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_draw_elipse | Nach oben | printer_draw_pie


printer_draw_pie

(no version information, might be only in CVS)

printer_draw_pie -- Draw a pie

Description

void printer_draw_pie ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad1_x, int rad1_y, int rad2_x, int rad2_y)

The function simply draws an pie. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad1_x is x coordinate of the first radial's ending.

rad1_y is y coordinate of the first radial's ending.

rad2_x is x coordinate of the second radial's ending.

rad2_y is y coordinate of the second radial's ending.

Beispiel 1. printer_draw_pie() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_pie($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_draw_line | Nach oben | printer_draw_rectangle


printer_draw_rectangle

(no version information, might be only in CVS)

printer_draw_rectangle -- Draw a rectangle

Description

void printer_draw_rectangle ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y)

The function simply draws a rectangle.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

Beispiel 1. printer_draw_rectangle() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_draw_pie | Nach oben | printer_draw_roundrect


printer_draw_roundrect

(no version information, might be only in CVS)

printer_draw_roundrect -- Draw a rectangle with rounded corners

Description

void printer_draw_roundrect ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y, int width, int height)

The function simply draws a rectangle with rounded corners.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

width is the width of the ellipse.

height is the height of the ellipse.

Beispiel 1. printer_draw_roundrect() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_roundrect($handle, 1, 1, 500, 500, 200, 200);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_draw_rectangle | Nach oben | printer_draw_text


printer_draw_text

(no version information, might be only in CVS)

printer_draw_text -- Draw text

Description

void printer_draw_text ( resource printer_handle, string text, int x, int y)

The function simply draws text at position x, y using the selected font. printer_handle must be a valid handle to a printer.

Beispiel 1. printer_draw_text() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 72, 48, 400, false, false, false, 0);
printer_select_font($handle, $font);
printer_draw_text($handle, "test", 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_draw_roundrect | Nach oben | printer_end_doc


printer_end_doc

(no version information, might be only in CVS)

printer_end_doc -- Close document

Description

bool printer_end_doc ( resource handle)

Closes a new document in the printer spooler. The document is now ready for printing. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Zurück | Zum Anfang | Nach vorne
printer_draw_text | Nach oben | printer_end_page


printer_end_page

(no version information, might be only in CVS)

printer_end_page -- Close active page

Description

bool printer_end_page ( resource handle)

The function closes the active page in the active document. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Zurück | Zum Anfang | Nach vorne
printer_end_doc | Nach oben | printer_get_option


printer_get_option

(no version information, might be only in CVS)

printer_get_option -- Retrieve printer configuration data

Description

mixed printer_get_option ( resource handle, string option)

The function retrieves the configuration setting of option. handle must be a valid handle to a printer. Take a look at printer_set_option() for the settings that can be retrieved, additionally the following settings can be retrieved:

  • PRINTER_DEVICENAME returns the devicename of the printer.

  • PRINTER_DRIVERVERSION returns the printer driver version.

Beispiel 1. printer_get_option() example

<?php
$handle = printer_open();
echo printer_get_option($handle, PRINTER_DRIVERVERSION);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_end_page | Nach oben | printer_list


printer_list

(no version information, might be only in CVS)

printer_list -- Return an array of printers attached to the server

Description

array printer_list ( int enumtype [, string name [, int level]])

The function enumerates available printers and their capabilities. level sets the level of information request. Can be 1,2,4 or 5. enumtype must be one of the following predefined constants:

  • PRINTER_ENUM_LOCAL: enumerates the locally installed printers.

  • PRINTER_ENUM_NAME: enumerates the printer of name, can be a server, domain or print provider.

  • PRINTER_ENUM_SHARED: this parameter can't be used alone, it has to be OR'ed with other parameters, i.e. PRINTER_ENUM_LOCAL to detect the locally shared printers.

  • PRINTER_ENUM_DEFAULT: (Win9.x only) enumerates the default printer.

  • PRINTER_ENUM_CONNECTIONS: (WinNT/2000 only) enumerates the printers to which the user has made connections.

  • PRINTER_ENUM_NETWORK: (WinNT/2000 only) enumerates network printers in the computer's domain. Only valid if level is 1.

  • PRINTER_ENUM_REMOTE: (WinNT/2000 only) enumerates network printers and print servers in the computer's domain. Only valid if level is 1.

Beispiel 1. printer_list() example

<?php
/* detect locally shared printer */
var_dump(printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED));
?>

Zurück | Zum Anfang | Nach vorne
printer_get_option | Nach oben | printer_logical_fontheight


printer_logical_fontheight

(no version information, might be only in CVS)

printer_logical_fontheight -- Get logical font height

Description

int printer_logical_fontheight ( resource handle, int height)

The function calculates the logical font height of height. handle must be a valid handle to a printer.

Beispiel 1. printer_logical_fontheight() example

<?php
$handle = printer_open();
echo printer_logical_fontheight($handle, 72);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_list | Nach oben | printer_open


printer_open

(no version information, might be only in CVS)

printer_open -- Open connection to a printer

Description

mixed printer_open ( [string devicename])

This function tries to open a connection to the printer devicename, and returns a handle on success or FALSE on failure.

If no parameter was given it tries to open a connection to the default printer (if not specified in php.ini as printer.default_printer, PHP tries to detect it).

printer_open() also starts a device context.

Beispiel 1. printer_open() example

<?php
$handle = printer_open("HP Deskjet 930c");
$handle = printer_open();
?>

Zurück | Zum Anfang | Nach vorne
printer_logical_fontheight | Nach oben | printer_select_brush


printer_select_brush

(no version information, might be only in CVS)

printer_select_brush -- Select a brush

Description

void printer_select_brush ( resource printer_handle, resource brush_handle)

The function selects a brush as the active drawing object of the actual device context. A brush is used to fill shapes. If you draw an rectangle the brush is used to draw the shapes, while the pen is used to draw the border. If you haven't selected a brush before drawing shapes, the shape won't be filled. printer_handle must be a valid handle to a printer. brush_handle must be a valid handle to a brush.

Beispiel 1. printer_select_brush() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);
$brush = printer_create_brush(PRINTER_BRUSH_CUSTOM, "c:\\brush.bmp");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "000000");
printer_select_brush($handle, $brush);
printer_draw_rectangle($handle, 1, 501, 500, 1001);
printer_delete_brush($brush);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_open | Nach oben | printer_select_font


printer_select_font

(no version information, might be only in CVS)

printer_select_font -- Select a font

Description

void printer_select_font ( resource printer_handle, resource font_handle)

The function selects a font to draw text. printer_handle must be a valid handle to a printer. font_handle must be a valid handle to a font.

Beispiel 1. printer_select_font() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50);
printer_select_font($handle, $font);
printer_draw_text($handle, "PHP is simply cool", 40, 40);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_select_brush | Nach oben | printer_select_pen


printer_select_pen

(no version information, might be only in CVS)

printer_select_pen -- Select a pen

Description

void printer_select_pen ( resource printer_handle, resource pen_handle)

The function selects a pen as the active drawing object of the actual device context. A pen is used to draw lines and curves. I.e. if you draw a single line the pen is used. If you draw an rectangle the pen is used to draw the borders, while the brush is used to fill the shape. If you haven't selected a pen before drawing shapes, the shape won't be outlined. printer_handle must be a valid handle to a printer. pen_handle must be a valid handle to a pen.

Beispiel 1. printer_select_pen() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "2222FF");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_select_font | Nach oben | printer_set_option


printer_set_option

(no version information, might be only in CVS)

printer_set_option -- Configure the printer connection

Description

bool printer_set_option ( resource handle, int option, mixed value)

The function sets the following options for the current connection. handle must be a valid handle to a printer. For option can be one of the following constants:

  • PRINTER_COPIES: sets how many copies should be printed, value must be an integer.

  • PRINTER_MODE: specifies the type of data (text, raw or emf), value must be a string.

  • PRINTER_TITLE: specifies the name of the document, value must be a string.

  • PRINTER_ORIENTATION: specifies the orientation of the paper, value can be either PRINTER_ORIENTATION_PORTRAIT or PRINTER_ORIENTATION_LANDSCAPE

  • PRINTER_RESOLUTION_Y: specifies the y-resolution in DPI, value must be an integer.

  • PRINTER_RESOLUTION_X: specifies the x-resolution in DPI, value must be an integer.

  • PRINTER_PAPER_FORMAT: specifies the a predefined paper format, set value to PRINTER_FORMAT_CUSTOM if you want to specify a custom format with PRINTER_PAPER_WIDTH and PRINTER_PAPER_LENGTH. value can be one of the following constants.

    • PRINTER_FORMAT_CUSTOM: let's you specify a custom paper format.

    • PRINTER_FORMAT_LETTER: specifies standard letter format (8 1/2- by 11-inches).

    • PRINTER_FORMAT_LETTER: specifies standard legal format (8 1/2- by 14-inches).

    • PRINTER_FORMAT_A3: specifies standard A3 format (297- by 420-millimeters).

    • PRINTER_FORMAT_A4: specifies standard A4 format (210- by 297-millimeters).

    • PRINTER_FORMAT_A5: specifies standard A5 format (148- by 210-millimeters).

    • PRINTER_FORMAT_B4: specifies standard B4 format (250- by 354-millimeters).

    • PRINTER_FORMAT_B5: specifies standard B5 format (182- by 257-millimeter).

    • PRINTER_FORMAT_FOLIO: specifies standard FOLIO format (8 1/2- by 13-inch).

  • PRINTER_PAPER_LENGTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_LENGTH specifies a custom paper length in mm, value must be an integer.

  • PRINTER_PAPER_WIDTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_WIDTH specifies a custom paper width in mm, value must be an integer.

  • PRINTER_SCALE: specifies the factor by which the printed output is to be scaled. the page size is scaled from the physical page size by a factor of scale/100. for example if you set the scale to 50, the output would be half of its original size. value must be an integer.

  • PRINTER_BACKGROUND_COLOR: specifies the background color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".

  • PRINTER_TEXT_COLOR: specifies the text color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".

  • PRINTER_TEXT_ALIGN: specifies the text alignment for the actual device context, value can be combined through OR'ing the following constants:

    • PRINTER_TA_BASELINE: text will be aligned at the base line.

    • PRINTER_TA_BOTTOM: text will be aligned at the bottom.

    • PRINTER_TA_TOP: text will be aligned at the top.

    • PRINTER_TA_CENTER: text will be aligned at the center.

    • PRINTER_TA_LEFT: text will be aligned at the left.

    • PRINTER_TA_RIGHT: text will be aligned at the right.

Beispiel 1. printer_set_option() example

<?php
$handle = printer_open();
printer_set_option($handle, PRINTER_SCALE, 75);
printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_LEFT);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_select_pen | Nach oben | printer_start_doc


printer_start_doc

(no version information, might be only in CVS)

printer_start_doc -- Start a new document

Description

bool printer_start_doc ( resource handle [, string document])

The function creates a new document in the printer spooler. A document can contain multiple pages, it's used to schedule the print job in the spooler. handle must be a valid handle to a printer. The optional parameter document can be used to set an alternative document name.

Beispiel 1. printer_start_doc() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_set_option | Nach oben | printer_start_page


printer_start_page

(no version information, might be only in CVS)

printer_start_page -- Start a new page

Description

bool printer_start_page ( resource handle)

The function creates a new page in the active document. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Zurück | Zum Anfang | Nach vorne
printer_start_doc | Nach oben | printer_write


printer_write

(no version information, might be only in CVS)

printer_write -- Write data to the printer

Description

bool printer_write ( resource handle, string content)

Writes content directly to the printer. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

handle must be a valid handle to a printer.

Beispiel 1. printer_write() example

<?php
$handle = printer_open();
printer_write($handle, "Text to print");
printer_close($handle);
?>

Zurück | Zum Anfang | Nach vorne
printer_start_page | Nach oben | Pspell Funktionen


Pspell Funktionen

PHP Handbuch
Zurück Nach vorne

LXXXVIII. Pspell Funktionen

Einführung

Diese Funktionen ermöglichen Ihnen, die Rechtschreibung eines Wortes zu prüfen und bieten Änderungsvorschläge an.

Anforderungen

Um PHP mit pspell-Unterstützung zu compilieren, brauchen Sie die aspell-Bibliothek, die Sie unter http://aspell.sourceforge.net/ bekommen.

Installation

Falls Sie die benötigten Bibliotheken haben, können Sie PHP mit der Option --with-pspell[=dir] übersetzen.

Anmerkung für Win32-Benutzer: Die Ünterstützung von Win32 steht erst ab PHP 4.3.3 zur Verfügung. Außerdem muss aspell 0.50 oder neuer installiert sein. Um dieses Modul unter Windows zu aktivieren, müssen Sie aspell-15.dll aus dem Verzeichnis bin Ihrer aspell-Installation in ein Verzeichnis kopieren, in dem es von PHP gefunden werden kann. Eine gute Wahl ist C:\PHP oder das Verzeichnis SYSTEM32 Ihres Windows-Rechners (z.B. C:\WINNT\SYSTEM32 oder C:\WINDOWS\SYSTEM32).

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

PSPELL_FAST (integer)

PSPELL_NORMAL (integer)

PSPELL_BAD_SPELLERS (integer)

PSPELL_RUN_TOGETHER (integer)

Inhaltsverzeichnis
pspell_add_to_personal -- Fügt der persönlichen Wortliste ein Wort hinzu
pspell_add_to_session -- Fügt der Wortliste der aktuellen Sitzung ein Wort hinzu
pspell_check -- Überprüft ein Wort
pspell_clear_session -- Löscht die aktuelle Sitzung
pspell_config_create -- Erzeugt eine Konfiguration zum Öffnen eines Wörterbuchs
pspell_config_ignore -- Ignoriert Wörter mit weniger als N Buchstaben
pspell_config_mode -- Ändert den Modus für die Anzahl gelieferter Vorschläge
pspell_config_personal -- Setzt die Datei, die die persönliche Wortliste enthält
pspell_config_repl -- Setzt die Datei, welche die Ersetzen-Paare enthält
pspell_config_runtogether -- Betrachtet zusammengesetzte Wörter als gültige Verbindungen
pspell_config_save_repl -- Bestimmt, ob Ersetzen-Paare zusammen mit der Wortliste gespeichert werden
pspell_new_config -- Lädt ein neues Wörterbuch mit den Einstellungen einer angegebenen Konfiguration
pspell_new_personal -- Lädt ein neues Wörterbuch mit persönlicher Wortliste
pspell_new -- Lädt ein neues Wörterbuch
pspell_save_wordlist -- Speichert die persönliche Wortliste in einer Datei
pspell_store_replacement -- Speichert das Ersetzen-Paar für ein Wort
pspell_suggest -- Macht Vorschläge für die Schreibweise eines Wortes

Zurück | Zum Anfang | Nach vorne
printer_write | Nach oben | pspell_add_to_personal


pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_personal -- Fügt der persönlichen Wortliste ein Wort hinzu

Beschreibung

int pspell_add_to_personal ( int wörterbuch_link, string Wort)

pspell_add_to_personal() fügt der persönlichen Wortliste ein Wort hinzu. Falls Sie pspell_new_config() mit pspell_config_personal() verwendet haben, um das Wörterbuch zu öffnen, können Sie die Wortliste später mit pspell_save_wordlist() speichern. Bitte beachten Sie, dass diese Funktion nicht funktioniert, wenn Sie nicht pspell .11.2 und aspell .32.5 oder höher haben.

Beispiel 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Zurück | Zum Anfang | Nach vorne
Pspell Funktionen | Nach oben | pspell_add_to_session


pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_session -- Fügt der Wortliste der aktuellen Sitzung ein Wort hinzu

Beschreibung

int pspell_add_to_session ( int wörterbuch_link, string Wort)

pspell_add_to_session() fügt der Wortliste, die zur aktuellen Sitzung gehört, ein Wort hinzu. Diese Funktion ist der Funktion pspell_add_to_personal() sehr ähnlich.

Zurück | Zum Anfang | Nach vorne
pspell_add_to_personal | Nach oben | pspell_check


pspell_check

(PHP 4 >= 4.0.2, PHP 5)

pspell_check -- Überprüft ein Wort

Beschreibung

bool pspell_check ( int wörterbuch_link, string Wort)

pspell_check() überprüft die Schreibweise eines Wortes und gibt TRUE zurück, wenn sie korrekt ist oder FALSE, wenn nicht.

Beispiel 1. pspell_check()

<?php
$pspell_link = pspell_new("de");

if (pspell_check($pspell_link, "Testt")) {
    echo "Das ist eine gültige Schreibweise";
} else {
    echo "Sorry, falsche Schreibweise";
}
?>

Zurück | Zum Anfang | Nach vorne
pspell_add_to_session | Nach oben | pspell_clear_session


pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_clear_session -- Löscht die aktuelle Sitzung

Beschreibung

int pspell_clear_session ( int wörterbuch_link)

pspell_clear_session() löscht die aktuelle Sitzung. Die aktuelle Wortliste wird geleert und wenn Sie zum Beispiel versuchen, sie mit pspell_save_wordlist() zu speichern, passiert gar nichts.

Beispiel 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_clear_session($pspell_link);
pspell_save_wordlist($pspell_link);    //"Vlad" wird nicht gespeichert
?>

Zurück | Zum Anfang | Nach vorne
pspell_check | Nach oben | pspell_config_create


pspell_config_create

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_create -- Erzeugt eine Konfiguration zum Öffnen eines Wörterbuchs

Beschreibung

int pspell_config_create ( string Sprache [, string Schreibweise [, string Jargon [, string Codierung]]])

pspell_config_create() hat eine sehr ähnliche Syntax wie pspell_new(). Wenn pspell_config_create() direkt gefolgt von pspell_new_config() verwendet wird, hat das in der Tat genau das gleiche Ergebnis. Sie können jedoch nach dem Erzeugen einer neuen Konfiguration die pspell_config_*()-Funktionen verwenden, bevor Sie pspell_new_config() aufrufen, um von einer erweiterten Funktionalität zu profitieren.

Sprache ist der Sprachencode, der aus dem zweibuchstabigen ISO 639-Sprachencode und, nach einem Binde- oder Unterstrich, einem optionalen zweibuchstabigen ISO 3166-Ländercode besteht.

Schreibweise ist die angeforderte Schreibweise für Sprachen mit mehr als einer Schreibweise, wie zum Beispiel Englisch. Bekannte Werte sind 'american', 'british' und 'canadian'.

Jargon enthält zusätzliche Informationen, um zwischen zwei Wortlisten mit der selben Sprache und den selben Parametern für die Schreibweise zu unterscheiden.

Codierung ist die Codierung, in der die Wörter voraussichtlich sind. Gültige Werte sind 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16' und 'machine unsigned 32'. Dieser Parameter ist weit gehend ungetestet, weshalb Sie bei dessen Verwendung vorsichtig sein sollten.

Schauen Sie sich für weitere Informationen und Beispiele das pspell-Handbuch (auf englisch) auf der Website http://aspell.net/ an.

Beispiel 1. pspell_config_create()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal($pspell_config, "de");
?>

Zurück | Zum Anfang | Nach vorne
pspell_clear_session | Nach oben | pspell_config_ignore


pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_ignore -- Ignoriert Wörter mit weniger als N Buchstaben

Beschreibung

int pspell_config_ignore ( int wörterbuch_link, int n)

pspell_config_ignore() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird. Diese Funktion erlaubt der Rechtschreibprüfung, kurze Wörter zu überspringen. Wörter mit weniger als n Buchstaben werden übersprungen.

Beispiel 1. pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");    // produziert keinen Fehler
?>

Zurück | Zum Anfang | Nach vorne
pspell_config_create | Nach oben | pspell_config_mode


pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_mode -- Ändert den Modus für die Anzahl gelieferter Vorschläge

Beschreibung

int pspell_config_mode ( int wörterbuch_link, int Modus)

pspell_config_mode() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird. Diese Funktion bestimmt, wie viele Vorschläge von pspell_suggest() geliefert werden.

Modus ist der Modus, in dem die Rechtschreibprüfung arbeitet. Es stehen mehrere Modi zur Verfügung:

  • PSPELL_FAST - Schneller Modus (geringste Anzahl Vorschläge)

  • PSPELL_NORMAL - Normaler Modus (mehr Vorschläge)

  • PSPELL_BAD_SPELLERS - Langsamer Modus (viele Vorschläge)

Beispiel 1. pspell_config_mode()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "dieSpinne");
?>

Zurück | Zum Anfang | Nach vorne
pspell_config_ignore | Nach oben | pspell_config_personal


pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_personal -- Setzt die Datei, die die persönliche Wortliste enthält

Beschreibung

int pspell_config_personal ( int wörterbuch_link, string Datei)

pspell_config_personal() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird. Die persönliche Wortliste wird geladen und zusätzlich zur standardmäßig verwendet, nachdem Sie pspell_new_config() aufgerufen haben. Falls die Datei nicht existiert, wird sie angelegt. Diese Datei ist auch der Ort, an dem pspell_save_wordlist() die persönliche Wortliste speichert. Die Datei sollte für denjenigen, unter dem PHP läuft (z.B. nobody), schreibbar sein. Bitte beachten Sie, dass diese Funktion nicht funktioniert, wenn Sie nicht pspell .11.2 und aspell .32.5 oder höher haben.

Beispiel 1. pspell_config_personal()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "dieSpinne");
?>

Zurück | Zum Anfang | Nach vorne
pspell_config_mode | Nach oben | pspell_config_repl


pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_repl -- Setzt die Datei, welche die Ersetzen-Paare enthält

Beschreibung

int pspell_config_repl ( int wörterbuch_link, string Datei)

pspell_config_repl() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird. Die Ersetzen-Paare verbessern die Qualität der Rechtschreibprüfung. Wenn ein Wort falsch geschrieben und in der Wortliste kein passender Vorschlag wurde, kann pspell_store_replacement() zum Speichern eines Ersetzen-Paares verwendet werden und dann pspell_save_wordlist() zum Speichern der Wortliste zusammen mit den Ersetzen-Paaren. Die Datei sollte für denjenigen, unter dem PHP läuft (z.B. nobody), eine Schreibberechtigung haben. Bitte beachten Sie, dass diese Funktion nicht funktioniert, wenn Sie nicht pspell .11.2 und aspell .32.5 oder höher haben.

Beispiel 1. pspell_config_repl()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "dieSpinne");
?>

Zurück | Zum Anfang | Nach vorne
pspell_config_personal | Nach oben | pspell_config_runtogether


pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_runtogether -- Betrachtet zusammengesetzte Wörter als gültige Verbindungen

Beschreibung

int pspell_config_runtogether ( int wörterbuch_link, bool flag)

pspell_config_runtogether() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird. Diese Funktion bestimmt, ob zusammengesetzte Wörter als erlaubte Verbindungen betrachtet werden. Das heißt, dieSpinne wäre dann eine erlaubte Verbindung, obwohl ein Leerzeichen zwischen den beiden Wörtern sein müsste. Eine Änderung dieser Einstellung wirkt sich nur auf das Ergebnis aus, das von pspell_check() zurückgegeben wird; pspell_suggest() liefert weiterhin Änderungsvorschläge.

Beispiel 1. pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_runtogether($pspell_config, true);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "dieSpinne");
?>

Zurück | Zum Anfang | Nach vorne
pspell_config_repl | Nach oben | pspell_config_save_repl


pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_save_repl -- Bestimmt, ob Ersetzen-Paare zusammen mit der Wortliste gespeichert werden

Beschreibung

int pspell_config_save_repl ( int wörterbuch_link, bool flag)

pspell_config_save_repl() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird. Diese Funktion bestimmt, ob pspell_save_wordlist() Ersetzen-Paare zusammen mit der Wortliste speichert. Normalerweise wird sie nicht benötigt, denn wenn die Funktion pspell_config_repl() verwendet wird, werden die Ersetzen-Paare sowieso durch pspell_save_wordlist() gespeichert und wenn sie nicht verwendet wird, werden die Ersetzen-Paare nicht gespeichert. Bitte beachten Sie, dass diese Funktion nicht funktioniert, wenn Sie nicht pspell .11.2 und aspell .32.5 oder höher haben.

Zurück | Zum Anfang | Nach vorne
pspell_config_runtogether | Nach oben | pspell_new_config


pspell_new_config

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_config -- Lädt ein neues Wörterbuch mit den Einstellungen einer angegebenen Konfiguration

Beschreibung

int pspell_new_config ( int Konfiguration)

pspell_new_config() öffnet ein neues Wörterbuch mit den Einstellungen, die in einer mittels pspell_config_create() erzeugten und den pspell_config_*()-Funktionen geänderten Konfiguration angegeben sind. Diese Methode bietet Ihnen die größte Flexibilität und hat die ganze Funktionalität, die pspell_new() und pspell_new_personal() bieten.

config ist der Parameter, der von pspell_config_create() beim Erzeugen der Konfiguration zurückgegeben wird.

Beispiel 1. pspell_new_config()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
?>

Zurück | Zum Anfang | Nach vorne
pspell_config_save_repl | Nach oben | pspell_new_personal


pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_personal -- Lädt ein neues Wörterbuch mit persönlicher Wortliste

Beschreibung

int pspell_new_personal ( string persönliche_wortliste, string Sprache [, string Schreibweise [, string Jargon [, string Codierung [, int Modus]]]])

pspell_new_personal() öffnet ein neues Wörterbuch mit einer persönlichen Wortliste und gibt die Kennung des Wörterbuch-Links für die Verwendung in anderen pspell-Funktionen zurück. Die Wortliste kann bei Bedarf mit pspell_save_wordlist() geändert und gespeichert werden. Die Ersetzen-Paare werden jedoch nicht gespeichert. Um diese zu speichern, müssen Sie mittels pspell_config_create() eine Konfiguration erzeugen, die persönliche Wortliste mit pspell_config_personal() setzen, die Datei für die Ersetzen-Paare mit pspell_config_repl() setzen und mit pspell_new_config() ein neues Wörterbuch öffnen.

persönliche_wortliste bestimmt die Datei, in der Wörter, die zur persönlichen Wortliste hinzu gefügt wurden, gespeichert werden. Dieser Parameter sollte als absoluter Dateiname mit '/' beginnend angegeben werden, weil er andernfalls relativ zu $HOME wäre, was auf den meisten Systemen '/root' ist und es vermutlich nicht das ist, was sie wollen.

Sprache ist der Sprachencode, der aus dem zweibuchstabigen ISO 639-Sprachencode und, nach einem Binde- oder Unterstrich, einem optionalen zweibuchstabigen ISO 3166-Ländercode besteht.

Schreibweise ist die angeforderte Schreibweise für Sprachen mit mehr als einer Schreibweise, wie zum Beispiel Englisch. Bekannte Werte sind 'american', 'british' und 'canadian'.

Jargon enthält zusätzliche Informationen, um zwischen zwei Wortlisten mit der selben Sprache und den selben Parametern für die Schreibweise zu unterscheiden.

Codierung ist die Codierung, in der die Wörter voraussichtlich sind. Gültige Werte sind 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16' und 'machine unsigned 32'. Dieser Parameter ist weit gehend ungetestet, weshalb Sie bei dessen Verwendung vorsichtig sein sollten.

Modus ist der Modus, in dem die Rechtschreibprüfung arbeitet. Es stehen mehrere Modi zur Verfügung:

  • PSPELL_FAST - Schneller Modus (geringste Anzahl Vorschläge)

  • PSPELL_NORMAL - Normaler Modus (mehr Vorschläge)

  • PSPELL_BAD_SPELLERS - Langsamer Modus (viele Vorschläge)

  • PSPELL_RUN_TOGETHER - Betrachtet zusammengesetzte Wörter als erlaubte Verbindungen. Das heißt, dieSpinne wäre dann eine erlaubte Verbindung, obwohl ein Leerzeichen zwischen den beiden Wörtern sein müsste. Eine Änderung dieser Einstellung wirkt sich nur auf das Ergebnis aus, das von pspell_check() zurückgegeben wird; pspell_suggest() liefert weiterhin Änderungsvorschläge.

Modus ist eine Bitmask, die sich aus verschiedenden der oben aufgelisteten Konstanten zusammensetzt. PSPELL_FAST, PSPELL_NORMAL und PSPELL_BAD_SPELLERS schließen sich allerdings gegenseitig aus, weshalb Sie nur eine davon auswählen sollten.

Schauen Sie sich für weitere Informationen und Beispiele das pspell-Handbuch (auf englisch) auf der Website http://aspell.net/ an.

Beispiel 1. pspell_new_personal()

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "de", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>

Zurück | Zum Anfang | Nach vorne
pspell_new_config | Nach oben | pspell_new


pspell_new

(PHP 4 >= 4.0.2, PHP 5)

pspell_new -- Lädt ein neues Wörterbuch

Beschreibung

int pspell_new ( string Sprache [, string Schreibweise [, string Jargon [, string Codierung [, int Modus]]]])

pspell_new() öffnet ein neues Wörterbuch und gibt die Kennung des Wörterbuch-Links für die Verwendung in anderen pspell-Funktionen zurück.

Sprache ist der Sprachencode, der aus dem zweibuchstabigen ISO 639-Sprachencode und, nach einem Binde- oder Unterstrich, einem optionalen zweibuchstabigen ISO 3166-Ländercode besteht.

Schreibweise ist die angeforderte Schreibweise für Sprachen mit mehr als einer Schreibweise, wie zum Beispiel Englisch. Bekannte Werte sind 'american', 'british' und 'canadian'.

Jargon enthält zusätzliche Informationen, um zwischen zwei Wortlisten mit der selben Sprache und den selben Parametern für die Schreibweise zu unterscheiden.

Codierung ist die Codierung, in der die Wörter voraussichtlich sind. Gültige Werte sind 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16' und 'machine unsigned 32'. Dieser Parameter ist weit gehend ungetestet, weshalb Sie bei dessen Verwendung vorsichtig sein sollten.

Modus ist der Modus, in dem die Rechtschreibprüfung arbeitet. Es stehen mehrere Modi zur Verfügung:

  • PSPELL_FAST - Schneller Modus (geringste Anzahl Vorschläge)

  • PSPELL_NORMAL - Normaler Modus (mehr Vorschläge)

  • PSPELL_BAD_SPELLERS - Langsamer Modus (viele Vorschläge)

  • PSPELL_RUN_TOGETHER - Betrachtet zusammengesetzte Wörter als erlaubte Verbindungen. Das heißt, dieSpinne wäre dann eine erlaubte Verbindung, obwohl ein Leerzeichen zwischen den beiden Wörtern sein müsste. Eine Änderung dieser Einstellung wirkt sich nur auf das Ergebnis aus, das von pspell_check() zurückgegeben wird; pspell_suggest() liefert weiterhin Änderungsvorschläge.

Modus ist eine Bitmask, die sich aus verschiedenden der oben aufgelisteten Konstanten zusammensetzt. PSPELL_FAST, PSPELL_NORMAL und PSPELL_BAD_SPELLERS schließen sich allerdings gegenseitig aus, weshalb Sie nur eine davon auswählen sollten.

Schauen Sie sich für weitere Informationen und Beispiele das pspell-Handbuch (auf englisch) auf der Website http://aspell.net/ an.

Beispiel 1. pspell_new()

<?php
$pspell_link = pspell_new("de", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>

Zurück | Zum Anfang | Nach vorne
pspell_new_personal | Nach oben | pspell_save_wordlist


pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5)

pspell_save_wordlist -- Speichert die persönliche Wortliste in einer Datei

Beschreibung

int pspell_save_wordlist ( int wörterbuch_link)

pspell_save_wordlist() speichert die persönliche Wortliste der aktuellen Sitzung. Das Wörterbuch muss mit pspell_new_personal() geöffnet werden und die Stelle der zu speichernden Dateien muss mit pspell_config_personal() und (optional) pspell_config_repl() bestimmt werden. Bitte beachten Sie, dass diese Funktion nicht funktioniert, wenn Sie nicht pspell .11.2 und aspell .32.5 oder höher haben.

Beispiel 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Zurück | Zum Anfang | Nach vorne
pspell_new | Nach oben | pspell_store_replacement


pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5)

pspell_store_replacement -- Speichert das Ersetzen-Paar für ein Wort

Beschreibung

int pspell_store_replacement ( int wörterbuch_link, string falsch, string richtig)

pspell_store_replacement() speichert das Ersetzen-Paar für ein Wort, damit dieses Ersetzen-Paar später von pspell_suggest() zurückgegeben werden kann. Um von dieser Funktion profitieren zu können, müssen Sie pspell_new_personal() zum Öffnen des Wörterbuchs verwenden. Um das Ersetzen-Paar dauerhaft zu speichern, müssen Sie pspell_config_personal() und pspell_config_repl() verwenden, um den Pfad zu setzen, unter dem Ihre selbst erstellten Wortlisten gespeichert werden sollen und dann pspell_save_wordlist(), damit die Änderungen auf die Festplatte geschrieben werden. Bitte beachten Sie, dass diese Funktion nicht funktioniert, wenn Sie nicht pspell .11.2 und aspell .32.5 oder höher haben.

Beispiel 1. pspell_store_replacement()

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link, $falsch, $richtig);
pspell_save_wordlist($pspell_link);
?>

Zurück | Zum Anfang | Nach vorne
pspell_save_wordlist | Nach oben | pspell_suggest


pspell_suggest

(PHP 4 >= 4.0.2, PHP 5)

pspell_suggest -- Macht Vorschläge für die Schreibweise eines Wortes

Beschreibung

array pspell_suggest ( int wörterbuch_link, string Wort)

pspell_suggest() gibt ein Array möglicher Schreibweisen für das angegebene Wort zurück.

Beispiel 1. pspell_suggest()-Beispiel

<?php
$pspell_link = pspell_new("de");

if (!pspell_check($pspell_link, "Testt")) {
    $vorschlaege = pspell_suggest($pspell_link, "Testt");

    foreach ($vorschlaege as $vorschlag) {
        echo "Mögliche Schreibweise: $vorschlag<br />";
    }
}
?>

Zurück | Zum Anfang | Nach vorne
pspell_store_replacement | Nach oben | GNU Readline


GNU Readline

PHP Handbuch
Zurück Nach vorne

LXXXIX. GNU Readline

Einführung

Die readline() Funktionen realisieren eine Schnittstelle zur GNU Readline Bibliothek. Diese Funktionen bieten die Möglichkeit Kommandozeilen zu editieren. Ein Beispiel für die Anwendung ist die Art und Weise, wie die Bash es erlaubt, die Pfeiltasten zu benutzen um Schriftzeichen einzufügen oder durch die Kommando-History zu scrollen. Auf Grund des interaktiven Charakters dieser Bibliothek ist diese beim Programmieren von Webanwendungen von geringem Nutzen, kann aber nützlich sein, wenn Sie Skripte schreiben, die dafür gedacht sind PHP von der Kommandozeile auszuführen.

Anmerkung: This extension is not available on Windows platforms.

Anforderungen

Möchten Sie die readline Funktionen nutzen, müssen Sie die libreadline Bibliothek installieren. Die libreadline Bibliothek finden Sie auf der Homepage des GNU Readline Projekts unter http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. Dieses Projekt wird von Chet Ramey betreut, der auch der Author der Bash ist.

Sie können diese Funktionen auch mit der libedit Bibliothek benutzen, die einen Ersatz für readline darstellt und nicht der GPL unterliegt. Die libedit Bibliothek ist BSD lizensiert und steht unter der Adresse http://sourceforge.net/projects/libedit/ zum Download bereit.

Installation

Um diese Funktionen benutzten zu können, müssen Sie die CLI- oder CGI-Version von PHP mit readline Unterstützung übersetzen. Konfigurieren Sie PHP mit der Option --with-readline[=DIR] . Beabsichtigen Sie als Ersatz für readline libedit zu benutzen, konfigurieren Sie PHP mit der Option --with-libedit[=DIR].

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
readline_add_history -- Fügt eine Zeile zur History hinzu
readline_clear_history -- Löscht die History
readline_completion_function -- Registriert eine Vervollständigungsfunktion
readline_info -- Liest/Setzt verschiedene interne readline Variablen
readline_list_history -- Auflistung der History
readline_read_history -- Liest die History
readline_write_history -- Schreibt die History
readline -- Liest eine Zeile

Zurück | Zum Anfang | Nach vorne
pspell_suggest | Nach oben | readline_add_history


readline_add_history

(PHP 4 , PHP 5)

readline_add_history -- Fügt eine Zeile zur History hinzu

Beschreibung

void readline_add_history ( string zeile)

Diese Funktion fügt eine Zeile zur Kommandozeilen-History hinzu.

Zurück | Zum Anfang | Nach vorne
GNU Readline | Nach oben | readline_clear_history


readline_clear_history

(PHP 4 , PHP 5)

readline_clear_history -- Löscht die History

Beschreibung

bool readline_clear_history ( void )

Diese Funktion löscht die gesamte Kommandozeilen-History.

Zurück | Zum Anfang | Nach vorne
readline_add_history | Nach oben | readline_completion_function


readline_completion_function

(PHP 4 , PHP 5)

readline_completion_function -- Registriert eine Vervollständigungsfunktion

Beschreibung

bool readline_completion_function ( string Zeile)

Diese Funktion registriert eine Vervollständigungsfunktion. Sie müssen den Namen einer existierenden Funktion angeben, die einen Teil einer Kommandozeile akzeptiert und ein Array möglicher Übereinstimmungen zurückgibt. Das ist die gleiche Art von Funktionalität die Sie haben, wenn Sie die Tab-Taste benutzen, während Sie mit der Bash arbeiten.

Zurück | Zum Anfang | Nach vorne
readline_clear_history | Nach oben | readline_info


readline_info

(PHP 4 , PHP 5)

readline_info -- Liest/Setzt verschiedene interne readline Variablen

Beschreibung

mixed readline_info ( [string Varname [, string Neuerwert]])

Wenn diese Funktion ohne Parameter aufgerufen wird, gibt sie einen Array von Werten für alle Einstellungen zurück, die readline benutzt. Die Elemente werden durch die folgenden Werte indiziert: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name und terminal_name.

Wird die Funktion mit einem Parameter aufgerufen, wird der Wert dieser Einstellung zurückgegeben. Beim Aufruf mit zwei Parametern wird die Einstellung auf den angegebenen Wert geändert.

Zurück | Zum Anfang | Nach vorne
readline_completion_function | Nach oben | readline_list_history


readline_list_history

(PHP 4 , PHP 5)

readline_list_history -- Auflistung der History

Beschreibung

array readline_list_history ( void )

Diese Funktion gibt ein Array der gesamten Kommandozeilen-History zurück. Die Elemente sind numerisch indiziert, beginnend bei Null.

Zurück | Zum Anfang | Nach vorne
readline_info | Nach oben | readline_read_history


readline_read_history

(PHP 4 , PHP 5)

readline_read_history -- Liest die History

Beschreibung

bool readline_read_history ( string Dateiname)

Diese Funktion liest eine Kommando-History aus einer Datei.

Zurück | Zum Anfang | Nach vorne
readline_list_history | Nach oben | readline_write_history


readline_write_history

(PHP 4 , PHP 5)

readline_write_history -- Schreibt die History

Beschreibung

bool readline_write_history ( string Dateiname)

Diese Funktion schreibt die Kommando-History in eine Datei.

Zurück | Zum Anfang | Nach vorne
readline_read_history | Nach oben | readline


readline

(PHP 4 , PHP 5)

readline -- Liest eine Zeile

Beschreibung

string readline ( [string prompt])

Diese Funktion gibt eine einzelne Zeichenkette vom Benutzer zurück. Sie können eine Zeichenkette angeben, mit dem Sie den Benutzer zur Eingabe auffordern. Der Zeile die Sie erhalten fehlt das abschließende Zeichen für einen Zeilenvorschub. Die Zeile müssen Sie selbst mit Hilfe der Funktion readline_add_history() der History hinzufügen.

Beispiel 1. readline()

<?php
//abfragen von 3 Kommandos vom Benutzer
for ($i=0; $i <; 3; $i++) {
        $zeile = readline("Kommando: ");
        readline_add_history($zeile);
}

//anzeigen der History
print_r(readline_list_history());

//anzeigen der Variablen
print_r(readline_info());
?>

Zurück | Zum Anfang | Nach vorne
readline_write_history | Nach oben | GNU Recode Funktionen


GNU Recode Funktionen

PHP Handbuch
Zurück Nach vorne

XC. GNU Recode Funktionen

Dieses Modul stellt eine Schnittstelle zu der GNU Recode Bibliothek Version 3.5 dar. Um die Umkodierungsfunktionen benutzen zu können muss die GNU Recode Bibliothek ab Version 3.5 auf dem System installiert und PHP mit der Option --with-recode kompiliert werden.

Die GNU Recode Bibliothek ermöglicht die Konversion zwischen verschiedenen Zeichensätzen (wie ASCII, ISO Latin-1, IBM-PC und weiteren) und Eingabekonventionen (z.B. HTML oder LaTeX). Wenn eine exakte Umkodierung nicht möglich ist, werden die störenden Zeichen entfernt oder durch Annäherungen ersetzt. Die Bibliothek erkennt und verwendet etwa 150 verschiedene Zeichensätze und kann Umwandlungen zwischen den meisten dieser Zeichensätze vornehmen. Fast alle der in RFC 1345 beschriebenen Zeichensätze werden unterstützt.

Inhaltsverzeichnis
recode_file -- Umkodierung von Dateien entsprechend der Recode Anweisung
recode_string -- Umkodierung eines Strings entsprechend einer Recode Anweisung
recode -- Umkodierung eines Strings entsprechend einer Recode Anweisung

Zurück | Zum Anfang | Nach vorne
readline | Nach oben | recode_file


recode_file

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

recode_file -- Umkodierung von Dateien entsprechend der Recode Anweisung

Beschreibung

bool recode_file ( string request, resource input, resource output)

Umkodierung der Datei, die durch den Dateizeiger input referenziert wird in die Datei output, entsprechend der Recode Anweisung request. Gibt TRUE bei erfolgter Umwandlung, sonst FALSE zurück.

Diese Funktion arbeitet momentan nicht mit externen Dateien (URLs). Die beiden Dateizeiger müssen auf lokale Dateien verweisen.

Beispiel 1. Einfaches recode_file() Beispiel

$input = fopen ('input.txt', 'r');
$output = fopen ('output.txt', 'w');
recode_file ("us..flat", $input, $output);

Zurück | Zum Anfang | Nach vorne
GNU Recode Funktionen | Nach oben | recode_string


recode_string

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

recode_string -- Umkodierung eines Strings entsprechend einer Recode Anweisung

Beschreibung

string recode_string ( string request, string string)

Der Parameter string wird entsprechend der Recode Anweisung request umgewandelt. Zurückgegeben wird der umkodierte String oder FALSE, wenn eine Umkodierung nicht möglich ist.

Eine einfache Recode Anweisung wäre beispielsweise "lat1..iso646-de". Detaillierte Beschreibungen zu Recode Anweisungen sind in der GNU Recode Dokumentation auf Ihrem System zu finden.

Beispiel 1. Einfaches recode_string() Beispiel:

print recode_string ("us..flat", "Der folgende Buchstabe hat ein diakritisches Zeichen: &aacute;");

Zurück | Zum Anfang | Nach vorne
recode_file | Nach oben | recode


recode

(PHP 4 , PHP 5)

recode -- Umkodierung eines Strings entsprechend einer Recode Anweisung

Beschreibung

string recode ( string request, string string)

Anmerkung: Dies ist ein Alias für recode_string(), der in PHP 4 hinzugefügt wurde.

Zurück | Zum Anfang | Nach vorne
recode_string | Nach oben | Reguläre Ausdrücke Funktionen (Perl-kompatibel)


Reguläre Ausdrücke Funktionen (Perl-kompatibel)

PHP Handbuch
Zurück Nach vorne

XCI. Reguläre Ausdrücke Funktionen (Perl-kompatibel)

Einführung

Die Syntax für Suchmuster, die in diesen Funtionen verwendet werden, ist Perl sehr ähnlich. Der Ausdruck muss von Begrenzungszeichen, z.B. von Schrägstrichen (/), umgeben sein. Jedes Zeichen kann als Begrenzungszeichen verwendet werden, solange es kein alphanumerisches Zeichen oder der Backslash (\) ist. Falls das Begrenzungszeichen im Ausdruck selbst verwendet wird, muss ihm der Backslash als Escape-Zeichen vorangestellt werden. Seit PHP 4.0.4 können Sie auch dem Perl-Stil entsprechend (), {}, [] und <> als Begrenzung für Suchmuster verwenden. Für eine ausführliche Erklärung siehe Suchmuster-Syntax.

An die Schlussbegrenzung können verschiedene Modifikatoren angehängt werden, die das Suchergebnis beeinflussen. Siehe Modifikatoren für Suchmuster.

Bei Verwendung der POSIX-erweiterten Reguläre Ausdrücke Funktionen unterstützt PHP auch reguläre Ausdrücke mit POSIX-erweiterter Syntax.

Warnung

Sie sollten sich über ein paar Einschränkungen von PCRE bewusst sein. Lesen Sie bitte http://www.pcre.org/pcre.txt für weitere Informationen.

Anforderungen

Die Unterstützung Regulärer Ausdrücke wird von der PCRE-Bibliothek, einem Open Source Software-Paket, geschrieben von Philip Hazel und unter dem Copyright der University of Cambridge, England, zur Verfügung gestellt. Es ist erhältlich unter ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.

Installation

Ab PHP 4.2.0 sind diese Funktionen standardmäßig aktiviert. Sie können die pcre-Funktionen mit --without-pcre-regex deaktivieren. Falls Sie nicht die mitgelieferte Bibliothek benutzen, geben Sie mit --with-pcre-regex=VERZEICHNIS an, in welchem Verzeichnis die Include- und Bibliotheks-Dateien von PCRE liegen. Bei älteren PHP-Versionen müssen Sie diese mit --with-pcre-regex[=VERZEICHNIS] konfigurieren und übersetzen, um diese Funktionen benutzen zu können.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Tabelle 1. PREG-Konstanten

Konstante | Beschreibung
PREG_PATTERN_ORDER | Sortiert die Ergebnisse so, dass $matches[0] ein Array von Übereinstimmungen mit dem ganzen Suchmuster ist, $matches[1] ein Array von Zeichenketten, die mit dem ersten geklammerten Teil-Suchmuster übereinstimmen und so weiter. Dieses Flag wird nur bei preg_match_all() verwendet.
PREG_SET_ORDER | Sortiert die Ergebnisse so, dass $matches[0] ein Array des ersten Satzes von Übereinstimmungen ist, $matches[1] ein Array des zweiten Satzes von Übereinstimmungen und so weiter. Dieses Flag wird nur bei preg_match_all() verwendet.
PREG_OFFSET_CAPTURE | Siehe Beschreibung von PREG_SPLIT_OFFSET_CAPTURE. Dieses Flag steht seit PHP 4.3.0 zur Verfügung.
PREG_SPLIT_NO_EMPTY | Dieses Flag teilt der Funktion preg_split() mit, dass sie nur nicht-leere Teile zurückgeben soll.
PREG_SPLIT_DELIM_CAPTURE | Dieses Flag teilt der Funktion preg_split() mit, dass sie auch die eingeklammerten Ausdrücke des Trennsymbol-Musters zurückgeben soll. Dieses Flag steht seit PHP 4.0.5 zur Verfügung.
PREG_SPLIT_OFFSET_CAPTURE | Wenn dieses Flag gesetzt ist, wird für jede gefundene Übereinstimmung auch der dazugehörige Versatz zurückgegeben. Beachten Sie, dass dies die Rückgabewerte in einem Array dahingehend ändert, dass jedes Element ein Array ist, das aus der übereinstimmenden Zeichenkette als erstem und deren Stelle im durchsuchten Text als zweitem Element besteht. Dieses Flag steht seit PHP 4.0.5 zur Verfügung und wird nur bei preg_split() verwendet.

Beispiele

Beispiel 1. Beispiele gültiger Suchmuster

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}

Beispiel 2. Beispiele ungültiger Suchmuster

  • /href='(.*)' - fehlender Begrenzer am Ende

  • /\w+\s*\w+/J - ungültiger Modifikator 'J'

  • 1-\d3-\d3-\d4| - fehlender Begrenzer am Anfang

Inhaltsverzeichnis
Pattern Modifiers -- Describes possible modifiers in regex patterns
Pattern Syntax -- Describes PCRE regex syntax
preg_grep -- Return array entries that match the pattern
preg_match_all -- Perform a global regular expression match
preg_match -- Perform a regular expression match
preg_quote -- Quote regular expression characters
preg_replace_callback -- Perform a regular expression search and replace using a callback
preg_replace -- Perform a regular expression search and replace
preg_split -- Split string by a regular expression

Zurück | Zum Anfang | Nach vorne
recode | Nach oben | Pattern Modifiers


Pattern Modifiers

Pattern Modifiers -- Describes possible modifiers in regex patterns

Description

The current possible PCRE modifiers are listed below. The names in parentheses refer to internal PCRE names for these modifiers.

i (PCRE_CASELESS)

If this modifier is set, letters in the pattern match both upper and lower case letters.

m (PCRE_MULTILINE)

By default, PCRE treats the subject string as consisting of a single "line" of characters (even if it actually contains several newlines). The "start of line" metacharacter (^) matches only at the start of the string, while the "end of line" metacharacter ($) matches only at the end of the string, or before a terminating newline (unless D modifier is set). This is the same as Perl.

When this modifier is set, the "start of line" and "end of line" constructs match immediately following or immediately before any newline in the subject string, respectively, as well as at the very start and end. This is equivalent to Perl's /m modifier. If there are no "\n" characters in a subject string, or no occurrences of ^ or $ in a pattern, setting this modifier has no effect.

s (PCRE_DOTALL)

If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines. Without it, newlines are excluded. This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier.

x (PCRE_EXTENDED)

If this modifier is set, whitespace data characters in the pattern are totally ignored except when escaped or inside a character class, and characters between an unescaped # outside a character class and the next newline character, inclusive, are also ignored. This is equivalent to Perl's /x modifier, and makes it possible to include comments inside complicated patterns. Note, however, that this applies only to data characters. Whitespace characters may never appear within special character sequences in a pattern, for example within the sequence (?( which introduces a conditional subpattern.

e

If this modifier is set, preg_replace() does normal substitution of backreferences in the replacement string, evaluates it as PHP code, and uses the result for replacing the search string.

Only preg_replace() uses this modifier; it is ignored by other PCRE functions.

Anmerkung: This modifier was not available in PHP 3.

A (PCRE_ANCHORED)

If this modifier is set, the pattern is forced to be "anchored", that is, it is constrained to match only at the start of the string which is being searched (the "subject string"). This effect can also be achieved by appropriate constructs in the pattern itself, which is the only way to do it in Perl.

D (PCRE_DOLLAR_ENDONLY)

If this modifier is set, a dollar metacharacter in the pattern matches only at the end of the subject string. Without this modifier, a dollar also matches immediately before the final character if it is a newline (but not before any other newlines). This modifier is ignored if m modifier is set. There is no equivalent to this modifier in Perl.

S

When a pattern is going to be used several times, it is worth spending more time analyzing it in order to speed up the time taken for matching. If this modifier is set, then this extra analysis is performed. At present, studying a pattern is useful only for non-anchored patterns that do not have a single fixed starting character.

U (PCRE_UNGREEDY)

This modifier inverts the "greediness" of the quantifiers so that they are not greedy by default, but become greedy if followed by "?". It is not compatible with Perl. It can also be set by a (?U) modifier setting within the pattern.

X (PCRE_EXTRA)

This modifier turns on additional functionality of PCRE that is incompatible with Perl. Any backslash in a pattern that is followed by a letter that has no special meaning causes an error, thus reserving these combinations for future expansion. By default, as in Perl, a backslash followed by a letter with no special meaning is treated as a literal. There are at present no other features controlled by this modifier.

u (PCRE_UTF8)

This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern strings are treated as UTF-8. This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32.

Zurück | Zum Anfang | Nach vorne
Reguläre Ausdrücke Funktionen (Perl-kompatibel) | Nach oben | Pattern Syntax


Pattern Syntax

Pattern Syntax -- Describes PCRE regex syntax

Description

The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5, with just a few differences (see below). The current implementation corresponds to Perl 5.005.

Differences From Perl

The differences described here are with respect to Perl 5.005.

  1. By default, a whitespace character is any character that the C library function isspace() recognizes, though it is possible to compile PCRE with alternative character type tables. Normally isspace() matches space, formfeed, newline, carriage return, horizontal tab, and vertical tab. Perl 5 no longer includes vertical tab in its set of whitespace characters. The \v escape that was in the Perl documentation for a long time was never in fact recognized. However, the character itself was treated as whitespace at least up to 5.002. In 5.004 and 5.005 it does not match \s.

  2. PCRE does not allow repeat quantifiers on lookahead assertions. Perl permits them, but they do not mean what you might think. For example, (?!a){3} does not assert that the next three characters are not "a". It just asserts that the next character is not "a" three times.

  3. Capturing subpatterns that occur inside negative lookahead assertions are counted, but their entries in the offsets vector are never set. Perl sets its numerical variables from any such patterns that are matched before the assertion fails to match something (thereby succeeding), but only if the negative lookahead assertion contains just one branch.

  4. Though binary zero characters are supported in the subject string, they are not allowed in a pattern string because it is passed as a normal C string, terminated by zero. The escape sequence "\\x00" can be used in the pattern to represent a binary zero.

  5. The following Perl escape sequences are not supported: \l, \u, \L, \U, \E, \Q. In fact these are implemented by Perl's general string-handling and are not part of its pattern matching engine.

  6. The Perl \G assertion is not supported as it is not relevant to single pattern matches.

  7. Fairly obviously, PCRE does not support the (?{code}) construction.

  8. There are at the time of writing some oddities in Perl 5.005_02 concerned with the settings of captured strings when part of a pattern is repeated. For example, matching "aba" against the pattern /^(a(b)?)+$/ sets $2 to the value "b", but matching "aabbaa" against /^(aa(bb)?)+$/ leaves $2 unset. However, if the pattern is changed to /^(aa(b(b))?)+$/ then $2 (and $3) get set. In Perl 5.004 $2 is set in both cases, and that is also TRUE of PCRE. If in the future Perl changes to a consistent state that is different, PCRE may change to follow.

  9. Another as yet unresolved discrepancy is that in Perl 5.005_02 the pattern /^(a)?(?(1)a|b)+$/ matches the string "a", whereas in PCRE it does not. However, in both Perl and PCRE /^(a)?a/ matched against "a" leaves $1 unset.

  10. PCRE provides some extensions to the Perl regular expression facilities:

    1. Although lookbehind assertions must match fixed length strings, each alternative branch of a lookbehind assertion can match a different length of string. Perl 5.005 requires them all to have the same length.

    2. If PCRE_DOLLAR_ENDONLY is set and PCRE_MULTILINE is not set, the $ meta-character matches only at the very end of the string.

    3. If PCRE_EXTRA is set, a backslash followed by a letter with no special meaning is faulted.

    4. If PCRE_UNGREEDY is set, the greediness of the repetition quantifiers is inverted, that is, by default they are not greedy, but if followed by a question mark they are.

Regular Expression Details

Introduction

The syntax and semantics of the regular expressions supported by PCRE are described below. Regular expressions are also described in the Perl documentation and in a number of other books, some of which have copious examples. Jeffrey Friedl's "Mastering Regular Expressions", published by O'Reilly (ISBN 1-56592-257-3), covers them in great detail. The description here is intended as reference documentation.

A regular expression is a pattern that is matched against a subject string from left to right. Most characters stand for themselves in a pattern, and match the corresponding characters in the subject. As a trivial example, the pattern The quick brown fox matches a portion of a subject string that is identical to itself.

Meta-characters

The power of regular expressions comes from the ability to include alternatives and repetitions in the pattern. These are encoded in the pattern by the use of meta-characters, which do not stand for themselves but instead are interpreted in some special way.

There are two different sets of meta-characters: those that are recognized anywhere in the pattern except within square brackets, and those that are recognized in square brackets. Outside square brackets, the meta-characters are as follows:

\

general escape character with several uses

^

assert start of subject (or line, in multiline mode)

$

assert end of subject (or line, in multiline mode)

.

match any character except newline (by default)

[

start character class definition

]

end character class definition

|

start of alternative branch

(

start subpattern

)

end subpattern

?

extends the meaning of (, also 0 or 1 quantifier, also quantifier minimizer

*

0 or more quantifier

+

1 or more quantifier

{

start min/max quantifier

}

end min/max quantifier

Part of a pattern that is in square brackets is called a "character class". In a character class the only meta-characters are:

\

general escape character

^

negate the class, but only if the first character

-

indicates character range

]

terminates the character class

The following sections describe the use of each of the meta-characters.

backslash

The backslash character has several uses. Firstly, if it is followed by a non-alphanumeric character, it takes away any special meaning that character may have. This use of backslash as an escape character applies both inside and outside character classes.

For example, if you want to match a "*" character, you write "\*" in the pattern. This applies whether or not the following character would otherwise be interpreted as a meta-character, so it is always safe to precede a non-alphanumeric with "\" to specify that it stands for itself. In particular, if you want to match a backslash, you write "\\".

If a pattern is compiled with the PCRE_EXTENDED option, whitespace in the pattern (other than in a character class) and characters between a "#" outside a character class and the next newline character are ignored. An escaping backslash can be used to include a whitespace or "#" character as part of the pattern.

A second use of backslash provides a way of encoding non-printing characters in patterns in a visible manner. There is no restriction on the appearance of non-printing characters, apart from the binary zero that terminates a pattern, but when a pattern is being prepared by text editing, it is usually easier to use one of the following escape sequences than the binary character it represents:

\a

alarm, that is, the BEL character (hex 07)

\cx

"control-x", where x is any character

\e

escape (hex 1B)

\f

formfeed (hex 0C)

\n

newline (hex 0A)

\r

carriage return (hex 0D)

\t

tab (hex 09)

\xhh

character with hex code hh

\ddd

character with octal code ddd, or backreference

The precise effect of "\cx" is as follows: if "x" is a lower case letter, it is converted to upper case. Then bit 6 of the character (hex 40) is inverted. Thus "\cz" becomes hex 1A, but "\c{" becomes hex 3B, while "\c;" becomes hex 7B.

After "\x", up to two hexadecimal digits are read (letters can be in upper or lower case).

After "\0" up to two further octal digits are read. In both cases, if there are fewer than two digits, just those that are present are used. Thus the sequence "\0\x\07" specifies two binary zeros followed by a BEL character. Make sure you supply two digits after the initial zero if the character that follows is itself an octal digit.

The handling of a backslash followed by a digit other than 0 is complicated. Outside a character class, PCRE reads it and any following digits as a decimal number. If the number is less than 10, or if there have been at least that many previous capturing left parentheses in the expression, the entire sequence is taken as a back reference. A description of how this works is given later, following the discussion of parenthesized subpatterns.

Inside a character class, or if the decimal number is greater than 9 and there have not been that many capturing subpatterns, PCRE re-reads up to three octal digits following the backslash, and generates a single byte from the least significant 8 bits of the value. Any subsequent digits stand for themselves. For example:

\040

is another way of writing a space

\40

is the same, provided there are fewer than 40 previous capturing subpatterns

\7

is always a back reference

\11

might be a back reference, or another way of writing a tab

\011

is always a tab

\0113

is a tab followed by the character "3"

\113

is the character with octal code 113 (since there can be no more than 99 back references)

\377

is a byte consisting entirely of 1 bits

\81

is either a back reference, or a binary zero followed by the two characters "8" and "1"

Note that octal values of 100 or greater must not be introduced by a leading zero, because no more than three octal digits are ever read.

All the sequences that define a single byte value can be used both inside and outside character classes. In addition, inside a character class, the sequence "\b" is interpreted as the backspace character (hex 08). Outside a character class it has a different meaning (see below).

The third use of backslash is for specifying generic character types:

\d

any decimal digit

\D

any character that is not a decimal digit

\s

any whitespace character

\S

any character that is not a whitespace character

\w

any "word" character

\W

any "non-word" character

Each pair of escape sequences partitions the complete set of characters into two disjoint sets. Any given character matches one, and only one, of each pair.

A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word". The definition of letters and digits is controlled by PCRE's character tables, and may vary if locale-specific matching is taking place (see "Locale support" above). For example, in the "fr" (French) locale, some character codes greater than 128 are used for accented letters, and these are matched by \w.

These character type sequences can appear both inside and outside character classes. They each match one character of the appropriate type. If the current matching point is at the end of the subject string, all of them fail, since there is no character to match.

The fourth use of backslash is for certain simple assertions. An assertion specifies a condition that has to be met at a particular point in a match, without consuming any characters from the subject string. The use of subpatterns for more complicated assertions is described below. The backslashed assertions are

\b

word boundary

\B

not a word boundary

\A

start of subject (independent of multiline mode)

\Z

end of subject or newline at end (independent of multiline mode)

\z

end of subject(independent of multiline mode)

These assertions may not appear in character classes (but note that "\b" has a different meaning, namely the backspace character, inside a character class).

A word boundary is a position in the subject string where the current character and the previous character do not both match \w or \W (i.e. one matches \w and the other matches \W), or the start or end of the string if the first or last character matches \w, respectively.

The \A, \Z, and \z assertions differ from the traditional circumflex and dollar (described below) in that they only ever match at the very start and end of the subject string, whatever options are set. They are not affected by the PCRE_MULTILINE or PCRE_DOLLAR_ENDONLY options. The difference between \Z and \z is that \Z matches before a newline that is the last character of the string as well as at the end of the string, whereas \z matches only at the end.

Circumflex and dollar

Outside a character class, in the default matching mode, the circumflex character is an assertion which is true only if the current matching point is at the start of the subject string. Inside a character class, circumflex has an entirely different meaning (see below).

Circumflex need not be the first character of the pattern if a number of alternatives are involved, but it should be the first thing in each alternative in which it appears if the pattern is ever to match that branch. If all possible alternatives start with a circumflex, that is, if the pattern is constrained to match only at the start of the subject, it is said to be an "anchored" pattern. (There are also other constructs that can cause a pattern to be anchored.)

A dollar character is an assertion which is TRUE only if the current matching point is at the end of the subject string, or immediately before a newline character that is the last character in the string (by default). Dollar need not be the last character of the pattern if a number of alternatives are involved, but it should be the last item in any branch in which it appears. Dollar has no special meaning in a character class.

The meaning of dollar can be changed so that it matches only at the very end of the string, by setting the PCRE_DOLLAR_ENDONLY option at compile or matching time. This does not affect the \Z assertion.

The meanings of the circumflex and dollar characters are changed if the PCRE_MULTILINE option is set. When this is the case, they match immediately after and immediately before an internal "\n" character, respectively, in addition to matching at the start and end of the subject string. For example, the pattern /^abc$/ matches the subject string "def\nabc" in multiline mode, but not otherwise. Consequently, patterns that are anchored in single line mode because all branches start with "^" are not anchored in multiline mode. The PCRE_DOLLAR_ENDONLY option is ignored if PCRE_MULTILINE is set.

Note that the sequences \A, \Z, and \z can be used to match the start and end of the subject in both modes, and if all branches of a pattern start with \A is it always anchored, whether PCRE_MULTILINE is set or not.

FULL STOP

Outside a character class, a dot in the pattern matches any one character in the subject, including a non-printing character, but not (by default) newline. If the PCRE_DOTALL option is set, then dots match newlines as well. The handling of dot is entirely independent of the handling of circumflex and dollar, the only relationship being that they both involve newline characters. Dot has no special meaning in a character class.

Square brackets

An opening square bracket introduces a character class, terminated by a closing square bracket. A closing square bracket on its own is not special. If a closing square bracket is required as a member of the class, it should be the first data character in the class (after an initial circumflex, if present) or escaped with a backslash.

A character class matches a single character in the subject; the character must be in the set of characters defined by the class, unless the first character in the class is a circumflex, in which case the subject character must not be in the set defined by the class. If a circumflex is actually required as a member of the class, ensure it is not the first character, or escape it with a backslash.

For example, the character class [aeiou] matches any lower case vowel, while [^aeiou] matches any character that is not a lower case vowel. Note that a circumflex is just a convenient notation for specifying the characters which are in the class by enumerating those that are not. It is not an assertion: it still consumes a character from the subject string, and fails if the current pointer is at the end of the string.

When caseless matching is set, any letters in a class represent both their upper case and lower case versions, so for example, a caseless [aeiou] matches "A" as well as "a", and a caseless [^aeiou] does not match "A", whereas a caseful version would.

The newline character is never treated in any special way in character classes, whatever the setting of the PCRE_DOTALL or PCRE_MULTILINE options is. A class such as [^a] will always match a newline.

The minus (hyphen) character can be used to specify a range of characters in a character class. For example, [d-m] matches any letter between d and m, inclusive. If a minus character is required in a class, it must be escaped with a backslash or appear in a position where it cannot be interpreted as indicating a range, typically as the first or last character in the class.

It is not possible to have the literal character "]" as the end character of a range. A pattern such as [W-]46] is interpreted as a class of two characters ("W" and "-") followed by a literal string "46]", so it would match "W46]" or "-46]". However, if the "]" is escaped with a backslash it is interpreted as the end of range, so [W-\]46] is interpreted as a single class containing a range followed by two separate characters. The octal or hexadecimal representation of "]" can also be used to end a range.

Ranges operate in ASCII collating sequence. They can also be used for characters specified numerically, for example [\000-\037]. If a range that includes letters is used when caseless matching is set, it matches the letters in either case. For example, [W-c] is equivalent to [][\^_`wxyzabc], matched caselessly, and if character tables for the "fr" locale are in use, [\xc8-\xcb] matches accented E characters in both cases.

The character types \d, \D, \s, \S, \w, and \W may also appear in a character class, and add the characters that they match to the class. For example, [\dABCDEF] matches any hexadecimal digit. A circumflex can conveniently be used with the upper case character types to specify a more restricted set of characters than the matching lower case type. For example, the class [^\W_] matches any letter or digit, but not underscore.

All non-alphanumeric characters other than \, -, ^ (at the start) and the terminating ] are non-special in character classes, but it does no harm if they are escaped.

Vertical bar

Vertical bar characters are used to separate alternative patterns. For example, the pattern gilbert|sullivan matches either "gilbert" or "sullivan". Any number of alternatives may appear, and an empty alternative is permitted (matching the empty string). The matching process tries each alternative in turn, from left to right, and the first one that succeeds is used. If the alternatives are within a subpattern (defined below), "succeeds" means matching the rest of the main pattern as well as the alternative in the subpattern.

Internal option setting

The settings of PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, and PCRE_EXTENDED can be changed from within the pattern by a sequence of Perl option letters enclosed between "(?" and ")". The option letters are

Tabelle 1. Internal option letters

i | for PCRE_CASELESS
m | for PCRE_MULTILINE
s | for PCRE_DOTALL
x | for PCRE_EXTENDED

For example, (?im) sets caseless, multiline matching. It is also possible to unset these options by preceding the letter with a hyphen, and a combined setting and unsetting such as (?im-sx), which sets PCRE_CASELESS and PCRE_MULTILINE while unsetting PCRE_DOTALL and PCRE_EXTENDED, is also permitted. If a letter appears both before and after the hyphen, the option is unset.

The scope of these option changes depends on where in the pattern the setting occurs. For settings that are outside any subpattern (defined below), the effect is the same as if the options were set or unset at the start of matching. The following patterns all behave in exactly the same way:

(?i)abc
a(?i)bc
ab(?i)c
abc(?i)

which in turn is the same as compiling the pattern abc with PCRE_CASELESS set. In other words, such "top level" settings apply to the whole pattern (unless there are other changes inside subpatterns). If there is more than one setting of the same option at top level, the rightmost setting is used.

If an option change occurs inside a subpattern, the effect is different. This is a change of behaviour in Perl 5.005. An option change inside a subpattern affects only that part of the subpattern that follows it, so (a(?i)b)c matches abc and aBc and no other strings (assuming PCRE_CASELESS is not used). By this means, options can be made to have different settings in different parts of the pattern. Any changes made in one alternative do carry on into subsequent branches within the same subpattern. For example, (a(?i)b|c) matches "ab", "aB", "c", and "C", even though when matching "C" the first branch is abandoned before the option setting. This is because the effects of option settings happen at compile time. There would be some very weird behaviour otherwise.

The PCRE-specific options PCRE_UNGREEDY and PCRE_EXTRA can be changed in the same way as the Perl-compatible options by using the characters U and X respectively. The (?X) flag setting is special in that it must always occur earlier in the pattern than any of the additional features it turns on, even when it is at top level. It is best put at the start.

subpatterns

Subpatterns are delimited by parentheses (round brackets), which can be nested. Marking part of a pattern as a subpattern does two things:

1. It localizes a set of alternatives. For example, the pattern cat(aract|erpillar|) matches one of the words "cat", "cataract", or "caterpillar". Without the parentheses, it would match "cataract", "erpillar" or the empty string.

2. It sets up the subpattern as a capturing subpattern (as defined above). When the whole pattern matches, that portion of the subject string that matched the subpattern is passed back to the caller via the ovector argument of pcre_exec(). Opening parentheses are counted from left to right (starting from 1) to obtain the numbers of the capturing subpatterns.

For example, if the string "the red king" is matched against the pattern the ((red|white) (king|queen)) the captured substrings are "red king", "red", and "king", and are numbered 1, 2, and 3.

The fact that plain parentheses fulfil two functions is not always helpful. There are often times when a grouping subpattern is required without a capturing requirement. If an opening parenthesis is followed by "?:", the subpattern does not do any capturing, and is not counted when computing the number of any subsequent capturing subpatterns. For example, if the string "the white queen" is matched against the pattern the ((?:red|white) (king|queen)) the captured substrings are "white queen" and "queen", and are numbered 1 and 2. The maximum number of captured substrings is 99, and the maximum number of all subpatterns, both capturing and non-capturing, is 200.

As a convenient shorthand, if any option settings are required at the start of a non-capturing subpattern, the option letters may appear between the "?" and the ":". Thus the two patterns

(?i:saturday|sunday)
(?:(?i)saturday|sunday)

match exactly the same set of strings. Because alternative branches are tried from left to right, and options are not reset until the end of the subpattern is reached, an option setting in one branch does affect subsequent branches, so the above patterns match "SUNDAY" as well as "Saturday".

Repetition

Repetition is specified by quantifiers, which can follow any of the following items:

  • a single character, possibly escaped

  • the . metacharacter

  • a character class

  • a back reference (see next section)

  • a parenthesized subpattern (unless it is an assertion - see below)

The general repetition quantifier specifies a minimum and maximum number of permitted matches, by giving the two numbers in curly brackets (braces), separated by a comma. The numbers must be less than 65536, and the first must be less than or equal to the second. For example: z{2,4} matches "zz", "zzz", or "zzzz". A closing brace on its own is not a special character. If the second number is omitted, but the comma is present, there is no upper limit; if the second number and the comma are both omitted, the quantifier specifies an exact number of required matches. Thus [aeiou]{3,} matches at least 3 successive vowels, but may match many more, while \d{8} matches exactly 8 digits. An opening curly bracket that appears in a position where a quantifier is not allowed, or one that does not match the syntax of a quantifier, is taken as a literal character. For example, {,6} is not a quantifier, but a literal string of four characters.

The quantifier {0} is permitted, causing the expression to behave as if the previous item and the quantifier were not present.

For convenience (and historical compatibility) the three most common quantifiers have single-character abbreviations:

Tabelle 2. Single-character quantifiers

* | equivalent to {0,}
+ | equivalent to {1,}
? | equivalent to {0,1}

It is possible to construct infinite loops by following a subpattern that can match no characters with a quantifier that has no upper limit, for example: (a?)*

Earlier versions of Perl and PCRE used to give an error at compile time for such patterns. However, because there are cases where this can be useful, such patterns are now accepted, but if any repetition of the subpattern does in fact match no characters, the loop is forcibly broken.

By default, the quantifiers are "greedy", that is, they match as much as possible (up to the maximum number of permitted times), without causing the rest of the pattern to fail. The classic example of where this gives problems is in trying to match comments in C programs. These appear between the sequences /* and */ and within the sequence, individual * and / characters may appear. An attempt to match C comments by applying the pattern /\*.*\*/ to the string /* first command */ not comment /* second comment */ fails, because it matches the entire string due to the greediness of the .* item.

However, if a quantifier is followed by a question mark, then it ceases to be greedy, and instead matches the minimum number of times possible, so the pattern /\*.*?\*/ does the right thing with the C comments. The meaning of the various quantifiers is not otherwise changed, just the preferred number of matches. Do not confuse this use of question mark with its use as a quantifier in its own right. Because it has two uses, it can sometimes appear doubled, as in \d??\d which matches one digit by preference, but can match two if that is the only way the rest of the pattern matches.

If the PCRE_UNGREEDY option is set (an option which is not available in Perl) then the quantifiers are not greedy by default, but individual ones can be made greedy by following them with a question mark. In other words, it inverts the default behaviour.

When a parenthesized subpattern is quantified with a minimum repeat count that is greater than 1 or with a limited maximum, more store is required for the compiled pattern, in proportion to the size of the minimum or maximum.

If a pattern starts with .* or .{0,} and the PCRE_DOTALL option (equivalent to Perl's /s) is set, thus allowing the . to match newlines, then the pattern is implicitly anchored, because whatever follows will be tried against every character position in the subject string, so there is no point in retrying the overall match at any position after the first. PCRE treats such a pattern as though it were preceded by \A. In cases where it is known that the subject string contains no newlines, it is worth setting PCRE_DOTALL when the pattern begins with .* in order to obtain this optimization, or alternatively using ^ to indicate anchoring explicitly.

When a capturing subpattern is repeated, the value captured is the substring that matched the final iteration. For example, after (tweedle[dume]{3}\s*)+ has matched "tweedledum tweedledee" the value of the captured substring is "tweedledee". However, if there are nested capturing subpatterns, the corresponding captured values may have been set in previous iterations. For example, after /(a|(b))+/ matches "aba" the value of the second captured substring is "b".

BACK REFERENCES

Outside a character class, a backslash followed by a digit greater than 0 (and possibly further digits) is a back reference to a capturing subpattern earlier (i.e. to its left) in the pattern, provided there have been that many previous capturing left parentheses.

However, if the decimal number following the backslash is less than 10, it is always taken as a back reference, and causes an error only if there are not that many capturing left parentheses in the entire pattern. In other words, the parentheses that are referenced need not be to the left of the reference for numbers less than 10. See the section entitled "Backslash" above for further details of the handling of digits following a backslash.

A back reference matches whatever actually matched the capturing subpattern in the current subject string, rather than anything matching the subpattern itself. So the pattern (sens|respons)e and \1ibility matches "sense and sensibility" and "response and responsibility", but not "sense and responsibility". If caseful matching is in force at the time of the back reference, then the case of letters is relevant. For example, ((?i)rah)\s+\1 matches "rah rah" and "RAH RAH", but not "RAH rah", even though the original capturing subpattern is matched caselessly.

There may be more than one back reference to the same subpattern. If a subpattern has not actually been used in a particular match, then any back references to it always fail. For example, the pattern (a|(bc))\2 always fails if it starts to match "a" rather than "bc". Because there may be up to 99 back references, all digits following the backslash are taken as part of a potential back reference number. If the pattern continues with a digit character, then some delimiter must be used to terminate the back reference. If the PCRE_EXTENDED option is set, this can be whitespace. Otherwise an empty comment can be used.

A back reference that occurs inside the parentheses to which it refers fails when the subpattern is first used, so, for example, (a\1) never matches. However, such references can be useful inside repeated subpatterns. For example, the pattern (a|b\1)+ matches any number of "a"s and also "aba", "ababaa" etc. At each iteration of the subpattern, the back reference matches the character string corresponding to the previous iteration. In order for this to work, the pattern must be such that the first iteration does not need to match the back reference. This can be done using alternation, as in the example above, or by a quantifier with a minimum of zero.

Assertions

An assertion is a test on the characters following or preceding the current matching point that does not actually consume any characters. The simple assertions coded as \b, \B, \A, \Z, \z, ^ and $ are described above. More complicated assertions are coded as subpatterns. There are two kinds: those that look ahead of the current position in the subject string, and those that look behind it.

An assertion subpattern is matched in the normal way, except that it does not cause the current matching position to be changed. Lookahead assertions start with (?= for positive assertions and (?! for negative assertions. For example, \w+(?=;) matches a word followed by a semicolon, but does not include the semicolon in the match, and foo(?!bar) matches any occurrence of "foo" that is not followed by "bar". Note that the apparently similar pattern (?!foo)bar does not find an occurrence of "bar" that is preceded by something other than "foo"; it finds any occurrence of "bar" whatsoever, because the assertion (?!foo) is always TRUE when the next three characters are "bar". A lookbehind assertion is needed to achieve this effect.

Lookbehind assertions start with (?<= for positive assertions and (?<! for negative assertions. For example, (?<!foo)bar does find an occurrence of "bar" that is not preceded by "foo". The contents of a lookbehind assertion are restricted such that all the strings it matches must have a fixed length. However, if there are several alternatives, they do not all have to have the same fixed length. Thus (?<=bullock|donkey) is permitted, but (?<!dogs?|cats?) causes an error at compile time. Branches that match different length strings are permitted only at the top level of a lookbehind assertion. This is an extension compared with Perl 5.005, which requires all branches to match the same length of string. An assertion such as (?<=ab(c|de)) is not permitted, because its single top-level branch can match two different lengths, but it is acceptable if rewritten to use two top-level branches: (?<=abc|abde) The implementation of lookbehind assertions is, for each alternative, to temporarily move the current position back by the fixed width and then try to match. If there are insufficient characters before the current position, the match is deemed to fail. Lookbehinds in conjunction with once-only subpatterns can be particularly useful for matching at the ends of strings; an example is given at the end of the section on once-only subpatterns.

Several assertions (of any sort) may occur in succession. For example, (?<=\d{3})(?<!999)foo matches "foo" preceded by three digits that are not "999". Notice that each of the assertions is applied independently at the same point in the subject string. First there is a check that the previous three characters are all digits, then there is a check that the same three characters are not "999". This pattern does not match "foo" preceded by six characters, the first of which are digits and the last three of which are not "999". For example, it doesn't match "123abcfoo". A pattern to do that is (?<=\d{3}...)(?<!999)foo

This time the first assertion looks at the preceding six characters, checking that the first three are digits, and then the second assertion checks that the preceding three characters are not "999".

Assertions can be nested in any combination. For example, (?<=(?<!foo)bar)baz matches an occurrence of "baz" that is preceded by "bar" which in turn is not preceded by "foo", while (?<=\d{3}(?!999)...)foo is another pattern which matches "foo" preceded by three digits and any three characters that are not "999".

Assertion subpatterns are not capturing subpatterns, and may not be repeated, because it makes no sense to assert the same thing several times. If any kind of assertion contains capturing subpatterns within it, these are counted for the purposes of numbering the capturing subpatterns in the whole pattern. However, substring capturing is carried out only for positive assertions, because it does not make sense for negative assertions.

Assertions count towards the maximum of 200 parenthesized subpatterns.

Once-only subpatterns

With both maximizing and minimizing repetition, failure of what follows normally causes the repeated item to be re-evaluated to see if a different number of repeats allows the rest of the pattern to match. Sometimes it is useful to prevent this, either to change the nature of the match, or to cause it fail earlier than it otherwise might, when the author of the pattern knows there is no point in carrying on.

Consider, for example, the pattern \d+foo when applied to the subject line 123456bar

After matching all 6 digits and then failing to match "foo", the normal action of the matcher is to try again with only 5 digits matching the \d+ item, and then with 4, and so on, before ultimately failing. Once-only subpatterns provide the means for specifying that once a portion of the pattern has matched, it is not to be re-evaluated in this way, so the matcher would give up immediately on failing to match "foo" the first time. The notation is another kind of special parenthesis, starting with (?> as in this example: (?>\d+)bar

This kind of parenthesis "locks up" the part of the pattern it contains once it has matched, and a failure further into the pattern is prevented from backtracking into it. Backtracking past it to previous items, however, works as normal.

An alternative description is that a subpattern of this type matches the string of characters that an identical standalone pattern would match, if anchored at the current point in the subject string.

Once-only subpatterns are not capturing subpatterns. Simple cases such as the above example can be thought of as a maximizing repeat that must swallow everything it can. So, while both \d+ and \d+? are prepared to adjust the number of digits they match in order to make the rest of the pattern match, (?>\d+) can only match an entire sequence of digits.

This construction can of course contain arbitrarily complicated subpatterns, and it can be nested.

Once-only subpatterns can be used in conjunction with look-behind assertions to specify efficient matching at the end of the subject string. Consider a simple pattern such as abcd$ when applied to a long string which does not match. Because matching proceeds from left to right, PCRE will look for each "a" in the subject and then see if what follows matches the rest of the pattern. If the pattern is specified as ^.*abcd$ then the initial .* matches the entire string at first, but when this fails (because there is no following "a"), it backtracks to match all but the last character, then all but the last two characters, and so on. Once again the search for "a" covers the entire string, from right to left, so we are no better off. However, if the pattern is written as ^(?>.*)(?<=abcd) then there can be no backtracking for the .* item; it can match only the entire string. The subsequent lookbehind assertion does a single test on the last four characters. If it fails, the match fails immediately. For long strings, this approach makes a significant difference to the processing time.

When a pattern contains an unlimited repeat inside a subpattern that can itself be repeated an unlimited number of times, the use of a once-only subpattern is the only way to avoid some failing matches taking a very long time indeed. The pattern (\D+|<\d+>)*[!?] matches an unlimited number of substrings that either consist of non-digits, or digits enclosed in <>, followed by either ! or ?. When it matches, it runs quickly. However, if it is applied to aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa it takes a long time before reporting failure. This is because the string can be divided between the two repeats in a large number of ways, and all have to be tried. (The example used [!?] rather than a single character at the end, because both PCRE and Perl have an optimization that allows for fast failure when a single character is used. They remember the last single character that is required for a match, and fail early if it is not present in the string.) If the pattern is changed to ((?>\D+)|<\d+>)*[!?] sequences of non-digits cannot be broken, and failure happens quickly.

Conditional subpatterns

It is possible to cause the matching process to obey a subpattern conditionally or to choose between two alternative subpatterns, depending on the result of an assertion, or whether a previous capturing subpattern matched or not. The two possible forms of conditional subpattern are

(?(condition)yes-pattern)
(?(condition)yes-pattern|no-pattern)

If the condition is satisfied, the yes-pattern is used; otherwise the no-pattern (if present) is used. If there are more than two alternatives in the subpattern, a compile-time error occurs.

There are two kinds of condition. If the text between the parentheses consists of a sequence of digits, then the condition is satisfied if the capturing subpattern of that number has previously matched. Consider the following pattern, which contains non-significant white space to make it more readable (assume the PCRE_EXTENDED option) and to divide it into three parts for ease of discussion: ( \( )? [^()]+ (?(1) \) )

The first part matches an optional opening parenthesis, and if that character is present, sets it as the first captured substring. The second part matches one or more characters that are not parentheses. The third part is a conditional subpattern that tests whether the first set of parentheses matched or not. If they did, that is, if subject started with an opening parenthesis, the condition is TRUE, and so the yes-pattern is executed and a closing parenthesis is required. Otherwise, since no-pattern is not present, the subpattern matches nothing. In other words, this pattern matches a sequence of non-parentheses, optionally enclosed in parentheses.

If the condition is not a sequence of digits, it must be an assertion. This may be a positive or negative lookahead or lookbehind assertion. Consider this pattern, again containing non-significant white space, and with the two alternatives on the second line:

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} )

The condition is a positive lookahead assertion that matches an optional sequence of non-letters followed by a letter. In other words, it tests for the presence of at least one letter in the subject. If a letter is found, the subject is matched against the first alternative; otherwise it is matched against the second. This pattern matches strings in one of the two forms dd-aaa-dd or dd-dd-dd, where aaa are letters and dd are digits.

Comments

The sequence (?# marks the start of a comment which continues up to the next closing parenthesis. Nested parentheses are not permitted. The characters that make up a comment play no part in the pattern matching at all.

If the PCRE_EXTENDED option is set, an unescaped # character outside a character class introduces a comment that continues up to the next newline character in the pattern.

Recursive patterns

Consider the problem of matching a string in parentheses, allowing for unlimited nested parentheses. Without the use of recursion, the best that can be done is to use a pattern that matches up to some fixed depth of nesting. It is not possible to handle an arbitrary nesting depth. Perl 5.6 has provided an experimental facility that allows regular expressions to recurse (among other things). The special item (?R) is provided for the specific case of recursion. This PCRE pattern solves the parentheses problem (assume the PCRE_EXTENDED option is set so that white space is ignored): \( ( (?>[^()]+) | (?R) )* \)

First it matches an opening parenthesis. Then it matches any number of substrings which can either be a sequence of non-parentheses, or a recursive match of the pattern itself (i.e. a correctly parenthesized substring). Finally there is a closing parenthesis.

This particular example pattern contains nested unlimited repeats, and so the use of a once-only subpattern for matching strings of non-parentheses is important when applying the pattern to strings that do not match. For example, when it is applied to (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() it yields "no match" quickly. However, if a once-only subpattern is not used, the match runs for a very long time indeed because there are so many different ways the + and * repeats can carve up the subject, and all have to be tested before failure can be reported.

The values set for any capturing subpatterns are those from the outermost level of the recursion at which the subpattern value is set. If the pattern above is matched against (ab(cd)ef) the value for the capturing parentheses is "ef", which is the last value taken on at the top level. If additional parentheses are added, giving \( ( ( (?>[^()]+) | (?R) )* ) \) then the string they capture is "ab(cd)ef", the contents of the top level parentheses. If there are more than 15 capturing parentheses in a pattern, PCRE has to obtain extra memory to store data during a recursion, which it does by using pcre_malloc, freeing it via pcre_free afterwards. If no memory can be obtained, it saves data for the first 15 capturing parentheses only, as there is no way to give an out-of-memory error from within a recursion.

Performances

Certain items that may appear in patterns are more efficient than others. It is more efficient to use a character class like [aeiou] than a set of alternatives such as (a|e|i|o|u). In general, the simplest construction that provides the required behaviour is usually the most efficient. Jeffrey Friedl's book contains a lot of discussion about optimizing regular expressions for efficient performance.

When a pattern begins with .* and the PCRE_DOTALL option is set, the pattern is implicitly anchored by PCRE, since it can match only at the start of a subject string. However, if PCRE_DOTALL is not set, PCRE cannot make this optimization, because the . metacharacter does not then match a newline, and if the subject string contains newlines, the pattern may match from the character immediately following one of them instead of from the very start. For example, the pattern (.*) second matches the subject "first\nand second" (where \n stands for a newline character) with the first captured substring being "and". In order to do this, PCRE has to retry the match starting after every newline in the subject.

If you are using such a pattern with subject strings that do not contain newlines, the best performance is obtained by setting PCRE_DOTALL, or starting the pattern with ^.* to indicate explicit anchoring. That saves PCRE from having to scan along the subject looking for a newline to restart at.

Beware of patterns that contain nested indefinite repeats. These can take a long time to run when applied to a string that does not match. Consider the pattern fragment (a+)*

This can match "aaaa" in 33 different ways, and this number increases very rapidly as the string gets longer. (The * repeat can match 0, 1, 2, 3, or 4 times, and for each of those cases other than 0, the + repeats can match different numbers of times.) When the remainder of the pattern is such that the entire match is going to fail, PCRE has in principle to try every possible variation, and this can take an extremely long time.

An optimization catches some of the more simple cases such as (a+)*b where a literal character follows. Before embarking on the standard matching procedure, PCRE checks that there is a "b" later in the subject string, and if there is not, it fails the match immediately. However, when there is no following literal this optimization cannot be used. You can see the difference by comparing the behaviour of (a+)*\d with the pattern above. The former gives a failure almost instantly when applied to a whole line of "a" characters, whereas the latter takes an appreciable time with strings longer than about 20 characters.

Zurück | Zum Anfang | Nach vorne
Pattern Modifiers | Nach oben | preg_grep


preg_grep

(PHP 4 , PHP 5)

preg_grep -- Return array entries that match the pattern

Description

array preg_grep ( string pattern, array input [, int flags])

preg_grep() returns the array consisting of the elements of the input array that match the given pattern.

flags can be the following flag:

PREG_GREP_INVERT

If this flag is passed, preg_grep() returns the elements of the input array that do not match the given pattern. This flag is available since PHP 4.2.0.

Since PHP 4.0.4, the results returned by preg_grep() are indexed using the keys from the input array. If this behavior is undesirable, use array_values() on the array returned by preg_grep() to reindex the values.

Beispiel 1. preg_grep() example

<?php
// return all array elements
// containing floating point numbers
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Zurück | Zum Anfang | Nach vorne
Pattern Syntax | Nach oben | preg_match_all


preg_match_all

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_match_all -- Perform a global regular expression match

Description

int preg_match_all ( string pattern, string subject, array matches [, int flags [, int offset]])

Searches subject for all matches to the regular expression given in pattern and puts them in matches in the order specified by flags.

After the first match is found, the subsequent searches are continued on from end of the last match.

flags can be a combination of the following flags (note that it doesn't make sense to use PREG_PATTERN_ORDER together with PREG_SET_ORDER):

PREG_PATTERN_ORDER

Orders results so that $matches[0] is an array of full pattern matches, $matches[1] is an array of strings matched by the first parenthesized subpattern, and so on.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=left>this is a test</div>",
    $out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

This example will produce:

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test

So, $out[0] contains array of strings that matched full pattern, and $out[1] contains array of strings enclosed by tags.

PREG_SET_ORDER

Orders results so that $matches[0] is an array of first set of matches, $matches[1] is an array of second set of matches, and so on.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=\"left\">this is a test</div>",
    $out, PREG_SET_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

This example will produce:

<b>example: </b>, example:
<div align="left">this is a test</div>, this is a test

In this case, $matches[0] is the first set of matches, and $matches[0][0] has text matched by full pattern, $matches[0][1] has text matched by first subpattern and so on. Similarly, $matches[1] is the second set of matches, etc.

PREG_OFFSET_CAPTURE

If this flag is passed, for every occurring match the appendant string offset will also be returned. Note that this changes the return value in an array where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1. This flag is available since PHP 4.3.0 .

If no order flag is given, PREG_PATTERN_ORDER is assumed.

Normally, the search starts from the beginning of the subject string. The optional parameter offset can be used to specify the alternate place from which to start the search. It is equivalent to passing substr()($subject, $offset) to preg_match() in place of the subject string. The offset parameter is available since PHP 4.3.3.

Returns the number of full pattern matches (which might be zero), or FALSE if an error occurred.

Beispiel 1. Getting all phone numbers out of some text.

<?php
preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                "Call 555-1212 or 1-800-555-1212", $phones);
?>

Beispiel 2. Find matching HTML tags (greedy)

<?php
// The \\2 is an example of backreferencing. This tells pcre that
// it must match the second set of parentheses in the regular expression
// itself, which would be the ([\w]+) in this case. The extra backslash is
// required because the string is in double quotes.
$html = "<b>bold text</b><a href=howdy.html>click me</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);

for ($i=0; $i< count($matches[0]); $i++) {
  echo "matched: " . $matches[0][$i] . "\n";
  echo "part 1: " . $matches[1][$i] . "\n";
  echo "part 2: " . $matches[3][$i] . "\n";
  echo "part 3: " . $matches[4][$i] . "\n\n";
}
?>

This example will produce:

matched: <b>bold text</b>
part 1: <b>
part 2: bold text
part 3: </b>

matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: click me
part 3: </a>

See also preg_match(),
preg_replace(),
and preg_split().

Zurück | Zum Anfang | Nach vorne
preg_grep | Nach oben | preg_match


preg_match

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_match -- Perform a regular expression match

Description

int preg_match ( string pattern, string subject [, array matches [, int flags [, int offset]]])

Searches subject for a match to the regular expression given in pattern.

If matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.

flags can be the following flag:

PREG_OFFSET_CAPTURE

If this flag is passed, for every occurring match the appendant string offset will also be returned. Note that this changes the return value in an array where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1. This flag is available since PHP 4.3.0 .

The flags parameter is available since PHP 4.3.0.

Normally, the search starts from the beginning of the subject string. The optional parameter offset can be used to specify the alternate place from which to start the search. It is equivalent to passing substr()($subject, $offset) to preg_match() in place of the subject string. The offset parameter is available since PHP 4.3.3.

preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match. preg_match_all() on the contrary will continue until it reaches the end of subject. preg_match() returns FALSE if an error occurred.

Tipp: Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() or strstr() instead as they will be faster.

Beispiel 1. Find the string of text "php"

<?php
// The "i" after the pattern delimiter indicates a case-insensitive search
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}
?>

Beispiel 2. Find the word "web"

<?php
/* The \b in the pattern indicates a word boundary, so only the distinct
* word "web" is matched, and not a word partial like "webbing" or "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}

if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}
?>

Beispiel 3. Getting the domain name out of a URL

<?php
// get host name from URL
preg_match("/^(http:\/\/)?([^\/]+)/i",
    "http://www.php.net/index.html", $matches);
$host = $matches[2];

// get last two segments of host name
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

This example will produce:

domain name is: php.net

See also preg_match_all(),
preg_replace(), and
preg_split().

Zurück | Zum Anfang | Nach vorne
preg_match_all | Nach oben | preg_quote


preg_quote

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_quote -- Quote regular expression characters

Description

string preg_quote ( string str [, string delimiter])

preg_quote() takes str and puts a backslash in front of every character that is part of the regular expression syntax. This is useful if you have a run-time string that you need to match in some text and the string may contain special regex characters.

If the optional delimiter is specified, it will also be escaped. This is useful for escaping the delimiter that is required by the PCRE functions. The / is the most commonly used delimiter.

The special regular expression characters are: . \\ + * ? [ ^ ] $ ( ) { } = ! < > | :

Beispiel 1. preg_quote() example

<?php
$keywords = "$40 for a g3/400";
$keywords = preg_quote($keywords, "/");
echo $keywords; // returns \$40 for a g3\/400
?>

Beispiel 2. Italicizing a word within some text

<?php
// In this example, preg_quote($word) is used to keep the
// asterisks from having special meaning to the regular
// expression.

$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/" . preg_quote($word) . "/",
                          "<i>" . $word . "</i>",
                          $textbody);
?>

Zurück | Zum Anfang | Nach vorne
preg_match | Nach oben | preg_replace_callback


preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5)

preg_replace_callback -- Perform a regular expression search and replace using a callback

Description

mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit])

The behavior of this function is almost identical to preg_replace(), except for the fact that instead of replacement parameter, one should specify a callback that will be called and passed an array of matched elements in the subject string. The callback should return the replacement string.

Beispiel 1. preg_replace_callback() example

<?php
  // this text was used in 2002
  // we want to get this up to date for 2003
  $text = "April fools day is 04/01/2002\n";
  $text.= "Last christmas was 12/24/2001\n";

  // the callback function
  function next_year($matches)
  {
    // as usual: $matches[0] is the complete match
    // $matches[1] the match for the first subpattern
    // enclosed in '(...)' and so on
    return $matches[1].($matches[2]+1);
  }

  echo preg_replace_callback(
              "|(\d{2}/\d{2}/)(\d{4})|",
              "next_year",
              $text);

  // result is:
  // April fools day is 04/01/2003
  // Last christmas was 12/24/2002
?>

You'll often need the callback function for a preg_replace_callback() in just one place. In this case you can use create_function() to declare an anonymous function as callback within the call to preg_replace_callback(). By doing it this way you have all information for the call in one place and do not clutter the function namespace with a callback functions name not used anywhere else.

Beispiel 2. preg_replace_callback() and create_function()

<?php
  /* a unix-style command line filter to convert uppercase
   * letters at the beginning of paragraphs to lowercase */

  $fp = fopen("php://stdin", "r") or die("can't read stdin");
  while (!feof($fp)) {
      $line = fgets($fp);
      $line = preg_replace_callback(
          '|<p>\s*\w|',
          create_function(
              // single quotes are essential here,
              // or alternative escape all $ as \$
              '$matches',
              'return strtolower($matches[0]);'
          ),
          $line
      );
      echo $line;
  }
  fclose($fp);
?>

See also preg_replace() and create_function().

Zurück | Zum Anfang | Nach vorne
preg_quote | Nach oben | preg_replace


preg_replace

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_replace -- Perform a regular expression search and replace

Description

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])

Searches subject for matches to pattern and replaces them with replacement. If limit is specified, then only limit matches will be replaced; if limit is omitted or is -1, then all matches are replaced.

Replacement may contain references of the form \\n or (since PHP 4.0.4) $n, with the latter form being the preferred one. Every such reference will be replaced by the text captured by the n'th parenthesized pattern. n can be from 0 to 99, and \\0 or $0 refers to the text matched by the whole pattern. Opening parentheses are counted from left to right (starting from 1) to obtain the number of the capturing subpattern.

When working with a replacement pattern where a backreference is immediately followed by another number (i.e.: placing a literal number immediately after a matched pattern), you cannot use the familiar \\1 notation for your backreference. \\11, for example, would confuse preg_replace() since it does not know whether you want the \\1 backreference followed by a literal 1, or the \\11 backreference followed by nothing. In this case the solution is to use \${1}1. This creates an isolated $1 backreference, leaving the 1 as a literal.

Beispiel 1. Using backreferences followed by numeric literals

<?php
$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
echo preg_replace($pattern, $replacement, $string);
?>

This example will output :

April1,2003

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.

Every parameter to preg_replace() (except limit) can be an unidimensional array. When using arrays with pattern and replacement, the keys are processed in the order they appear in the array. This is not necessarily the same as the numerical index order. If you use indexes to identify which pattern should be replaced by which replacement, you should perform a ksort() on each array prior to calling preg_replace().

Beispiel 2. Using indexed arrays with preg_replace()

<?php
$string = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

echo preg_replace($patterns, $replacements, $string);
?>

Output:

The bear black slow jumped over the lazy dog.

By ksorting patterns and replacements, we should get what we wanted.

<?php

ksort($patterns);
ksort($replacements);

echo preg_replace($patterns, $replacements, $string);

?>

Output :

The slow black bear jumped over the lazy dog.

If subject is an array, then the search and replace is performed on every entry of subject, and the return value is an array as well.

If pattern and replacement are arrays, then preg_replace() takes a value from each array and uses them to do search and replace on subject. If replacement has fewer values than pattern, then empty string is used for the rest of replacement values. If pattern is an array and replacement is a string, then this replacement string is used for every value of pattern. The converse would not make sense, though.

/e modifier makes preg_replace() treat the replacement parameter as PHP code after the appropriate references substitution is done. Tip: make sure that replacement constitutes a valid PHP code string, otherwise PHP will complain about a parse error at the line containing preg_replace().

Beispiel 3. Replacing several values

<?php
$patterns = array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/",
                   "/^\s*{(\w+)}\s*=/");
$replace = array ("\\3/\\4/\\1\\2", "$\\1 =");
echo preg_replace($patterns, $replace, "{startDate} = 1999-5-27");
?>

This example will produce:

$startDate = 5/27/1999

Beispiel 4. Using /e modifier

<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
              "'\\1'.strtoupper('\\2').'\\3'",
              $html_body);
?>

This would capitalize all HTML tags in the input text.

Beispiel 5. Convert HTML to text

<?php
// $document should contain an HTML document.
// This will remove HTML tags, javascript sections
// and white space. It will also convert some
// common HTML entities to their text equivalent.

$search = array ("'<script[^>]*?>.*?</script>'si",  // Strip out javascript
                 "'<[\/\!]*?[^<>]*?>'si",           // Strip out HTML tags
                 "'([\r\n])[\s]+'",                 // Strip out white space
                 "'&(quot|#34);'i",                 // Replace HTML entities
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i",
                 "'&#(\d+);'e");                    // evaluate as php

$replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(\\1)");

$text = preg_replace($search, $replace, $document);
?>

Anmerkung: Parameter limit was added after PHP 4.0.1pl2.

See also preg_match(),
preg_match_all(), and
preg_split().

Zurück | Zum Anfang | Nach vorne
preg_replace_callback | Nach oben | preg_split


preg_split

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_split -- Split string by a regular expression

Description

array preg_split ( string pattern, string subject [, int limit [, int flags]])

Returns an array containing substrings of subject split along boundaries matched by pattern.

If limit is specified, then only substrings up to limit are returned, and if limit is -1, it actually means "no limit", which is useful for specifying the flags.

flags can be any combination of the following flags (combined with bitwise | operator):

PREG_SPLIT_NO_EMPTY

If this flag is set, only non-empty pieces will be returned by preg_split().

PREG_SPLIT_DELIM_CAPTURE

If this flag is set, parenthesized expression in the delimiter pattern will be captured and returned as well. This flag was added for 4.0.5.

PREG_SPLIT_OFFSET_CAPTURE

If this flag is set, for every occurring match the appendant string offset will also be returned. Note that this changes the return value in an array where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1. This flag is available since PHP 4.3.0 .

Beispiel 1. preg_split() example : Get the parts of a search string

<?php
// split the phrase by any number of commas or space characters,
// which include " ", \r, \t, \n and \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
?>

Beispiel 2. Splitting a string into component characters

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Beispiel 3. Splitting a string into matches and their offsets

<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

will yield:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

Anmerkung: Parameter flags was added in PHP 4 Beta 3.

See also spliti(), split(),
implode(), preg_match(),
preg_match_all(), and
preg_replace().

Zurück | Zum Anfang | Nach vorne
preg_replace | Nach oben | qtdom Functions


qtdom Functions

PHP Handbuch
Zurück Nach vorne

XCII. qtdom Functions

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Anmerkung: This extension is not available on Windows platforms.

Anmerkung: This extension has been removed as of PHP 5 and moved to the PECL repository.

Anforderungen

You need the Qt-library >=2.2.0

Installation

Configure PHP --with-qtdom to use these functions.

Inhaltsverzeichnis
qdom_error -- Returns the error string from the last QDOM operation or FALSE if no errors occurred
qdom_tree -- Creates a tree of an XML string

Zurück | Zum Anfang | Nach vorne
preg_split | Nach oben | qdom_error


qdom_error

(PHP 4 >= 4.0.5)

qdom_error -- Returns the error string from the last QDOM operation or FALSE if no errors occurred

Description

string qdom_error ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
qtdom Functions | Nach oben | qdom_tree


qdom_tree

(PHP 4 >= 4.0.4)

qdom_tree -- Creates a tree of an XML string

Description

object qdom_tree ( string )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
qdom_error | Nach oben | Reguläre Ausdrücke Funktionen (POSIX erweitert)


Reguläre Ausdrücke Funktionen (POSIX erweitert)

PHP Handbuch
Zurück Nach vorne

XCIII. Reguläre Ausdrücke Funktionen (POSIX erweitert)

Einführung

Tipp: Bei Verwendung der PCRE Funktionen unterstützt PHP auch Reguläre Ausdrücke mit einer zu Perl kompatiblen Syntax. Diese Funktionen unterstützen non-greedy Matching, Assertions, bedingte Subpatterns und viele andere Merkmale, die von der POSIX-erweiterten Syntax regulärer Ausdrücke nicht unterstützt werden.

Warnung

Diese Funktionen regulärer Ausdrücke sind im Gegensatz zu den PCRE Funktionen nicht binary-safe.

Reguläre Ausdrücke werden für komplexe Manipulationen an Zeichenketten mit PHP verwendet. Folgende Funktionen unterstützen reguläre Ausdrücke:

  • ereg()

  • ereg_replace()

  • eregi()

  • eregi_replace()

  • split()

  • spliti()

Alle diese Funktionen nehmen als erstes Argument einen regulären Ausdruck an. PHP verwendet durch POSIX 1003.2 definierte POSIX erweiterte reguläre Ausdrücke. Eine vollständige Beschreibung der POSIX regulären Ausdrücke finden Sie im Regex-Verzeichnis der PHP-Distribution in den Regex man pages. Da sie im manpage-Fomat vorliegt, sollten Sie einen Befehl der Art man /usr/local/src/regex/regex.7 verwenden, um sie zu lesen.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Warnung

Sie sollten TYPE nur ändern, wenn Sie wissen, was Sie tun.

Um die regexp-Unterstützung zu aktivieren, müssen Sie PHP mit der Option --with-regex[=TYPE] übersetzen. TYPE kann entweder system, apache oder php sein. Standardmäßig wird php verwendet.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Beispiele

Beispiel 1. Beispiele regulärer Ausdrücke

<?php
// Gibt true zurück, falls "abc" irgendwo in $string gefunden wird.
ereg("abc", $string);

// Gibt true zurück, falls "abc" am Anfang von $string gefunden wird.
ereg("^abc", $string);

// Gibt true zurück, falls "abc" am Ende von $string gefunden wird.
ereg("abc$", $string);

// Gibt true zurück, falls es sich beim Client Browser um Netscape 2,
// 3 oder MSIE 3 handelt.
eregi("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);

// Setzt drei Wörter, die durch Leerzeichen getrennt sind, in
// $regs[1], $regs[2] und $regs[3] ein.
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs);

// Setzt ein <br /> Tag vor $string.
$string = ereg_replace("^", "<br />", $string);

// Setzt ein <br /> Tag hinter $string.
$string = ereg_replace("$", "<br />", $string);

// Entfernt alle Zeilenumbrüche aus $string.
$string = ereg_replace("\n", "", $string);
?>

Siehe auch

Schauen Sie sich bezüglich regulärer Ausdrücke mit einer zu Perl kompatiblen Syntax die PCRE Funktionen an. fnmatch() bietet die Möglichkeit der Suche nach Übereinstimmungen mit Wildcard-Suchmustern im einfacheren Shell-Stil.

Inhaltsverzeichnis
ereg_replace -- Ersetzt einen regulären Ausdruck
ereg -- Sucht Übereinstimmungen mit einem regulären Ausdruck
eregi_replace -- Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung
eregi -- Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung
split -- Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array
spliti -- Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks ohne Berücksichtigung von Groß-/Kleinschreibung in ein Array
sql_regcase -- Erstellt einen regulären Ausdruck für eine Suche nach Übereinstimmungen ohne Berücksichtigung von Groß-/Kleinschreibung

Zurück | Zum Anfang | Nach vorne
qdom_tree | Nach oben | ereg_replace


ereg_replace

(PHP 3, PHP 4 , PHP 5)

ereg_replace -- Ersetzt einen regulären Ausdruck

Beschreibung

string ereg_replace ( string Suchmuster, string Ersatz, string Zeichenkette)

Diese Funktion durchsucht Zeichenkette nach Übereinstimmungen mit Suchmuster und ersetzt dann den übereinstimmenden Text durch Ersatz.

Zurückgegeben wird die geänderte Zeichenkette, was auch bedeuten könnte, dass die ursprüngliche Zeichenkette zurückgegeben wird, wenn es keine zu ersetzenden Übereinstimmungen gibt.

Wenn Suchmuster eingeklammerte Teilzeichenketten enthält, darf Ersatz Teilzeichenketten der Form \\Ziffer enthalten, die dann durch die Ziffer'ste Teilzeichenkette ersetzt werden. \\0 erzeugt den gesamten Inhalt der durchsuchten Zeichenkette. Bis zu neun Teilzeichenketten dürfen verwendet werden. Klammern dürfen geschachtelt werden und werden in diesem Fall anhand der öffnenden Klammern gezählt.

Wenn in Zeichenkette keine Übereinstimmungen gefunden werden, wird Zeichenkette unverändert zurückgegeben.

Der folgende Code-Schnipsel gibt zum Beispiel dreimal "Das war ein Test" aus:

Beispiel 1. ereg_replace() Beispiel

<?php

$string = "Das ist ein Test";
echo ereg_replace(" ist", " war", $string);
echo ereg_replace("( )ist", "\\1war", $string);
echo ereg_replace("(( )ist)", "\\2war", $string);

?>

Folgendes ist zu beachten: Wenn Sie als Ersatz einen ganzzahligen Wert verwenden, bekommen sie vielleicht nicht das erwartete Ergebnis. Das liegt daran, dass ereg_replace() die Zahl als Ordinalwert eines Zeichens betrachtet und dieses verwendet. Zum Beispiel:

Beispiel 2. ereg_replace() Beispiel

<?php
/* Dieses funktioniert nicht wie erwartet. */
$zahl = 4;
$zeichenkette = "Diese Zeichenkette hat vier Wörter.";
$zeichenkette = ereg_replace('vier', $zahl, $zeichenkette);
echo $zeichenkette;   /* Ausgabe: 'Diese Zeichenkette hat   Wörter.' */

/* Dieses funktioniert. */
$zahl = '4';
$zeichenkette = "Diese Zeichenkette hat vier Wörter.";
$zeichenkette = ereg_replace('vier', $zahl, $zeichenkette);
echo $zeichenkette;   /* Output: 'Diese Zeichenkette hat 4 Wörter.' */
?>

Beispiel 3. Ersetzen von URLs durch Links

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     "<a href=\"\\0\">\\0</a>", $text);
?>

Tipp: Die Funktion preg_replace(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg_replace().

Siehe auch: ereg(),
eregi(), eregi_replace(),
str_replace() und
preg_match().

Zurück | Zum Anfang | Nach vorne
Reguläre Ausdrücke Funktionen (POSIX erweitert) | Nach oben | ereg


ereg

(PHP 3, PHP 4 , PHP 5)

ereg -- Sucht Übereinstimmungen mit einem regulären Ausdruck

Beschreibung

bool ereg ( string Suchmuster, string Zeichenkette [, array regs])

Anmerkung: Die Funktion preg_match(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg().

Sucht in Zeichenkette unter Berücksichtigung der Groß- und Kleinschreibung nach Übereinstimmungen mit dem regulären Ausdruck, der in Suchmuster angegeben wurde.

Wenn Übereinstimmungen mit eingeklammerten Teilzeichenketten von Suchmuster gefunden werden und die Funktion mit dem dritten Argument regs aufgerufen wurde, werden die Übereinstimmungen in den Elementen des Arrays regs gespeichert. $regs[1] enthält dann die Teilzeichenkette der ersten Klammer, $regs[2] die Teilzeichenkette der zweiten usw. $regs[0] enthält bei Übereinstimmung mit Zeichenkette eine Kopie der kompletten Zeichenkette.

Anmerkung: Bis (und inklusive) PHP 4.1.0 wird $regs mit genau zehn Elementen gefüllt, auch wenn es tatsächlich mehr oder weniger Übereinstimmungen mit den eingeklammerten Teilzeichenketten gibt. Dies wirkt sich aber nicht auf ereg()s Fähigkeit aus, mehr übereinstimmende Teilzeichenketten zu finden. Falls keine Übereinstimmungen gefunden werden, wird $regs nicht von ereg() verändert.

Gibt TRUE zurück, wenn in Zeichenkette eine Übereinstimmung mit Suchmuster gefunden wurde oder FALSE, wenn keine Übereinstimmung gefunden wurde oder wenn ein Fehler aufgetreten ist.

Der folgende Code-Schnipsel mimmt ein Datum im ISO-Format (JJJJ-MM-TT) und gibt es im Format TT.MM.JJJJ aus:

Beispiel 1. ereg() Beispiel

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Ungültiges Datumsformat: $date";
}
?>

Siehe auch: eregi(),
ereg_replace(),
eregi_replace(),
preg_match(), strpos() und
strstr().

Zurück | Zum Anfang | Nach vorne
ereg_replace | Nach oben | eregi_replace


eregi_replace

(PHP 3, PHP 4 , PHP 5)

eregi_replace -- Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung

Beschreibung

string eregi_replace ( string Suchmuster, string Ersatz, string Zeichenkette)

Diese Funktion entspricht ereg_replace() mit dem Unterschied, dass sie übereinstimmende Buchstaben nicht nach Groß- und Kleinschreibung unterscheidet.

Beispiel 1. Suchergebnisse hervorheben

<?php
$suchmuster = '(>[^<]*)('. quotemeta($_GET['suche']) .')';
$ersatz = '\\1<span class="suche">\\2</span>';
$inhalt = eregi_replace($suchmuster, $ersatz, $inhalt);
?>

Siehe auch: ereg(), eregi() und ereg_replace().

Zurück | Zum Anfang | Nach vorne
ereg | Nach oben | eregi


eregi

(PHP 3, PHP 4 , PHP 5)

eregi -- Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung

Beschreibung

bool eregi ( string Suchmuster, string Zeichenkette [, array regs])

Diese Funktion entspricht ereg() mit dem Unterschied, dass sie übereinstimmende Buchstaben nicht nach Groß- und Kleinschreibung unterscheidet.

Beispiel 1. eregi() Beispiel

<?php
if (eregi("z", $string)) {
    echo "'$string' contains a 'z' or 'Z'!";
}
?>

Siehe auch: ereg(),
ereg_replace(),
eregi_replace(), stripos()
und stristr().

Zurück | Zum Anfang | Nach vorne
eregi_replace | Nach oben | split


split

(PHP 3, PHP 4 , PHP 5)

split -- Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array

Beschreibung

array split ( string Suchmuster, string Zeichenkette [, int Beschränkung])

Tipp: Die Funktion preg_split(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu split(). Wenn Sie die Fähigkeiten regulärer Ausdrücke nicht benötigen, ist die Verwendung von explode() schneller, weil diese Funktion nicht unter der Last der Engine für reguläre Ausdrücke steht.

Gibt ein Array mit Zeichenketten zurück, die jeweils eine Teilzeichenkette von Zeichenkette sind. Diese Teilzeichenketten entstehen durch Zerlegung von Zeichenkette an den durch Suchmuster des Groß- und Kleinschreibung berücksichtigenden regulären Ausdrucks bestimmten Stellen. Wenn Beschränkung gesetzt wurde, enthält das zurückgegebene Array höchstens Beschränkung Elemente, von denen das letzte den ganzen Rest von Zeichenkette enthält. Bei Auftreten eines Fehlers gibt split() FALSE zurück.

Um die ersten vier Felder einer Zeile von /etc/passwd abzuspalten:

Beispiel 1. split() Beispiel

<?php
list($user, $pass, $uid, $gid, $extra) =
    split(":", $passwd_line, 5);
?>

Wenn Suchmuster n mal vorkommt, enhält das zurückgegebene Array n+1 Elemente. Kommt Suchmuster zum Beispiel überhaupt nicht vor, wird ein Array mit nur einem Element zurückgegeben. Das gilt natürlich auch, wenn Zeichenkette leer ist.

Um ein Datum zu analysieren, das durch Schrägstriche, Punkte oder Bindestriche getrennt ist:

Beispiel 2. split() Beispiel

<?php
// Trennzeichen darf ein Schrägstrich, Punkt oder Bindestrich sein
$datum = "04/30/1973";
list ($monat, $tag, $jahr) = split('[/.-]', $datum);
echo "Monat: $monat; Tag: $tag; Jahr: $jahr<br />\n";
?>

Wenn Sie nach einer Möglichkeit suchen, das Verhalten von Perls @chars = split('', $str) nachzuahmen, schauen Sie sich bitte die Beispiele für preg_split() an.

Bitte beachten Sie, dass Suchmuster ein regulärer Ausdruck ist. Wenn Sie eine Zerlegung an Zeichen vornehmen, die in regulären Ausdrücken als besondere Zeichen betrachtet werden, müssen Sie diese entsprechend kennzeichnen. Wenn Sie der Ansicht sind, split() (oder, bei diesem Thema, eine andere Regex-Funktion) verhalte sich seltsam, lesen Sie bitte die Datei regex.7, die sich im regex/ Unterverzeichnis ihrer PHP-Distribution befindet. Da sie im manpage-Fomat vorliegt, sollten Sie einen Befehl der Art man /usr/local/src/regex/regex.7 verwenden, um sie zu lesen.

Siehe auch: preg_split(),
spliti(), explode(),
implode(), chunk_split()
und wordwrap().

Zurück | Zum Anfang | Nach vorne
eregi | Nach oben | spliti


spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti -- Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks ohne Berücksichtigung von Groß-/Kleinschreibung in ein Array

Beschreibung

array spliti ( string Suchmuster, string Zeichenkette [, int Beschränkung])

Diese Funktion entspricht split() mit dem Unterschied, dass sie übereinstimmende Buchstaben nicht nach Groß- und Kleinschreibung unterscheidet.

Siehe auch: preg_spliti(),
split(), explode() und
implode().

Zurück | Zum Anfang | Nach vorne
split | Nach oben | sql_regcase


sql_regcase

(PHP 3, PHP 4 , PHP 5)

sql_regcase -- Erstellt einen regulären Ausdruck für eine Suche nach Übereinstimmungen ohne Berücksichtigung von Groß-/Kleinschreibung

Beschreibung

string sql_regcase ( string Zeichenkette)

Gibt einen korrekten regulären Ausdruck zurück, der mit Zeichenkette ohne Berücksichtigung von Groß-/Kleinschreibung übereinstimmt. Dieser Ausdruck entspricht Zeichenkette, wobei jeder Buchstabe in einen Klammerausdruck umgewandelt wird. Die Klammer enthält diesen Buchstaben in groß- und kleingeschriebener Form. Andere Zeichen bleiben unverändert.

Beispiel 1. sql_regcase() Beispiel

<?php
echo sql_regcase("Foo - bar");
?>

Ausgabe:

[Ff][Oo][Oo] - [Bb][Aa][Rr]

Dies kann bei Produkten, die nur reguläre Ausdrücke mit Berücksichtigung von Groß-/Kleinschreibung unterstützen, verwendet werden, um eine Übereinstimmung mit Suchmustern ohne Berücksichtigung von Groß-/Kleinschreibung zu erreichen.

Zurück | Zum Anfang | Nach vorne
spliti | Nach oben | Semaphor und Shared Memory Funktionen


Semaphor und Shared Memory Funktionen

PHP Handbuch
Zurück Nach vorne

XCIV. Semaphor und Shared Memory Funktionen

Dieses Modul bietet Unterstützung für die Nutzung von Semaphoren und gemeinamen Speichersegmenten mit Hilfe der UNIX System V Mechanismen zur Interprozess-Kommunikation.

Mit Hilfe von Semaphoren kann der exklusive Zugriff auf Resourcen eines Systems sichergestellt oder die Anzahl der Prozesse begrenzt werden, die gleichzeitig eine bestimmte Systemresource nutzen.

Mit Hilfe gemeinsamer Speichersegmente (shared memory) können system-globale Variablen angelegt und bereitgestellt werden. Diese Speicherbereiche stehen allen Prozessen des Systems, insbesondere aber allen parallel laufenden PHP-Instanzen zum Datenaustausch zur Verfügung. Beachten Sie bitte, dass gemeinsame Speichersegmente keinen Schutze vor konkurrierenden gleichzeitigen Zugriffen bieten. Benutzen Sie Semaphore für die Koordination solcher Zugriffe.

Tabelle 1. Limits of Shared Memory by the Unix OS

SHMMAX | Maximalgröße eines gemeinsamen Speicherbereichs, üblich sind 131072 Byte (128KB)
SHMMIN | Minimalgröße eines gemeinsamen Speicherbereichs, normalerweise 1 Byte
SHMMNI | maximale Anzahl unterschiedlicher Speichersegmente, üblich sind 100
SHMSEG | Anzahl der Speichersegmente, die ein einzelner Prozess einbinden darf, üblich sind 6

Beispiel 1. Koordinierter Zugriff auf gemeinsamen Speicher

<?php
// gemeinsames Speichersegment beschaffen
if(! ($mkey = shm_attach(0x2328,1024,OctDec("666"))))
{ echo "shmem_attach fehlgeschlagen<br>\n"; exit;}

// Semaphor für Zugriffskoordination auf
// Speichersegment beschaffen
if(! ($skey = sem_get(0x2328,1,OctDec("666"))))
{ echo "sem_get fehlgeschlagen<br>\n"; exit;}

// Zugriff anfordern
if(! sem_acquire($skey))
{ echo "sem_acquire fehlgeschlagen<br>\n"; exit;}

// Wert lesen, aktualisieren und schreiben
$val = @shm_get_var($mkey,1);
if($val===false) $val=1; else $val++;
print "new value is $val<br>\n";
shm_put_var($mkey,1,$val);

// Zugriff freigeben
sem_release($skey);
?>

Inhaltsverzeichnis
ftok -- Convert a pathname and a project identifier to a System V IPC key
msg_get_queue -- Create or attach to a message queue
msg_receive -- Receive a message from a message queue
msg_remove_queue -- Destroy a message queue
msg_send -- Send a message to a message queue
msg_set_queue -- Set information in the message queue data structure
msg_stat_queue -- Returns information from the message queue data structure
sem_acquire -- Zugriff auf einen Semaphore anfordern
sem_get -- Liefert ein Semaphore-Handle
sem_release -- Freigabe eines angeforderten Semaphores
sem_remove -- Remove a semaphore
shm_attach -- Anlegen oder anbinden eines gemeinsamen Speichersegments
shm_detach -- Beenden der Anbindung an ein gemeinsames Speichersegment
shm_get_var -- Liest einen in einem gemeinsamen Speicherbereich angelegten Wert.
shm_put_var -- Aktualisiert einen in einem gemeinsamen Speicherbereich angelegten Wert.
shm_remove_var -- Entfernt einen in einem gemeinsamen Speicherbereich angelegten Wert.
shm_remove -- Entfernt ein gemeinsames Speichersegment

Zurück | Zum Anfang | Nach vorne
sql_regcase | Nach oben | ftok


ftok

(PHP 4 >= 4.2.0, PHP 5)

ftok -- Convert a pathname and a project identifier to a System V IPC key

Description

int ftok ( string pathname, string proj)

The function converts the pathname of an existing accessible file and a project identifier (proj) into a integer for use with for example shmop_open() and other System V IPC keys. The proj parameter should be a one character string.

On success the return value will be the created key value, otherwise -1 is returned.

See also shmop_open() and sem_get().

Zurück | Zum Anfang | Nach vorne
Semaphor und Shared Memory Funktionen | Nach oben | msg_get_queue


msg_get_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_get_queue -- Create or attach to a message queue

Description

resource msg_get_queue ( int key [, int perms])

msg_get_queue() returns an id that can be used to access the System V message queue with the given key. The first call creates the message queue with the optional perms (default: 0666). A second call to msg_get_queue() for the same key will return a different message queue identifier, but both identifiers access the same underlying message queue. If the message queue already exists, the perms will be ignored.

See also msg_remove_queue(),
msg_receive(), msg_send(),
msg_stat_queue() and
msg_set_queue().

Zurück | Zum Anfang | Nach vorne
ftok | Nach oben | msg_receive


msg_receive

(PHP 4 >= 4.3.0, PHP 5)

msg_receive -- Receive a message from a message queue

Description

bool msg_receive ( resource queue, int desiredmsgtype, int msgtype, int maxsize, mixed message [, bool unserialize [, int flags [, int errorcode]]])

msg_receive() will receive the first message from the specified queue of the type specified by desiredmsgtype. The type of the message that was received will be stored in msgtype. The maximum size of message to be accepted is specified by the maxsize; if the message in the queue is larger than this size the function will fail (unless you set flags as described below). The received message will be stored in message, unless there were errors receiving the message, in which case the optional errorcode will be set to the value of the system errno variable to help you identify the cause.

If desiredmsgtype is 0, the message from the front of the queue is returned. If desiredmsgtype is greater than 0, then the first message of that type is returned. If desiredmsgtype is less than 0, the first message on the queue with the lowest type less than or equal to the absolute value of desiredmsgtype will be read. If no messages match the criteria, your script will wait until a suitable message arrives on the queue. You can prevent the script from blocking by specifying MSG_IPC_NOWAIT in the flags parameter.

unserialize defaults to TRUE; if it is set to TRUE, the message is treated as though it was serialized using the same mechanism as the session module. The message will be unserialized and then returned to your script. This allows you to easily receive arrays or complex object structures from other PHP scripts, or if you are using the WDDX serializer, from any WDDX compatible source. If unserialize is FALSE, the message will be returned as a binary-safe string.

The optional flags allows you to pass flags to the low-level msgrcv system call. It defaults to 0, but you may specify one or more of the following values (by adding or ORing them together).

Tabelle 1. Flag values for msg_receive

MSG_IPC_NOWAIT | If there are no messages of the desiredmsgtype, return immediately and do not wait. The function will fail and return an integer value corresponding to ENOMSG.
MSG_IPC_NOWAIT | Using this flag in combination with a desiredmsgtype greater than 0 will cause the function to receive the first message that is not equal to desiredmsgtype.
MSG_IPC_NOWAIT | If the message is longer than maxsize, setting this flag will truncate the message to maxsize and will not signal an error.

Upon successful completion the message queue data structure is updated as follows: msg_lrpid is set to the process-ID of the calling process, msg_qnum is decremented by 1 and msg_rtime is set to the current time.

msg_receive() returns TRUE on success or FALSE on failure. If the function fails, the optional errorcode will be set to the value of the system errno variable.

See also msg_remove_queue(),
msg_send(),
msg_stat_queue() and
msg_set_queue().

Zurück | Zum Anfang | Nach vorne
msg_get_queue | Nach oben | msg_remove_queue


msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_remove_queue -- Destroy a message queue

Description

bool msg_remove_queue ( resource queue)

msg_remove_queue() destroys the message queue specified by the queue. Only use this function when all processes have finished working with the message queue and you need to release the system resources held by it.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Zurück | Zum Anfang | Nach vorne
msg_receive | Nach oben | msg_send


msg_send

(PHP 4 >= 4.3.0, PHP 5)

msg_send -- Send a message to a message queue

Description

bool msg_send ( resource queue, int msgtype, mixed message [, bool serialize [, bool blocking [, int errorcode]]])

msg_send() sends a message of type msgtype (which MUST be greater than 0) to a the message queue specified by queue.

If the message is too large to fit in the queue, your script will wait until another process reads messages from the queue and frees enough space for your message to be sent. This is called blocking; you can prevent blocking by setting the optional blocking parameter to FALSE, in which case msg_send() will immediately return FALSE if the message is too big for the queue, and set the optional errorcode to EAGAIN, indicating that you should try to send your message again a little later on.

The optional serialize controls how the message is sent. serialize defaults to TRUE which means that the message is serialized using the same mechanism as the session module before being sent to the queue. This allows complex arrays and objects to be sent to other PHP scripts, or if you are using the WDDX serializer, to any WDDX compatible client.

Upon successful completion the message queue data structure is updated as follows: msg_lspid is set to the process-ID of the calling process, msg_qnum is incremented by 1 and msg_stime is set to the current time.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Zurück | Zum Anfang | Nach vorne
msg_remove_queue | Nach oben | msg_set_queue


msg_set_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_set_queue -- Set information in the message queue data structure

Description

bool msg_set_queue ( resource queue, array data)

msg_set_queue() allows you to change the values of the msg_perm.uid, msg_perm.gid, msg_perm.mode and msg_qbytes fields of the underlying message queue data structure. You specify the values you require by setting the value of the keys that you require in the data array.

Changing the data structure will require that PHP be running as the same user that created the queue, owns the queue (as determined by the existing msg_perm.xxx fields), or be running with root privileges. root privileges are required to raise the msg_qbytes values above the system defined limit.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Zurück | Zum Anfang | Nach vorne
msg_send | Nach oben | msg_stat_queue


msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_stat_queue -- Returns information from the message queue data structure

Description

array msg_stat_queue ( resource queue)

msg_stat_queue() returns the message queue meta data for the message queue specified by the queue. This is useful, for example, to determine which process sent the message that was just received.

The return value is an array whose keys and values have the following meanings:

Tabelle 1. Array structure for msg_stat_queue

msg_perm.uid | The uid of the owner of the queue.
msg_perm.gid | The gid of the owner of the queue.
msg_perm.mode | The file access mode of the queue.
msg_stime | The time that the last message was sent to the queue.
msg_rtime | The time that the last message was received from the queue.
msg_ctime | The time that the queue was last changed.
msg_qnum | The number of messages waiting to be read from the queue.
msg_qbytes | The number of bytes of space currently available in the queue to hold sent messages until they are received.
msg_lspid | The pid of the process that sent the last message to the queue.
msg_lrpid | The pid of the process that received the last message from the queue.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Zurück | Zum Anfang | Nach vorne
msg_set_queue | Nach oben | sem_acquire


sem_acquire

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sem_acquire -- Zugriff auf einen Semaphore anfordern

Beschreibung

int sem_acquire ( int sem_identifier)

sem_acquire() blockiert die Ausführung (falls notwendig) solange, bis eine Anforderung eines Semaphores durchgeführt werden kann, d.h. solange die Anzahl der gleichzeitigen Anforderungen bereits der maximalen Anzahl entspricht.

Wird ein erfolgreich angeforderter Sempahore innerhalb eines Requests nicht wieder freigegeben, so erfolgt die Freigabe nach Abarbeitung des Requests automatisch und es wird eine Warnung ausgegeben.

Diese Funktion liefert TRUE bei Erfolg und FALSE, wenn eine Anforderung des Semaphores wegen eines Fehlers nicht möglich ist.

Siehe auch sem_get() und sem_release().

Warnung

Wird ein Semaphore ein zweites mal während desselben Request angefordert, ohne zwischenzeitlich freigegeben worden zu sein, so kann dies dazu führen, dass die weitere Ausführung dieses Requests nicht mehr möglich ist.

Zurück | Zum Anfang | Nach vorne
msg_stat_queue | Nach oben | sem_get


sem_get

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sem_get -- Liefert ein Semaphore-Handle

Beschreibung

int sem_get ( int key [, int max_acquire [, int perm]])

Diese Funktion liefert ein Handle, das für den Zugriff auf das Semaphore mit der Kennung key benutzt werden kann.

Falls noch kein Semaphore mit dieser Kennung existiert, so wird es neu angelegt. Die maximale Anzahl der gleichzeitig möglichen Anforderungen und die Zugriffsrechte werden dabei über die Parameter max_aquire und sem_get() festgelegt.

Wird der angeforderte Semaphore zum Zeitpunkt des Aufrufs von keiner anderen Funktion genutzt, so kann über den optionalen Parameter max_aquire die Anzahl der gelichzeitig möglichen Anforderungen neu festgelegt werden, anderenfalls bleibt der ursprüngliche Wert erhalten.

Ein zweiter Aufruf der Funktion mit demselben key liefert ein weiteres, von dem ersten verschiedenes, Handle, das aber trotzdem denselben darunterliegenden Semaphore anspricht.

Wenn kein Semaphore mit der Kennung key angelegt werden kann oder die Rechte für den Zugriff auf einen bestehendennicht ausreichen, so ist das Ergebnis dieser Funktion der Wert FALSE.

Siehe auch sem_acquire() und sem_release().

Zurück | Zum Anfang | Nach vorne
sem_acquire | Nach oben | sem_release


sem_release

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sem_release -- Freigabe eines angeforderten Semaphores

Beschreibung

int sem_release ( int sem_identifier)

sem_release() gibt einen zuvor angeforderten Semaphore wieder frei. Die Anforderung und Freigabe kann innerhalb eines Prozesses mehrfach hintereinander erfolgen.

Die Funktion liefert TRUE, wenn ein angeforderter Semaphore erfolgreich freigegeben wurde, ansonsten FALSE.

Siehe auch sem_get() und sem_acquire().

Zurück | Zum Anfang | Nach vorne
sem_get | Nach oben | sem_remove


sem_remove

(PHP 4 >= 4.1.0, PHP 5)

sem_remove -- Remove a semaphore

Description

bool sem_remove ( resource sem_identifier)

sem_remove() removes the semaphore sem_identifier if it has been created by sem_get(), otherwise generates a warning.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

After removing the semaphore, it is no more accessible.

See also sem_get(),
sem_release() and
sem_acquire().

Zurück | Zum Anfang | Nach vorne
sem_release | Nach oben | shm_attach


shm_attach

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_attach -- Anlegen oder anbinden eines gemeinsamen Speichersegments

Beschreibung

int shm_attach ( int key [, int memsize [, int perm]])

shm_attach() gibt ein Handle für den Zugriff auf den gemeinsamen Speicherbereich mit der Kennung key zurück.

Falls noch kein Bereich mit dieser Kennung existiert, so wird er mit einer Größe von memsize Byte (Vorgabe ist der Parameter sysvshm.init_mem aus der Konfigurationsdatei bzw. 10000 Byte) und den Zugriffsberechtigungen gemäß perm (Vorgabe ist der Wert 0666, der Lese- und Schreibzugriffe für alle Benutzer gestattet) an.

Ein zweiter Aufruf der Funktion mit demselben key liefert ein weiteres, von dem ersten verschiedenes, Handle, das aber trotzdem denselben gemeinsamen Speicherbereich anspricht.

Wenn kein Bereich mit der Kennung key angelegt werden kann oder die Rechte für den Zugriff auf ein bestehendes Segment nicht ausreichen, so ist das Ergebnis dieser Funktion der Wert FALSE.

Zurück | Zum Anfang | Nach vorne
sem_remove | Nach oben | shm_detach


shm_detach

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_detach -- Beenden der Anbindung an ein gemeinsames Speichersegment

Beschreibung

int shm_detach ( int shm_identifier)

shm_detach() beendet die Anbindung eines gemeinsamen Speicherbreichs mit dem Handle shm_identifier, das zuvor über shm_attach() angebunden wurde. Das Segment an sich und die darin enthaltenen Daten bleiben erhalten und stehen nach erneuter Anbindung in diesem oder einem anderen Prozess wieder zur Verfügung.

Zurück | Zum Anfang | Nach vorne
shm_attach | Nach oben | shm_get_var


shm_get_var

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_get_var -- Liest einen in einem gemeinsamen Speicherbereich angelegten Wert.

Beschreibung

mixed shm_get_var ( int id, int variable_key)

shm_get_var() liefert den Wert mit der Kennung variable_key aus einem gemeinsamen Speicherbereich. Der Wert im gemeinsamen Speicher bleibt weiter vorhanden. Existiert kein Wert mit der angegebenen Kennung, so wird eine Warnung erzeugt und FALSE zurückgegeben.

Zurück | Zum Anfang | Nach vorne
shm_detach | Nach oben | shm_put_var


shm_put_var

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_put_var -- Aktualisiert einen in einem gemeinsamen Speicherbereich angelegten Wert.

Beschreibung

int shm_put_var ( int shm_identifier, int variable_key, mixed variable)

Diese Funktion weist einer Variable mit der Kennung variable_key in einem gemeinsamen Speichersegment den Wert von variable zu, beim ersten Zugriff wird variable_key neu angelegt.

Diese Funktion liefert FALSE zurück, wenn der verbleibende Speicherplatz im angegebenen Segment shm_identifier zur Aufnahme des Wertes von variable nicht mehr ausreicht, ansonsten TRUE.

Zurück | Zum Anfang | Nach vorne
shm_get_var | Nach oben | shm_remove_var


shm_remove_var

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_remove_var -- Entfernt einen in einem gemeinsamen Speicherbereich angelegten Wert.

Beschreibung

int shm_remove_var ( int id, int variable_key)

Diese Funktion entfernt den Wert mit der Kennung variable_key aus einem gemeinsamen Speichersegment und stellt den hiervon genutzten Speicher innerhalb des egmentes wieder zur Verfügung.

Diese Funktion liefert TRUE bei Erfolg und FALSE, falls kein Wert mit der Kennung variable_key im Speichersegment angelegt war.

Zurück | Zum Anfang | Nach vorne
shm_put_var | Nach oben | shm_remove


shm_remove

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_remove -- Entfernt ein gemeinsames Speichersegment

Beschreibung

int shm_remove ( int key)

Diese Funktion gibt ein gemeinsames Speichersegment wieder frei, dabei gehen alle Daten innerhalb des Segmentes verloren.

Diese Funktion liefert TRUE, wenn das Segment erfolgreich entfernt wurde, oder FALSE, wenn kein Segment mit der Kennung key existierte oder die Zugriffsrechte auf ein bestehendes Segment nicht für ein Löschen ausreichen.

Zurück | Zum Anfang | Nach vorne
shm_remove_var | Nach oben | SESAM Datenbankfunktionen


SESAM Datenbankfunktionen

PHP Handbuch
Zurück Nach vorne

XCV. SESAM Datenbankfunktionen

SESAM/SQL-Server ist ein von Fujitsu Siemens Computers in Deutschland entwickeltes Mainframe-Datenbanksystem für High-End Server mit dem Betriebssystem BS2000/OSD.

In zahlreichen BS2000-Installationen hat SESAM/SQL-Server unter Beweis gestellt:

  • die einfach zu handhabende Unterstützung von Java-, Web- und Client-Server-Anwendungen

  • eine Hochverfügbarkeit von mehr als 99,99 %

  • die Fähigkeit, bis zu mehrere hunderttausend Benutzer zu bedienen

Mit einer PHP3 SESAM-Schnittstelle sind jetzt auch Datenbank-Operationen per PHP-scripts möglich.

Konfigurationshinweise: Die PHP-SESAM-Schnittstelle muss als Modul in Apache integriert werden. Stand-alone-Betrieb ist nicht möglich. Im Apache-PHP-Modul ist die SESAM-Schnittstelle entsprechend den Apache-Vorschriften zu konfigurieren.

Tabelle 1. SESAM-Konfigurationsvorschriften

Directive Bedeutung
php3_sesam_oml Name der BS2000-PLAM-Bibliothek mit den ladbaren Modulen des SESAM-Treibers. Für die Nutzung von SESAM-Funktionen erforderlich.

Beispiel:

php3_sesam_oml $.SYSLNK.SESAM-SQL.030

php3_sesam_configfile Name der Konfigurationsdatei der SESAM-Anwendung. Für die Nutzung von SESAM-Funktionen erforderlich.

Example:

php3_sesam_configfile $SESAM.SESAM.CONF.AW

enthält im allgemeinen folgende Konfiguration (siehe auch SESAM Referenzhandbuch):

CNF=B
NAM=K
NOTYPE

php3_sesam_messagecatalog Name des SESAM-Meldungskatalogs. Nur erforderlich, wenn der SESAM-Meldungskatalog nicht im BS2000-Meldungkatalog enthalten ist.

Example:

php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030

Zusätzlich zur PHP-SESAM-Schnittstelle muss natürlich die SESAM-Datenbank selbst auf dem BS2000-System installiert und konfiguriert werden:

  • der SESAM database handler (DBH) muss gestartet sein

  • die Datenbank und der DBH müssen verbunden sein

Für eine Verbindung zwischen dem PHP script und dem DBH müssen die Parameter von CNF und NAM der SESAM-Konfiguration den Werten des im BS2000 gestarteten DBH ensprechen.

Bei verteilten Datenbanken muss ein SESAM/SQL-DCN-Agent gestartet werden, dessen Konfigurationstabelle Host- und Datenbank-Namen enthält.

Die Kommunication zwischen PHP im BS2000-Subsystem POSIX und dem DBH im BS2000 erfolgt über Zugriffe eines speziellen Treibermoduls (SQLSCI) und der SESAM-Anschlußmodule auf einen gemeinsamen Speicherbereich (common memory). Der common-memory-pool-Mechanismus und die Tatsache, dass PHP in den Webserver statisch eingebunden ist, machen die Datenbankzugriffe sehr schnell. Datenbankzugriffe über ODBC, JDBC or UTM sind nicht erforderlich.

Nur ein kleines Lademodul (SESMOD) wird zum PHP gebunden, während die SESAM-Anschlußmodule aus der SESAM-OML (PLAM-Bibliothek) nachgeladen werden. library. In der PHP-Konfiguration,muss diese SESAM-OML und der für die SESAM-Konfiguration erforderliche Linkname angegeben werden (SQLSCI ist wie in SESAM V3.0 in der Standard-SESAM-Toolbibliothek verfügbar).

Wegen der SQL-Syntaxvorschriften für Anführungszeichen (doppelte Anführungszeichen statt AnfÜhrungszeichen mit vorangestelltem Gegenschrägstrich wie in manchen anderen Datenbanken) wird empfohlen, die PHP-Konfigurationsvorschriften php3_magic_quotes_gpc und php3_magic_quotes_sybase für alle SESAM betreffenden PHP-scripts auf On zu setzen.

Überlegungen zur Ablaufzeit: Wegen der spezifischen Eigenschaften der BS2000-Prozeßsteuerung kann der Treiber erst nach dem fork des Apache-Servers für seine Sohn-Prozesse geladen werden. Der erste SESAM-Zugriff jedes dieser Prozesse wird dadurch etwas verlangsamt, alle weiteren Zugriffe werden jedoch ohne Beeinträchtigung abgearbeitet.

Ein explizit definierter SESAM-Meldungskatalog wird bei jedem Laden des Treibers (d.h. beim ersten SESAM-Zugriff) geladen. BS2000 erzeugt nach dem erfolgreichen Laden dieses Katalogs eine Meldung, die an die error_logfile von Apache geschickt wird. Da BS2000 z. Zt. ein Unterdrücken dieser Meldung nicht erlaubt, wird das logfile langsam damit vollgeschrieben.

Bitte beachten: die SESAM-OML (PLAM-Bibliothek) und die SESAM-Konfigurationsdatei müssen für die Benutzerkennung, unter der der Webserver läuft, lesbar sein! Andernfalls kann der Server den Treiber nicht laden, womit die SESAM-Funktionen nicht zur Verfügung stehen. Auch der Zugriff die Datenbank selbst muss dem Server möglich sein, da sonst keine Verbindung zum DBH möglich ist.

Cursor Typen: Die für SQL-Abfragen "select type" zugewiesenen Ergebniscursor können "sequential" oder "scrollable" sein, Standardwert ist wegen des geringeren Speicherbedarfs "sequential"

"Scrollable" Cursors können im Ausgabedatensatz beliebig positioniert werden. Für jede "scrollable" Abfrage gibt es globale Standardwerte für den Scroll-Typ (initialisiert zu: SESAM_SEEK_NEXT) und der Scrolling-Abstand, der entweder einmal mit: sesam_seek_row() oder jedesmal beim Lesen einer Zeile mit: sesam_fetch_row() gesetzt werden kann. Die folgende Tabelle zeigt die Behandlung der globalen Stadtardwerte für Scroll-Typ und Scroll-Abstand beim Lesen einer Zeile mit "scrollable" Cursor:

Tabelle 2. Scrolled Cursor Post-Processing

Scroll Type | Action
SESAM_SEEK_NEXT | none
SESAM_SEEK_PRIOR | none
SESAM_SEEK_FIRST | set scroll type to SESAM_SEEK_NEXT
SESAM_SEEK_LAST | set scroll type to SESAM_SEEK_PRIOR
SESAM_SEEK_ABSOLUTE | Auto-Increment internal offset value
SESAM_SEEK_RELATIVE | none. (maintain global default offset value, which allows for, e.g., fetching each 10th row backwards)

Bemerkungen zur Portierung: Da in PHP Indizes üblicherweise mit NULL gestartet werden, musste die SESAM-Schnittstelle entsprechend adaptiert werden: während in der "normalen" SESAM-Schnittstelle ein Array mit Index 1 beginnt, wird in PHP NULL als Startpunkt verwendet - z.B. hat beim Lesen von Spalten mit sesam_fetch_row() die erste Spalte den Index 0 und the folgenden Spalten haben Indizes bis zu (aber nicht einschließlich!) dem Spaltenindex ($array["count"]). Beim Portieren von SESAM-Anwendungen aus aus anderen höheren Programmiersprachen nach PHP ist diese Schnittstellenänderung zu beachten. Wo es erforderlich ist, beinhaltet die jeweilige PHP-SESAM-Funktion einen Hinweis auf die mit NULL beginnende Indizierung.

Sicherheitsaspekte: Beim Zugriff auf SESAM-Datenbanken sollte der normale Benutzer eines Web-Servers nur die allernötigsten Privilegien bekommen. Im allgemeinen sollte auf Datenbanken nur lesender Zugriff möglich sein. Weitergehende Rechte sollten - nur falls wirklich erforderlich - abhängig vom jeweiligen Einsatzfall eingerichtet werden. Auf keinen Fall sollte man beliebigen Benutzern im Internet volle Zugriffsrechte auf eine Datenbank gewähren! Der Zugriff auf PHP-scripts für die Datenbank-Administration sollte in jedem Fall per Passwort und/oder durch SSL-Verbindung geschützt sein.

Migration von anderen SQL-Datenbanken: Unterschiedliche SQL-Ausprägungen sind nie 100-prozentig kompatibel. Bei der Portierung von SQL-Anwendungen anderer Datenbanken nach SESAM können daher Anpassungen erforderlich sein. Auf folgende, typische Unterschiede sei besonders hingewiesen:

  • Herstellerspezifische Datentypen

    Manche herstellerspezifischen Datentypen müssen u.U. durch Standard-SQL-Typen ersetzt werden, wie z.B. TEXT in VARCHAR(max. size).

  • Schlüsselwörter als SQL-Bezeichner

    In SESAM müssen Schlüsselwörter in Anführungsstrichen (???) angegeben werden (SQL-Standard) Schlüssel.

  • Länge der Anzeige in Datentypen

    Datentypen in SESAM sind nicht durch Längenangabe, sondern durch ihre Genauigkeit spezifiziert. Statt int(4) für ganze Zahlen bis '9999' braucht SESAM lediglich int für eine implizite Länge von 31 Bit. Als Datentypen für Datum und Zeit gibt es in SESAM nur: DATE, TIME(3) und TIMESTAMP(3).

  • SQL-Datentypen mit herstellerspezifischen Attributen der Form: unsigned, zerofill, oder auto_increment attributes

    Unsigned und zerofillwerden nicht unterstützt. Um die SESAM-implizite automatische Erhöhung zu nutzen, gibt es anstelle von "... VALUES(0, ...)" automatisch Auto_increment ( "INSERT ... VALUES(*, ...)". .

  • int ... DEFAULT '0000'

    Numerische Variablen dürfen nicht mit Zeichenkonstanten initialisiert werden. Statt dessen ist DEFAULT 0 zu verwenden. Dem Initialisierungs-string für Variablen des SQL-Datentyps datetime muss das jeweilige Schlüsselwort als Prefix vorangestellt werden wie in CREATE TABLE exmpl ( xtime timestamp(3) DEFAULT TIMESTAMP '1970-01-01 00:00:00.000' NOT NULL );

  • $count = xxxx_num_rows();

    Manche Datenbanken liefern die geschätzte/erratene Anzahl von Ausgabezeilen als Abfrageresultat an, obwohl der gelieferte Wert grob falsch ist. SESAM kennt die Anzahl von Ausgabezeilen erst, wenn sie tatsächlich gelesen wurden. Falls diese Information TATSÄCHLICH benötigt wird, sollte man SELECT COUNT(...) WHERE ..., versuchen. Diese Funktion ermittelt die Anzahl der Treffer. Ein zweiter Aufruf liefert (hoffentlich) die eigentlichen Ergebnisse.

  • DROP TABLE thename;

    In SESAM muss im Kommamdo DROP TABLE der Name entweder um die Schlüsselwörter RESTRICT oder CASCADE ergänzt werden. Bei der Angabe von RESTRICT wird ein Fehler gemeldet, wenn abhängige Objekte (z.B. VIEWs) existieren, während bei CASCADE abhängige Objekte zusammen (???) mit der definierten Tabelle gelöscht werden.

Bemerkungen zu weiteren SQL-Datentypen: SESAM unterstützt z.Zt. keine Daten von Typ BLOB. Für zukünftige SESAM-Versionen ist diese Unterstützung geplant.

Bei SQL-Abfragen werden von der PHP-Schnittstelle folgende Datentypen automatisch konvertiert:

Tabelle 3. SQL to PHP Type Conversions

SQL Type | PHP Type
SMALLINT, INTEGER | "integer"
NUMERIC, DECIMAL, FLOAT, REAL, DOUBLE | "double"
DATE, TIME, TIMESTAMP | "string"
VARCHAR, CHARACTER | "string"
Bei Abfragen auf ganze Zeilen wird das Ergebnis als Array geliefert. Leere Felder werden nicht gefüllt, d.h. ihre Existenz muss explizit mit isset() oder empty() überprüft werden. Dies ermöglicht dem Benutzer eine bessere Kontrolle als durch Rückgabe eines Leer-strings zur Darstellung eines leeren Feldes.

Unterstützung der SESAM-Features "multiple fields": Diese spezielle SESAM-Funktion erlaubt die Definiton von Spalten als Feld-Array. Eine "multiple field" Spalte wird wie folgt definiert:

Beispiel 1. Creating a "multiple field" column

CREATE TABLE multi_field_test
(
     pkey  CHAR(20) PRIMARY KEY,
     multi(3)   CHAR(12)
)
und folgendermaßen ausgefüllt:

Beispiel 2. Filling a "multiple field" column

INSERT INTO multi_field_test ( pkey, multi(2..3) )
  VALUES ( 'Second', <'first_val','second_val'>)
Zur Beachtung: führende leere Unterfelder (wie in diesem Fall) werden ignoriert und die enthaltenen Werte damit verworfen, so dass in obigem Beispiel das Ergebnis als multi(1..2) angezeigt wird und nicht als multi(2..3).

Bei der Ausgabe von Ergebniszeilen wird auf "multiple columns" wie auf "inlined" zusätzliche Spalten zugegriffen. Im obigen Beispiel bekommt "pkey" den Indexwert NULL und auf die drei Spalten "multi(1..3)" kann mit den Indizes 1 bis 3 zugegriffen werden.

SESAM-spezifische Details sind in den Handbüchern the SESAM/SQL-Server documentation (english) oder the SESAM/SQL-Server documentation (german) beschrieben. Beide Manuale sind online abrufbar und stehen in gedruckter Form zur Verfügung.

Inhaltsverzeichnis
sesam_affected_rows -- Anzahl der von einer sofortigen (???) Abfrage betroffenen Zeilen
sesam_commit -- Schreibt noch nicht gesicherte Änderungen in die SESAM-Datenbank
sesam_connect -- Eröffnet die Verbindung zu einer SESAM-Datenbank
sesam_diagnostic -- Liefert Status-Informationen über den letzten SESAM-Aufruf
sesam_disconnect -- Trennen der Verbindung zu einer SESAM-Datenbank
sesam_errormsg -- Liefert die Fehlermeldung des letzten SESAM-Aufrufs
sesam_execimm -- Ausführen einer "immediate" SQL-Anweisung
sesam_fetch_array -- Liefert eine Zeile als assoziatives Array
sesam_fetch_result -- Liefert das Ergebnis einer Abfrage (ganz oder teilweise)
sesam_fetch_row -- Lesen einer Zeile als Array
sesam_field_array -- Liefert Meta-Information über einzelne Ergebnisspalten
sesam_field_name -- Liefert einen Spaltennamen des Ausgabesatzes
sesam_free_result -- Gibt Betriebsmittel für die Abfrage frei (der Abfrage ???)
sesam_num_fields -- Liefert die Anzahl von Feldern/Spalten in einem Ausgabesatz
sesam_query -- Durchführen einer SESAM-SQL-Abfrage und aufbereiten der Ergebnisse
sesam_rollback -- Verwirft alle noch nicht gesicherten Änderungen der SESAM-Datenbank
sesam_seek_row -- Setzt "scrollable Cursor" Modus für weitere Aufrufe
sesam_settransaction -- Parameter der SESAM-Transaction setzen

Zurück | Zum Anfang | Nach vorne
shm_remove | Nach oben | sesam_affected_rows


sesam_affected_rows

(PHP 3 CVS only)

sesam_affected_rows -- Anzahl der von einer sofortigen (???) Abfrage betroffenen Zeilen

Beschreibung

int sesam_affected_rows ( string result_id)

result_id ist eine von sesam_query() zurückgelieferte gültige Ergebniskennung (???).

Liefert die Anzahl der von einer Abfrage betroffenen Zeilen bezogen auf die result_id.

Die Funktion sesam_affected_rows() liefert sinnvolle Werte nur in Verbindung mit "immediate" SQL-Statements (Update-Operationen wie INSERT, UPDATE and DELETE), da SESAM für "select type" Abfragen keinerlei Information über betroffene Zeilen liefert. Der gelieferte Wert ist die Anzahl der betroffenen Zeilen.

Siehe auch: sesam_query() und sesam_execimm()

$result = sesam_execimm ("DELETE FROM PHONE WHERE LASTNAME = '".strtoupper($name)."'");
if (! $result) {
    ... error ...
}
print sesam_affected_rows($result).
      " entries with last name ".$name." deleted.\n"

Zurück | Zum Anfang | Nach vorne
SESAM Datenbankfunktionen | Nach oben | sesam_commit


sesam_commit

(PHP 3 CVS only)

sesam_commit -- Schreibt noch nicht gesicherte Änderungen in die SESAM-Datenbank

Beschreibung

bool sesam_commit ( void )

Rüchgabewert: TRUE bei erfolgreicher Ausführung, ansonsten FALSE

sesam_commit() schreibt alle noch ausstehenden Änderungen in die Datenbank

Hinweis: es gibt keine Funktion "automatisches Sichern" wie in anderen Datenbanken, da dies zu ungewolltem Datenverlust führen kann. Bei der Beendigung des aktuellen Skripts oder beim Aufruf von sesam_disconnect()) werden nicht gesicherte Daten durch einen impliziten sesam_rollback() Aufruf verworfen.

Siehe auch: sesam_rollback().

Beispiel 1. Schreiben eines Update in die SESAM-Datenbank

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
  if (!sesam_execimm("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)"))
     die("insert failed");
  if (!sesam_commit())
     die("commit failed");
}
?>

Zurück | Zum Anfang | Nach vorne
sesam_affected_rows | Nach oben | sesam_connect


sesam_connect

(PHP 3 CVS only)

sesam_connect -- Eröffnet die Verbindung zu einer SESAM-Datenbank

Beschreibung

bool sesam_connect ( string catalog, string schema, string user)

Ergibt TRUE beim erfolgreichen Verbindungsaufbau oder FALSE im Fehlerfall.

sesam_connect() baut die Verbindung zu einem SESAM-DBH-Prozeß auf. Diese Verbindung ist "permanent", d.h. nur der erste Zugriff veranlaßt das Laden des Treibers aus der konfigurierten SESAM-OML-Plam-Bibliothek. Alle folgenden Zugriffe nutzen den verwenden den geladenen Treiber und damit automatisch den dadurch definierten Katalog, das Datenbankschema und den Benutzer.

Beim Erstellen einer Datenbank wird der "catalog" definiert in der SESAM-Konfigurationsvorschrift //ADD-SQL-DATABASE-CATALOG-LIST ENTRY-1 = *CATALOG(CATALOG-NAME = catalogname,...)

"schema" beschreibt das gewünschte Datenbankschema (siehe SESAM-Benutzerhandbuch).

"user" bezieht sich auf Benutzer, die auf die "catalog" / "schema" Kombination Zugriff haben. Hinweis: "user" ist sowohl von der Benutzerkennung im System als auch von der HTTP-Benutzerkennung völlig unabhängig und erscheint nur in der SESAM-Konfiguration.

siehe auch sesam_disconnect().

Beispiel 1. Connect to a SESAM database

<?php
if (! sesam_connect ("mycatalog", "myschema", "otto")
     die("Unable to connect to SESAM";
?>

Zurück | Zum Anfang | Nach vorne
sesam_commit | Nach oben | sesam_diagnostic


sesam_diagnostic

(PHP 3 CVS only)

sesam_diagnostic -- Liefert Status-Informationen über den letzten SESAM-Aufruf

Beschreibung

array sesam_diagnostic ( void )

Liefert ein assoziatives Array (???) von Status- und Returncodes des letzten SQL- Aktion (Abfrage/Statement(???)/Befehl). Elemente des Arrays sind:

Tabelle 1. Von sesam_diagnostic() gelieferte Status Information

Element | Contents
$array["sqlstate"] | 5-stelliger SQL-Returncode (mögliche Werte von SQLSTATE: siehe SESAM-Benutzerhandbuch)
$array["rowcount"] | Anzahl betroffener Zeilen im letzten update/insert/delete (nur nach "immediate" Statements gesetzt)
$array["errmsg"] | "lesbarer" Fehlermeldungstext (nur nach Fehlern gesetzt)
$array["errcol"] | Spaltennummer des letzten Fehlers (1-indiziert oder 0, wenn nicht definiert; nur nach Fehlern gesetzt)
$array["errlin"] | Zeilennummer des letzten Fehlers (1-indiziert oder 0, wenn nicht definiert; nur nach Fehlern gesetzt)

Im folgenden Beispiel wird ein Syntaxfehler (E SEW42AE ILLEGAL CHARACTER) zusammen mit dem fehlerhaften SQL-Statement und der genauen Position des Fehlers angezeigt.

Beispiel 1. Anzeige von SESAM-Fehlermeldungen mit Fehlerposition

<?php
// Function which prints a formatted error message,
// displaying a pointer to the syntax error in the
// SQL statement
function PrintReturncode($exec_str)
{
   $err = Sesam_Diagnostic();
   $colspan=4; // 4 cols for: sqlstate, errlin, errcol, rowcount
   if ($err["errlin"] == -1)
     --$colspan;
   if ($err["errcol"] == -1)
     --$colspan;
   if ($err["rowcount"] == 0)
     --$colspan;
   echo "<TABLE BORDER>\n";
   echo "<TR><TH COLSPAN=".$colspan."><FONT COLOR=red>ERROR:</FONT> ".
          htmlspecialchars($err["errmsg"])."</TH></TR>\n";
   if ($err["errcol"] >= 0) {
     echo "<TR><TD COLSPAN=".$colspan."><PRE>\n";
     $errstmt = $exec_str."\n";
     for ($lin=0; $errstmt != ""; ++$lin) {
       if ($lin != $err["errlin"]) { // $lin is less or greater than errlin
         if (! ($i = strchr($errstmt, "\n")))
           $i = "";
         $line = substr($errstmt, 0, strlen($errstmt)-strlen($i)+1);
         $errstmt = substr($i, 1);
         if ($line != "\n")
           print htmlspecialchars($line);
       }
       else {
         if (! ($i = strchr($errstmt, "\n")))
           $i = "";
         $line = substr($errstmt, 0, strlen($errstmt)-strlen($i)+1);
         $errstmt = substr($i, 1);
         for ($col=0; $col < $err["errcol"]; ++$col)
           echo (substr($line, $col, 1) == "\t") ? "\t" : ".";
         echo "<FONT COLOR=RED><BLINK>\\</BLINK></FONT>\n";
         print "<FONT COLOR=\"#880000\">".htmlspecialchars($line)."</FONT>";
         for ($col=0; $col < $err["errcol"]; ++$col)
           echo (substr($line, $col, 1) == "\t") ? "\t" : ".";
         echo "<FONT COLOR=RED><BLINK>/</BLINK></FONT>\n";
       }
     }
     echo "</PRE></TD></TR>\n";
   }
   echo "<TR>\n";
   echo " <TD>sqlstate=" . $err["sqlstate"] . "</TD>\n";
   if ($err["errlin"] != -1)
     echo " <TD>errlin=" . $err["errlin"] . "</TD>\n";
   if ($err["errcol"] != -1)
     echo " <TD>errcol=" . $err["errcol"] . "</TD>\n";
   if ($err["rowcount"] != 0)
     echo " <TD>rowcount=" . $err["rowcount"] . "</TD>\n";
   echo "</TR>\n";
   echo "</TABLE>\n";
}

if (!sesam_connect("mycatalog", "phoneno", "otto"))
  die("cannot connect");

$stmt = "SELECT * FROM phone\n".
        "  WHERE@ LASTNAME='KRAEMER'\n".
        "  ORDER BY FIRSTNAME";
if (! ($result = sesam_query($stmt)))
  PrintReturncode($stmt);
?>

Siehe auch: sesam_errormsg() für einfachen Zugriff nur auf die Fehlermeldung

Zurück | Zum Anfang | Nach vorne
sesam_connect | Nach oben | sesam_disconnect


sesam_disconnect

(PHP 3 CVS only)

sesam_disconnect -- Trennen der Verbindung zu einer SESAM-Datenbank

Beschreibung

bool sesam_disconnect ( void )

Rückgabewert: immer TRUE.

sesam_disconnect() schließt die logische Verbindung zur SESAM-Datenbank (ohne Verbindungsabbau und Entladen des Treibers).

Hinweis: dieser Funktionsaufruf ist normalerweise nicht erforderlich, da eine offene logische Verbindung automatisch am Ende der Bearbeitung des Skripts geschlossen wird. Ungesicherte Daten werden verworfen, da ein implizites sesam_rollback() durchgeführt wird.

sesam_disconnect() schließt nicht die permanente Verbindung, sondern setzt die Gültigkeit der aktuellen Definition von "catalog", "schema" und "user" zurück. SESAM-Aufrufe nach sesam_disconnect() sind nicht mehr möglich.

Siehe auch: sesam_connect().

Beispiel 1. Closing a SESAM connection

if (sesam_connect ("mycatalog", "myschema", "otto")) {
... some queries and stuff ...
sesam_disconnect(); }

Zurück | Zum Anfang | Nach vorne
sesam_diagnostic | Nach oben | sesam_errormsg


sesam_errormsg

(PHP 3 CVS only)

sesam_errormsg -- Liefert die Fehlermeldung des letzten SESAM-Aufrufs

Beschreibung

string sesam_errormsg ( void )

Liefert die SESAM-Fehlermeldung des letzten SESAM-Fehlers.

if (!sesam_execimm($stmt))
  printf("%s<br>\n", sesam_errormsg());

Siehe auch: sesam_diagnostic() für den vollen Umfang der SESAM SQL Statusinformation.

Zurück | Zum Anfang | Nach vorne
sesam_disconnect | Nach oben | sesam_execimm


sesam_execimm

(PHP 3 CVS only)

sesam_execimm -- Ausführen einer "immediate" SQL-Anweisung

Beschreibung

string sesam_execimm ( string query)

Rückgabewerte: Ein SESAM "result identifier" oder FALSE im Fehlerfall.

sesam_execimm() bewirkt die Ausführung einer "immediate" SQL-Anweisung wie z.B. UPDATE, INSERT oder DELETE, die keine Rückgabewerte liefern und weder Eingabe- noch Ausgabevariablen verwenden und setzt den Abfrageparameter affected_rows über die sesam_affected_rows() Funktion. Auf "select type" Abfragen kann sesam_execimm() nicht angewendet werden.

Hinweis: sesam_query() unterstützt sowohl "immediate" als auch "select-type" Abfragen. sesam_execimm() sollte nur verwendet werden, wenn der verwendete Anfragetyp von vornherein bekannt ist. SELECT-Abfragen mit sesam_execimm() werden mit dem Fehler $err["sqlstate"] == "42SBW" beendet.

Der Rückgabewert "result identifier" kann nicht für Abfragen mit sesam_affected_rows() verwendet werden; er wird wegen der Kompatibilität zur Funktion sesam_query() ausgegeben.

$stmt = "INSERT INTO mytable VALUES('one', 'two')";
$result = sesam_execimm ($stmt);
$err = sesam_diagnostic();
print("sqlstate = ".$err["sqlstate"]."\n".
      "Affected rows = ".$err["rowcount"]." == ".
      sesam_affected_rows($result)."\n");

Siehe auch: sesam_query() und sesam_affected_rows().

Zurück | Zum Anfang | Nach vorne
sesam_errormsg | Nach oben | sesam_fetch_array


sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- Liefert eine Zeile als assoziatives Array

Beschreibung

array sesam_fetch_array ( string result_id [, int whence [, int offset]])

Liefert ein Array, das der gelesenen Zeile entspricht oder FALSE falls es keine weiteren Zeilen mehr gibt.

sesam_fetch_array() ist eine Alternative zur Funktion sesam_fetch_row(). Die Daten werden anstatt in numerischen Indizes des Ergebnisarrays in assoziativen Indizes gespeichert, wobei die Feldnamen als Indizes benutzt werden.

result_id ist eine gültige Ergebniskennung (???) der Funktion sesam_query() (nur Abfragen vom Typ select!).

Für die gültigen Werte der optionalen Parameter whence und offset im Detail siehe sesam_fetch_row().

Die Funktion sesam_fetch_array() holt eine mit der spezifizierten Ergebniskennung (???) assoziierte Datenzeile. Die Zeile wird als assoziatives Array zur Verfügung gestellt. Jede Ergebnisspalte wird mit einem assoziativen Index gleich dem Spaltennamen (aka. field) abgespeichert. Die Spaltennamen werden in Kleinschreibung konvertiert dargestellt.

Spalten ohne Feldnamen (z.B. Ergebnisse von arithmetischen Operationen) und leere Felder werden im Array nicht gespeichert. Haben zwei oder mehr Spalten im Ergebnis den selben Namen, bekommt diesen die letzte Spalte. In diesem Fall empfiehlt sich der Einsatz von sesam_fetch_row() oder Alias-Definitionen für die Spalten.

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2

Eine Spezialbehandlung erlaubt den Zugriff auf "multiple field" Spalten (die sonst alle den selben Spaltennamen haben würden). Für jede Spalte eines "multiple field" wird der Name gebildet durch Anhängen von "(n)", wobei n den Sub-Index der "multiple field" Spalte darstellt und Werte von 1 bis zum deklarierten Wiederholungsfaktor annehmen kann. Zur Übereinstimmung mit der entsprechenden Abfragesyntax sind die Indizes n i c h t null-basiert. Für eine Spalte der Definition:

CREATE TABLE ... ( ... MULTI(3) INT )

ergäben sich die assoziativen Indizes für die einzelnen "multiple fields" als "multi(1)", "multi(2)", and "multi(3)".

Nachfolgende Aufrufe von sesam_fetch_array() liefern die nächste Zeile (oder die vorhergehende, höchste/niedrigste je nach den Attributen) im Ausgabesatz oder FALSE wenn keine Zeilen mehr verfügabr sind.

Beispiel 1. SESAM fetch rows

<?php
$result = sesam_query ("SELECT * FROM phone\n".
                       "  WHERE LASTNAME='".strtoupper($name)."'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (! $result) {
    ... error ...
}
// print the table:
print "<TABLE BORDER>\n";
while (($row = sesam_fetch_array ($result)) && count($row) > 0) {
    print " <TR>\n";
    print "  <TD>".htmlspecialchars($row["firstname"])."</TD>\n";
    print "  <TD>".htmlspecialchars($row["lastname"])."</TD>\n";
    print "  <TD>".htmlspecialchars($row["phoneno"])."</TD>\n";
    print " </TR>\n";
}
print "</TABLE>\n";
sesam_free_result ($result);
?>

Siehe auch: sesam_fetch_row() (liefert ein indiziertes Array)

Zurück | Zum Anfang | Nach vorne
sesam_execimm | Nach oben | sesam_fetch_result


sesam_fetch_result

(PHP 3 CVS only)

sesam_fetch_result -- Liefert das Ergebnis einer Abfrage (ganz oder teilweise)

Beschreibung

mixed sesam_fetch_result ( string result_id [, int max_rows])

Liefert ein gemischtes Array (???) mit den Ergebnissen einer Abfrage, optional begrenzt auf ein Maximum durch max_rows Zeilen. Sowohl Zeilen- als auch Spaltenindizes sind Null-basiert.

Tabelle 1. Gemischtes Resultat mit der Funktion sesam_fetch_result()

Array Element | Contents
int $arr["count"] | Anzahl von Ergebnis-Spalten im Ausgabesatz (oder NULL bei "immediate" Abfragen)
int $arr["rows"] | Anzahl von Zeilen im Ausgabesatz (zwischen NULL und max_rows)
bool $arr["truncated"] | TRUE wenn die Anzahl der Zeilen mindestens max_rows ist, ansonsten FALSE. Hinweis: auch bei TRUE kann der nächste sesam_fetch_result() u.U. 0 Zeilen zurückliefern, weil es keine weiteren Ergebniseinträge gibt.
mixed $arr[col][row] | Ergebnisdaten für alle Felder in Zeile(row) und Spalte(col), wobei der Integer-Index row zwischen 0 and $arr["rows"]-1, und col zwischen 0 und $arr["count"]-1) liegt. Da Felder auch leer sein können, muss ihre Existenz mit der PHP-Funktion isset() verifiziert werden. Der zurückgelieferte Feldtyp hängt vom entsprechenden, für die Spalte defineirten SQL-Typ ab (siehe SESAM overview für die angewendeten Umsetzungen). SESAM "multiple fields" sind "inlined" (???) und werden wie eine Spaltenfolge behandelt.
Hinweis: der Speicherbedarf für eine umfangreiche Abfrage kann immens groß werden. Es ist empfehlenswert, den Parameter max_rows zum Begrenzen der maximalen Anzahl von gelieferten Zeilen zu verwenden, um zu verhindern, dass die Ausgabe nicht den gesamten verfügbaren Speicher belegt.

Siehe auch: sesam_fetch_row(), und sesam_field_array() zur Überprüfung auf "multiple fields". Ein komplettes Beispiel für die Funktion sesam_fetch_result() findet man in sesam_query().

Zurück | Zum Anfang | Nach vorne
sesam_fetch_array | Nach oben | sesam_fetch_row


sesam_fetch_row

(PHP 3 CVS only)

sesam_fetch_row -- Lesen einer Zeile als Array

Beschreibung

array sesam_fetch_row ( string result_id [, int whence [, int offset]])

Liefert ein Array entsprechend der gelesenen Zeile oder FALSE nach de letzten gefundenen Zeile.

Die Anzahl der Spalten im Ausgabesatz wird als Element des assoziativen Arrays $array["count"] geliefert. Da Ergebnisspalten auch leer sein können, kann die Funktion count() nicht auf das Ergebnis der Funktion sesam_fetch_row() angewendet werden.

result_id ist eine gültige Ergebniskennung (???) der Funktion sesam_query() (nur Abfragen vom Typ select!).

whence ist ein optionaler Parameter für eine "fetch"-Operation (???) bei "scrollable" Cursor und kann auf folgende vordefinierte Werte gesetzt werden:

Tabelle 1. Gültige Werte für Parameter "whence"

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | sequentielles Lesen (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_NEXT gesetzt)
1 | SESAM_SEEK_PRIOR | sequentielles Lesen rückwärts (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_PRIOR gesetzt)
2 | SESAM_SEEK_FIRST | zurück zur ersten Zeile (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_NEXT gesetzt)
3 | SESAM_SEEK_LAST | suche letzte Zeile (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_PRIOR gesetzt)
4 | SESAM_SEEK_ABSOLUTE | suche Zeilen mit der Nummer definiert durch offset (Null-basierte Indizierung (nach "fetch" wird der interne Standardwert auf SESAM_SEEK_ABSOLUTE gesetzt und der interne offset-Wert wird automatisch hochgesetzt)
5 | SESAM_SEEK_RELATIVE | suche relativ zur aktuellen Position; offset kann positiv oder negativ sein.
Dieser Parameter ist nur für "scrollable" Cursors gültig.

Bei "scrollable" kann der Cursor beliebig im Ausgabesatz positioniert werden. Wird der optionale Parameter whence nicht benutzt, werden die globalen Standardwerte für den Scroll-Typ verwendet (Initialiwert: SESAM_SEEK_NEXT, einstellbar mit der Funktion sesam_seek_row()). Bei Verwendung des Parameters whence ersetzen dessen Werte die golbalen Standardwerte.

offset ist ein optionaler Parameter, der nur wirkt (und auch nur benötigt wird), wenn whence entweder den Wert SESAM_SEEK_RELATIVE oder SESAM_SEEK_ABSOLUTE hat. Dieser Parameter ist nur für "scrollable" Cursors gültig.

sesam_fetch_row() holt eine Datenzeile aus dem Ergebnis mit der zugeordneten Ergebniskennung (???). Die Zeile wird als Array geliefert, wobei die indizierten Werte zwischen 0 und $array["count"]-1) liegen. Da Felder auch leer sein können, muss die Existenz eines mit der PHP-Funktion isset() verifiziert werden. Der Typ der gelieferten Felder ist abhängig von der entsprechenden SQL-Typdeklaration düe die Spalten (siehe SESAM overview für die angewendeten Umsetzungen). SESAM "multiple fields" sind "inlined" (???) und werden wie eine Spaltenfolge behandelt.

Nachfolgende Aufrufe von sesam_fetch_row() liefern die nächste Zeile (oder die vorhergehende, höchste/niedrigste je nach den Attributen) im Ausgabesatz oder FALSE wenn keine Zeilen mehr verfügabr sind.

Beispiel 1. SESAM fetch rows

<?php
$result = sesam_query ("SELECT * FROM phone\n".
                       "  WHERE LASTNAME='".strtoupper($name)."'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (! $result) {
    ... error ...
}
// print the table in backward order
print "<TABLE BORDER>\n";
$row = sesam_fetch_row ($result, SESAM_SEEK_LAST);
while (is_array($row)) {
    print " <TR>\n";
    for($col = 0; $col < $row["count"]; ++$col) {
        print "  <TD>".htmlspecialchars($row[$col])."</TD>\n";
    }
    print " </TR>\n";
    // use implied SESAM_SEEK_PRIOR
    $row = sesam_fetch_row ($result);
}
print "</TABLE>\n";
sesam_free_result ($result);
?>

Siehe auch: Funktion sesam_fetch_array() (liefert ein assoziatives Array ) und sesam_fetch_result() (liefert viele Zeilen pro Aufruf (???))

Zurück | Zum Anfang | Nach vorne
sesam_fetch_result | Nach oben | sesam_field_array


sesam_field_array

(PHP 3 CVS only)

sesam_field_array -- Liefert Meta-Information über einzelne Ergebnisspalten

Beschreibung

array sesam_field_array ( string result_id)

result_id ist eine gültige Ergebniskennung (?) der Funktion sesam_query().

Liefert eine gemischtes assoziativ indiziertes Array (???) mit Meta-Informationen (Spaltenname, Typ, Genauigkeit, ...) über einzelne Ergebnisspalten nach einer mit result_id assoziierten Abfrage.

Tabelle 1. Von sesam_field_array() gelieferter gemischter Ausgabesatz

Array Element | Contents
int $arr["count"] | Gesamtanzahl von Zeilen im Ausgabesatz (oder NULL bei "immediate" Abfragen). SESAM "multiple fields" sind "inlined" (???) und werden werden wie die entsprechende Anzahl von Spalten behandelt.
string $arr[col]["name"] | Spaltenname für column(col), wobei col zwischen 0 und $arr["count"]-1 liegt. Für dynamisch berechnete Spalten kann der gelieferte Wert auch ein Leer-String sein. SESAM "multiple fields" sind "inlined" (???) und werden wie die entsprechende Anzahl von Spalten behandelt , jedes mit dem selben Spaltennamen.
string $arr[col]["count"] | "count" ist der Wiederholungsfaktor, wenn die Spalte als "multiple field" definiert wurde (normalerweise 1). Die erste Spalte einer "multiple field"-Spalte enthält dagegen die Anzahl von Wiederholungen (in der zweiten und in allen weiteren Spalten ist "count" 1), was zur Identifikation von "multiple fields" im Ergebnissatz verwendet werden kann. Das Beispiel in der Beschreibung von sesam_query() demonstriert die Anwendung des "count"-Attributes.
string $arr[col]["type"] PHP-Variablentyp der Daten für column(col), wobei col zwischen und $arr["count"]-1 liegt. Der gelieferte Wert kann (abhängig vom SQL-Typ des Ergebnisses) einer der folgenden sein:

  • "integer"

  • "double"

  • "string"

SESAM "multiple fields" sind "inlined" (???) und werden wie die entsprechende Anzahl von Spalten behandelt, jedes mit dem selben PHP-Typ.
string $arr[col]["sqltype"] SQL-Variablentyp der Spaltendaten für column(col), wobei col zwischen 0 und $arr["count"]-1 liegt. Der gelieferte Wert kann abhängig vom SQL-Typ des Ergebnisses einer der folgenden sein:

  • "CHARACTER"

  • "VARCHAR"

  • "NUMERIC"

  • "DECIMAL"

  • "INTEGER"

  • "SMALLINT"

  • "FLOAT"

  • "REAL"

  • "DOUBLE"

  • "DATE"

  • "TIME"

  • "TIMESTAMP"

SESAM "multiple fields" sind "inlined" (???) und werden wie die entsprechende Anzahl von Spalten behandelt, jedes mit dem selben SQL-Typ.
string $arr[col]["length"] | Das Attribut "length" der SQL-Variablen in column(col), wobei col zwischen 0 und $arr["count"]-1 liegt. Das "length" Attribut wird in "CHARACTER" und "VARCHAR" SQL-Typen zur Spezifizierung der (maximalen) Länge der Zeichenvariablen verwendet. SESAM "multiple fields" sind "inlined" (???) und werden wie die entsprechende Anzahl von Spalten behandelt, jedes mit dem selben Längenattribut.
string $arr[col]["precision"] | Das Attribut "precision" der SQL-Variablen in column(col), wobei col zwischen 0 and $arr["count"]-1 liegt. Das Attribut "precision" wird für numerische und Zeit-Felder verwendet. SESAM "multiple fields" sind "inlined" (???) und werden wie die entsprechende Anzahl von Spalten behandelt, jedes mit dem selben Attribut "precision".
string $arr[col]["scale"] | Das Attribut "scale" der SQL-Variablen in column(col), wobei col zwischen 0 and $arr["count"]-1 liegt. Das Attribut "scale" wird für numerische Datentypen verwendet. SESAM "multiple fields" sind "inlined" (???) und werden wie die entsprechende Anzahl von Spalten behandelt, jedes mit dem selben Attribut "scale".

Siehe Beschreibung von sesam_query() für eine beispielhafte Anwendung der Funktion sesam_field_array().

Zurück | Zum Anfang | Nach vorne
sesam_fetch_row | Nach oben | sesam_field_name


sesam_field_name

(PHP 3 CVS only)

sesam_field_name -- Liefert einen Spaltennamen des Ausgabesatzes

Beschreibung

int sesam_field_name ( string result_id, int index)

Liefert den Namen eines Feldes (d.h. den Spaltennamen) oder FALSE on error.

Bei "immediate" Abfragen oder bei dynamischen Spalten wird ein Leerstring zurückgegeben.

Anmerkung: Der Spalten-Index zählt ab NULL, nicht wie bei SESAM ab Eins.

Siehe auch: sesam_field_array(). Bietet einen bequemeren Zugriff auf Spaltennamen und -typen und erlaubt die Prüfung auf "multiple fields".

Zurück | Zum Anfang | Nach vorne
sesam_field_array | Nach oben | sesam_free_result


sesam_free_result

(PHP 3 CVS only)

sesam_free_result -- Gibt Betriebsmittel für die Abfrage frei (der Abfrage ???)

Beschreibung

int sesam_free_result ( string result_id)

Gibt Betriebsmittel der mit result_id assoziierten Abfrage frei. Rückgabewert im Fehlerfall: FALSE.

Zurück | Zum Anfang | Nach vorne
sesam_field_name | Nach oben | sesam_num_fields


sesam_num_fields

(PHP 3 CVS only)

sesam_num_fields -- Liefert die Anzahl von Feldern/Spalten in einem Ausgabesatz

Beschreibung

int sesam_num_fields ( string result_id)

Nach dem Aufruf der Funktion sesam_query() mit einer "select type" Abfrage wird die Anzahl von Spalten als Resultat ausgegeben. Die Ausgabe ist ein Integer-Wert, der die Anzahl aller Spalten (aka.fields) im aktuellen result_id Ergebnis-Satz oder FALSE.

Bei "immediate" Befehle wird der Wert NULL zurückgegeben. Die SESAM "multiple field" Spalten zählen entsprechend der jeweiligen Dimension, d.h. ein dreispaltiges "multiple field" zählt als drei Spalten.

Siehe auch: sesam_query() und sesam_field_array() zur Unterscheidung zwischen "multiple field" Spalten und normalen Spalten.

Zurück | Zum Anfang | Nach vorne
sesam_free_result | Nach oben | sesam_query


sesam_query

(PHP 3 CVS only)

sesam_query -- Durchführen einer SESAM-SQL-Abfrage und aufbereiten der Ergebnisse

Beschreibung

string sesam_query ( string query [, bool scrollable])

Rückgabewerte: ein SESAM "result identifier" oder FALSE im Fehlerfall.

Von anderen Funktionen wird "result_id" für Abfrage-Ergebnisse verwendet.

sesam_query() schickt eine Abfrage an die aktuelle Datenbank auf dem Server. Sie kann sowohl "immediate" SQL-Anweisungen als auch "select type" Abfragen ausführen. Bei der Ausführung einer "immediate" Anweisung ist kein Cursor aktiv und bei jedem folgenden sesam_fetch_row() oder sesam_fetch_result() call will return an empty Aufruf wird ein leeres Ergebnis (zero columns, indicating end-of-result) zurückgeliefert. Für "select type" Anweisungen wird ein Ergebnis-Deskriptor und ein Cursor (scrollable oder sequential, abhängig vom optionalen bool scrollable-Parameter) zugewiesen. Wenn scrollable nicht angegeben wird, ist der Cursor sequentiell.

Bei der Verwendung von "scrollable" Cursors kann der Cursor im Ausgabesatz beliebig positioniert werden. Für jede "scrollable" Abfrage gibt es globale Standardwerte für den "scrolling"-Typ (Initial-Wert: SESAM_SEEK_NEXT) und den scrolling offset, der entweder einmal durch sesam_seek_row() oder bei jedem Lesen einer Zeile mit sesam_fetch_row().

Für "immediate" Befehle wird die Anzahl der betroffenen Zeilen für Abfragen von der Funktion sesam_affected_rows() gesichert.

Siehe auch: sesam_fetch_row() und sesam_fetch_result().

Beispiel 1. Zeige alle Zeilen der Tabelle "Telefon" als HTML-Tabelle

<?php
if (!sesam_connect("phonedb", "demo", "otto"))
  die("cannot connect");
$result = sesam_query("select * from phone");
if (!$result) {
  $err = sesam_diagnostic();
  die($err["errmsg"]);
}
echo "<TABLE BORDER>\n";
// Add title header with column names above the result:
if ($cols = sesam_field_array($result)) {
  echo " <TR><TH COLSPAN=".$cols["count"].">Result:</TH></TR>\n";
  echo " <TR>\n";
  for ($col = 0; $col < $cols["count"]; ++$col) {
    $colattr = $cols[$col];
    /* Span the table head over SESAM's "Multiple Fields": */
    if ($colattr["count"] > 1) {
      echo "  <TH COLSPAN=".$colattr["count"].">".$colattr["name"].
           "(1..".$colattr["count"].")</TH>\n";
      $col += $colattr["count"] - 1;
    }
    else
      echo "  <TH>" . $colattr["name"] . "</TH>\n";
  }
  echo " </TR>\n";
}

do {
  // Fetch the result in chunks of 100 rows max.
  $ok = sesam_fetch_result($result,100);
  for ($row=0; $row < $ok["rows"]; ++$row) {
    echo " <TR>\n";
    for ($col = 0; $col < $ok["cols"]; ++$col) {
      if (isset($ok[$col][$row]))
        echo "  <TD>" . $ok[$col][$row] . "</TD>\n";
      else
        echo "  <TD>-empty-</TD>\n";
    }
    echo " </TR>\n";
  }
} while ($ok["truncated"]); // while there may be more data
echo "</TABLE>\n";
// free result id
sesam_free_result($result);
?>

Zurück | Zum Anfang | Nach vorne
sesam_num_fields | Nach oben | sesam_rollback


sesam_rollback

(PHP 3 CVS only)

sesam_rollback -- Verwirft alle noch nicht gesicherten Änderungen der SESAM-Datenbank

Beschreibung

bool sesam_rollback ( void )

Rückgabewerte: TRUE bei erfolgreicher Ausführung, ansonsten FALSE

sesam_rollback() Verwirft alle noch nicht gesicherten Änderungen der SESAM-Datenbank sowie Ergebnis-Cursor und Ergebnis-Deskriptoren.

Bei jeder Beendigung eines aktuellen Skripts sowie beim Aufruf von sesam_disconnect()) werden nicht gesicherte Daten durch einen impliziten sesam_rollback() Aufruf verworfen.

Siehe auch: sesam_commit().

Beispiel 1. Verwerfen einer Änderung der SESAM-Datenbank

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
  if (sesam_execimm("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)")
   && sesam_execimm("INSERT INTO othertable VALUES (*, 'Another Test', 1)"))
     sesam_commit();
  else
     sesam_rollback();
}
?>

Zurück | Zum Anfang | Nach vorne
sesam_query | Nach oben | sesam_seek_row


sesam_seek_row

(PHP 3 CVS only)

sesam_seek_row -- Setzt "scrollable Cursor" Modus für weitere Aufrufe

Beschreibung

bool sesam_seek_row ( string result_id, int whence [, int offset])

result_id ist eine gültige Ergebniskennung (???); nur bei Abfragen vom Typ select und nur, wenn beim Aufruf von sesam_query()) ein "scrollable Cursor" verlangt wurde.

whence definiert den globalen Standardwert für den Scroll-Typ, der in weiteren Lese-Operationen für "scrollable" Cursor angewendet wird; folgende vordefinierte Werte sind möglich: constants:

Tabelle 1. Valid values for "whence" parameter

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | sequentielles Lesen
1 | SESAM_SEEK_PRIOR | sequentielles Lesen rückwärts
2 | SESAM_SEEK_FIRST | erste Zeile lesen (nach dem Lesen wird der Standardwert auf SESAM_SEEK_NEXT gesetzt)
3 | SESAM_SEEK_LAST | letzte Zeile lesen (nach dem Lesen wird der Standardwert auf SESAM_SEEK_PRIOR gesetzt)
4 | SESAM_SEEK_ABSOLUTE | lesen Zeile mit der Nummer definiert durch offset (Null-basierte Indizierung; nach "fetch" wird der interne Standardwert auf SESAM_SEEK_ABSOLUTE gesetzt und der interne offset-Wert wird automatisch hochgesetzt)
5 | SESAM_SEEK_RELATIVE | suche relativ zur aktuellen Position; offset kann positiv oder negativ sein und wird auch als Standard-Offset für weitere Abfragen gesetzt

offset ist ein optionaler Parameter, der nur wirkt (und auch nur benötigt wird), wenn whence entweder den Wert SESAM_SEEK_RELATIVE oder SESAM_SEEK_ABSOLUTE hat.

Zurück | Zum Anfang | Nach vorne
sesam_rollback | Nach oben | sesam_settransaction


sesam_settransaction

(PHP 3 CVS only)

sesam_settransaction -- Parameter der SESAM-Transaction setzen

Beschreibung

bool sesam_settransaction ( int isolation_level, int read_only)

Ergibt TRUE für gültige Werte und wenn settransaction() erfolgreich war, ansonsten FALSE.

sesam_settransaction() überschreibt die Standardwerte für "isolation level" Parameter und die in der SESAM-Konfigurationsdatei gesetzten "read-only" Transaktionsparameter, um nachfolgende Abfragen zu optimieren und die Konsistenz der Datenbank sicherzustellen. Die geänderten (überschriebenen) Werte wirken nur auf die nächste Transaktion.

sesam_settransaction() kann nur vor dem Start aufgerufen werden, also nicht, wenn eine Transaktion bereits gestartet wurde.

Um die Anwendung in PHP-Scripts zu vereinfachen, wurden folgende Konstanten in PHP vordefiniert (zur Erläuterung der Semantik siehe SESAM-Benutzerhandbuch):

Tabelle 1. Gültige Werte für "Isolation_Level" Parameter

Value | Constant | Meaning
1 | SESAM_TXISOL_READ_UNCOMMITTED | Read Uncommitted
2 | SESAM_TXISOL_READ_COMMITTED | Read Committed
3 | SESAM_TXISOL_REPEATABLE_READ | Repeatable Read
4 | SESAM_TXISOL_SERIALIZABLE | Serializable

Tabelle 2. Gültige Werte für "Read_Only" Parameter

Value | Constant | Meaning
0 | SESAM_TXREAD_READWRITE | Read/Write
1 | SESAM_TXREAD_READONLY | Read-Only

Die von sesam_settransaction() gesetzten Werte überschreiben die in der SESAM-Konfigurationsdatei gesetzten Standardwerte.

Beispiel 1. Setzen von SESAM-Transaktionsparametern

<?php
sesam_settransaction(SESAM_TXISOL_REPEATABLE_READ,
                     SESAM_TXREAD_READONLY);
?>

Zurück | Zum Anfang | Nach vorne
sesam_seek_row | Nach oben | Session Funktionen


Session Funktionen

PHP Handbuch
Zurück Nach vorne

XCVI. Session Funktionen

Einführung

Die Unterstützung von Sessions in PHP bietet die Möglichkeit, bestimmte Daten während einer Folge von Aufrufen Ihrer Website festzuhalten. Damit können Sie persönlichere Applikationen erstellen und Ihre Website ansprechender gestalten.

Einem Besucher wird beim Aufruf Ihrer Website eine eindeutige ID, die sogenannte Session-ID, zugeordnet. Diese wird entweder benutzerseitig in einem Cookie abgelegt oder in der URL übermittelt.

Die Unterstützung von Sessions erlaubt Ihnen, eine beliebige Anzahl von Variablen zu registrieren und diese über Anfragen hinweg zu erhalten. Wenn ein Besucher Ihre Website aufruft, überprüft PHP automatisch (falls session.auto_start auf 1 gesetzt ist) oder auf Anfrage (explizit durch session_start() oder implizit durch session_register()), ob mit der Anfrage schon eine bestimmte Session-ID gesendet wurde. Wenn dies der Fall ist, wird die zuvor gespeicherte Umgebung wiederhergestellt.

Achtung

Falls Sie session.auto_start aktivieren, können Sie keine Objekte in Ihre Session aufnehmen, weil die Definition der Klasse vor dem Start der Session geladen werden muss, damit die Objekte in Ihrer Session wiederhergestellt werden.

Alle registrierten Variablen werden serialisiert, nachdem die Anfrage beendet ist. Registrierte Variablen, die nicht definiert sind, werden als nicht definiert gekennzeichnet. Auch bei darauffolgenden Zugriffen werden sie nicht vom Session-Modul definiert, außer der Benutzer definiert sie später.

Anmerkung: Die Behandlung von Sessions wurde in PHP 4.0 eingeführt.

Anmerkung: Bitte beachten Sie beim Arbeiten mit Sessions, dass der Datensatz einer Session nicht angelegt wird, bevor eine Variable mit der Funktion session_register() registriert oder dem superglobalen Array $_SESSION ein neuer Schlüssel hinzugefügt wird. Das gilt auch dann, wenn eine Session mit der Funktion session_start() gestartet wurde.

Sessions und Sicherheit

Externe Links: Session fixation

Das Session-Modul bietet keine Garantie dafür, dass Informationen, die Sie in einer Session speichern, nur vom Benutzer gesehen werden können, der die Session erzeugt hat. Sie müssen zusätzliche Maßnahmen ergreifen, um die Integrität der Session ihrer Wichtigkeit entsprechend angemessen aktiv zu schützen.

Schätzen Sie die Wichtigkeit der Daten ab, die in Ihren Sessions transportiert werden und treffen Sie zusätzliche Schutzmaßnahmen -- in der Regel bezahlen Sie dafür mit einer geringeren Benutzerfreundlichkeit. Wenn Sie z.B. Benutzer vor einfachen Social Engineering Tactics (Anm. des Übersetzers: Techniken der Ausnutzung menschlicher Schwächen) schützen wollen, müssen Sie session.use_only_cookies aktivieren. Cookies müssen dann benutzerseitig auf jeden Fall aktiviert sein, weil Sessions sonst nicht funktionieren.

Es gibt mehrere Wege, über die eine Sessio-ID an Dritte gelangen kann. Eine entführte Session-ID ermöglicht diesen, auf alle Daten zuzugreifen, die mit dieser Session-ID verbunden sind. Erstens sind das URLs, die Session-IDs enthalten. Wenn Sie auf eine externe Site verweisen, könnte die URL inklusive Session-ID in den Referrer-Logs der externen Site gespeichert werden. Zweitens kann ein aktiverer Angreifer Ihren Netzwerkverkehr abhören. Falls Ihr Netzwerkverkehr nicht verschlüsselt ist, werden Session-IDs im Klartext über das Netzwerk übertragen. Hier ist die Lösung, auf Ihrem Server SSL zu implementieren und die Verwendung für Ihre Benutzer obligatorisch zu machen.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Anmerkung: Optional können Sie für die Speicherung von Sessions die von Ralf S. Engelschall entwickelte Shared Memory Allocation (mm) verwenden. Sie müssen dazu mm herunterladen und installieren. Für Windows-Plattformen steht diese Option nicht zur Verfügung. Beachten Sie, dass das Sessionspeicherungs-Modul für mm nicht dafür garantiert, dass gleichzeitige Zugriffe auf die selbe Session richtig gesperrt sind. Die Verwendung eines auf Shared Memory basierenden Dateisystems (wie z.B. tmpfs unter Solaris/Linux oder /dev/md unter BSD) könnte für die Speicherung von Sessions in Dateien geeigneter sein, weil sie entsprechend gesperrt sind.

Installation

Die Unterstützung von Sessions ist in PHP standardmäßig aktiviert. Falls Sie Ihr PHP ohne Unterstützung von Sessions bauen wollen, müssen Sie bei der Konfiguration die Option --disable-session angeben. Um für die Speicherung von Sessions die shared memory allocation (mm) zu benutzen, müssen Sie PHP mit der Option --with-mm[=DIR] konfigurieren.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Anmerkung: Standardmäßig werden alle Daten, die zu einer bestimmten Session gehören, in einer Datei gespeichert, die in dem Verzeichnis liegt, das durch die INI Option session.save_path bestimmt ist. Für jede Session wird (unabhängig davon, ob sie überhaupt Daten enthält) eine Datai erzeugt. Das liegt daran, dass eine Session geöffnet wird (eine Datei wird erzeugt), ohne dass jemals Daten in diese Datei geschrieben werden. Beachten Sie, dass es sich bei diesem Verhalten um einen Nebeneffekt der Beschränkungen beim Arbeiten mit dem Dateisystem handelt und dass es mit einer benutzerdefinierten Session-Speicherfunktion (wie z.B. mit einer, die eine Datenbank verwendet) möglich ist, Sessions nicht zu verfolgen, wenn sie keine Daten enthalten.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Session-Konfigurationsoptionen

Bezeichnung | Grundeinstellung | Änderbar
session.save_path | "/tmp" | PHP_INI_ALL
session.name | "PHPSESSID" | PHP_INI_ALL
session.save_handler | "files" | PHP_INI_ALL
session.auto_start | "0" | PHP_INI_ALL
session.gc_probability | "1" | PHP_INI_ALL
session.gc_divisor | "100" | PHP_INI_ALL
session.gc_maxlifetime | "1440" | PHP_INI_ALL
session.serialize_handler | "php" | PHP_INI_ALL
session.cookie_lifetime | "0" | PHP_INI_ALL
session.cookie_path | "/" | PHP_INI_ALL
session.cookie_domain | "" | PHP_INI_ALL
session.cookie_secure | "" | PHP_INI_ALL
session.use_cookies | "1" | PHP_INI_ALL
session.use_only_cookies | "0" | PHP_INI_ALL
session.referer_check | "" | PHP_INI_ALL
session.entropy_file | "" | PHP_INI_ALL
session.entropy_length | "0" | PHP_INI_ALL
session.cache_limiter | "nocache" | PHP_INI_ALL
session.cache_expire | "180" | PHP_INI_ALL
session.use_trans_sid | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR
session.bug_compat_42 | "1" | PHP_INI_ALL
session.bug_compat_warn | "1" | PHP_INI_ALL
session.hash_function | "0" | PHP_INI_ALL
session.hash_bits_per_character | "4" | PHP_INI_ALL
url_rewriter.tags | "a=href,area=href,frame=src,input=src,form=fakeentry" | PHP_INI_ALL
Um weitere Details und die Definition der PHP_INI_*-Konstanten zu erhalten, siehe ini_set().

Das Sessionmanagementsystem unterstützt eine Anzahl von Konfigurationsoptionen, die Sie in Ihrer php.ini setzen können. Wir geben Ihnen dazu einen kleinen Überblick.

session.save_handler string

session.save_handler definiert den Namen der Prozedur, die benutzt wird, um die Daten zu speichern und zurückzuholen, die mit der Session in Verbindung stehen. Grundeinstellung files. Siehe auch session_set_save_handler().

session.save_path string

session.save_path definiert das Argument, das an die Speicherprozedur übergeben wird. Wenn Sie die standardmäßige files Prozedur wählen, ist das der Pfad, unter dem die Dateien erzeugt werden. Grundeinstellung /tmp. Siehe auch session_save_path().

Für diese Anweisung gibt es ein optionales Argument N, das die Anzahl der Verzeichnisebenen bestimmt, über die Ihre Session-Dateien verteilt werden. Wird sie zum Beispiel auf '5;/tmp' gesetzt, kann das das Anlegen einer Session-Datei und Speicherstelle wie /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If bewirken. Um N verwenden zu können, müssen Sie alle diese Verzeichnisse vorher anlegen. In ext/session gibt es für diesen Zweck ein kleines Shell-Script namens mod_files.sh. Beachten Sie, dass die automatische 'Müllentsorgung' (garbage collection) nicht durchgeführt wird, wenn N verwendet wird und größer 0 ist (für weitere Informationen siehe eine Kopie der php.ini). Achten Sie bei der Verwendung von N außerdem darauf, dass Sie session.save_path zwischen Anführungsstriche setzen, weil der Trenner (;) in der php.ini auch für Kommentare benutzt wird.

Warnung

Wenn Sie ein Verzeichnis gewählt haben, für das jeder Leserechte hat, wie das z.B. bei /tmp (Grundeinstellung) der Fall ist, könnten andere Serverbenutzer mit Hilfe der Dateiliste dieses Verzeichnisses Ihre Sessions entführen.

Anmerkung: Benutzer von Windows müssen diese Variable ändern, um die Session-Funktionen von PHP nutzen zu können. Stellen Sie sicher, dass Sie einen gültigen Pfad, z.B. c:/temp, angegeben haben.

session.name string

session.name spezifiziert den Namen der Session, der als Cookie-Name verwendet wird. Grundeinstellung PHPSESSID. Siehe auch session_name().

session.auto_start boolean

session.auto_start spezifiziert, ob das Session-Modul zu Beginn einer Anfrage automatisch eine Session startet. Grundeinstellung 0 (deaktiviert).

session.serialize_handler string

session.serialize_handler definiert den Namen der Prozedur, die benutzt wird, um Daten zu serialisieren/deserialisieren. Gegenwärtig wird ein internes PHP-Format (Name php) und WDDX (name wddx) unterstützt. WDDX steht nur zur Verfügung, wenn PHP mit WDDX support kompiliert wurde. Grundeinstellung php.

session.gc_probability integer

session.gc_probability wird in Verbindung mit session.gc_divisor dazu verwendet, die Wahrscheinlichkeit zu regeln, mit der die gc (garbage collection) Routine gestartet wird. Grundeinstellung 1. Siehe auch session.gc_divisor.

session.gc_divisor integer

session.gc_divisor definiert gekoppelt mit session.gc_probability die Wahrscheinlichkeit, mit der die gc (garbage collection) Routine bei jeder Initialisierung einer Session gestartet wird. Die Wahrscheinlichkeit errechnet sich aus gc_probability/gc_divisor. 1/100 bedeutet z.B., dass die GC-Routine bei jeder Anfrage mit einer Wahrscheinlichkeit von 1% gestartet wird. Grundeinstellung 100.

session.gc_maxlifetime integer

session.gc_maxlifetime spezifiziert die Anzahl der Sekunden, nach denen Daten als 'garbage' ('Müll') betrachtet und entsorgt werden.

Anmerkung: Falls Sie die standardmäßige dateibasierte Session-Prozedur verwenden, muss Ihr Dateisystem die Zugriffszeiten (atime) verfolgen. Windows FAT tut dies nicht. Sie müssen sich daher einen anderen Weg einfallen lassen, um die 'Müllentsorgung' Ihrer Session zu erledigen, wenn Sie an ein FAT-Dateisystem gebunden sind oder an irgendein anderes Dateisystem, das keine atime-Kontrolle bietet. Seit PHP 4.2.3 wird mtime (modified date) anstatt atime verwendet. Sie werden also keine Problem mit Dateisystemen haben, bei denen atime nicht zur Verfügung steht.

session.referer_check string

session.referer_check enthält die Zeichenkette, auf die Sie jeden HTTP-Referer überprüfen wollen. Wenn der Referer vom Client gesendet und die Zeichenkette nicht gefunden wurde, wird die eingebettete Session-ID als ungültig gekennzeichnet. Grundeinstellung ist eine leere Zeichenkette.

session.entropy_file string

session.entropy_file gibt den Pfad zu einer externen Quelle (Datei) an, die bei der Erzeugung einer Session-ID als zusätzliche Entropiequelle verwendet wird. Beispiele sind /dev/random oder /dev/urandom, die auf vielen Unix-Systemen zur Verfügung stehen.

session.entropy_length integer

session.entropy_length spezifiziert die Anzahl der Bytes, die von der oben spezifizierten Datei gelesen werden. Grundeinstellung 0 (deaktiviert).

session.use_cookies boolean

session.use_cookies spezifiziert, ob das Modul Cookies verwendet, um die Session-ID clientseitig zu speichern. Grundeinstellung 1 (aktiviert).

session.use_only_cookies boolean

session.use_only_cookies spezifiziert, ob das Modul nur Cookies verwendet, um die Session-ID clientseitig zu speichern. Grundeinstellung 0 (deaktiviert, für Rückwärts-Kompatibilität). Mit Aktivierung dieser Einstellung wird möglichen Angriffen durch Übermittlung von Session-IDs in URLs vorgebeugt. Diese Einstellung wurde in PHP 4.3.0 hinzugefügt.

session.cookie_lifetime integer

session.cookie_lifetime spezifiziert die Cookie-Lebensdauer, die an den Browser geschickt wird, in Sekunden. Der Wert 0 bedeutet "bis der Browser geschlossen wird." Grundeinstellung 0. Siehe auch session_get_cookie_params() und session_set_cookie_params().

session.cookie_path string

session.cookie_path spezifiziert den Pfad, in dem das Session-Cookie gesetzt wird. Grundeinstellung /. Siehe auch session_get_cookie_params() und session_set_cookie_params().

session.cookie_domain string

session.cookie_domain spezifiziert die Domain, unter der das Session-Cookie gesetzt wird. In der Grundeinstellung überhaupt keine. Siehe auch session_get_cookie_params() und session_set_cookie_params().

session.cookie_secure boolean

session.cookie_secure spezifiziert, ob Cookies nur über sichere Verbindungen geschickt werden sollen. Grundeinstellung off. Diese Einstellung wurde in PHP 4.0.4 hinzugefügt. Siehe auch session_get_cookie_params() und session_set_cookie_params().

session.cache_limiter string

session.cache_limiter spezifiziert die Methode der Cacheverwaltung, die bei Session-Seiten benutzt wird (none/nocache/private/private_no_expire/public). Grundeinstellung nocache. Siehe auch session_cache_limiter().

session.cache_expire integer

session.cache_expire spezifiziert in Minuten, wie lange Session-Seiten im Cache bleiben. Bei nocache ist diese Angabe wirkungslos. Grundeinstellung 180. Siehe auch session_cache_expire().

session.use_trans_sid boolean

session.use_trans_sid bestimmt ob transparente SID-Unterstützung aktiviert ist oder nicht. Grundeinstellung 0 (deaktiviert).

Anmerkung: In PHP 4.1.2 oder darunter wird sie durch compilieren mit --enable-trans-sid aktiviert. Ab PHP 4.2.0 ist das Feature trans-sid immer eincompiliert.

URL-basiertes Session-Management hat im Vergleich zu Cookie-basiertem Session-Management zusätzliche Sicherheitsrisiken. Benutzer können zum Beispiel eine URL, die eine aktive Session-ID enthält, per Email an Freunde schicken oder in ihren Bookmarks speichern und immer mit der selben Session-ID auf Ihre Seite zugreifen.

session.bug_compat_42 boolean

Die PHP-Versionen bis 4.2.0 haben eine undokumentierte Funktion/einen undokumentierten Fehler, der es Ihnen gestattet, eine Session-Variable im globalen Bereich zu initialisieren, obwohl register_globals deaktiviert ist. Ab Version 4.3.0 gibt PHP bei Verwendung dieser Funktion eine Warnung aus, wenn zusätzlich session.bug_compat_warn aktiviert ist.

session.bug_compat_warn boolean

Die PHP-Versionen bis 4.2.0 haben eine undokumentierte Funktion/einen undokumentierten Fehler, der es Ihnen gestattet, eine Session-Variable im globalen Bereich zu initialisieren, obwohl register_globals deaktiviert ist. Ab Version 4.3.0 gibt PHP bei Verwendung dieser Funktion eine Warnung aus, wenn sowohl session.bug_compat_42 als auch session.bug_compat_warn aktiviert sind.

session.hash_function integer

session.hash_function gibt Ihnen die Möglichkeit, den Prüfsummen-Algorithmus für die Erzeugung von Session-IDs selbst zu bestimmen. '0' bedeutet MD5 (128 Bit) und '1' bedeutet SHA-1 (160 Bit).

Anmerkung: Dies wurde in PHP 5 eingeführt.

session.hash_bits_per_character integer

session.hash_bits_per_character gibt Ihnen die Möglichkeit, zu definieren wieviele Bit bei der Umwandlung der binären Prüfsummen-Daten in etwas Lesbares in jedem Zeichen gespeichert werden. Mögliche Werte sind '4' (0-9, a-f), '5' (0-9, a-v) und '6' (0-9, a-z, A-Z, "-", ",").

Anmerkung: Dies wurde in PHP 5 eingeführt.

url_rewriter.tags string

url_rewriter.tags bestimmt, wenn Unterstützung für transparente SID aktiviert ist, welche HTML-Tags so umgeschrieben werden, dass sie die Session-ID beinhalten. Grundeinstellung a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=

Anmerkung: Wenn Sie XHTML-konform sein wollen, müssen Sie den form-Eintrag entfernen und Ihre Formularfelder zwischen lt;fieldset>-Tags setzen.

Die Konfigurationseinstellungen von track_vars und register_globals beeinflussen, wie die Session-Variablen gespeichert und wiederhergestellt werden.

Anmerkung: Seit PHP 4.0.3 ist track_vars immer aktiviert.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SID (string)

Konstante, die entweder den Namen und die ID der Session in der Form "name=ID" enthält oder eine leere Zeichenkette, falls die Session-ID in einem entsprechenden Cookie gesetzt wurde.

Beispiele

Anmerkung: Seit PHP 4.1.0 steht $_SESSION genau wie $_POST, $_GET, $_REQUEST und so weiter, als globale Variable zur Verfügung. Im Gegensatz zu $HTTP_SESSION_VARS ist $_SESSION immer global. Deshalb brauchen Sie für $_SESSION nicht das Schlüsselwort global zu verwenden. Bitte beachten Sie, dass in dieser Dokumentation nun überall $_SESSION verwendet wird. Sie können $_SESSION durch $HTTP_SESSION_VARS ersetzen, wenn Sie Letzteres bevorzugen. Beachten Sie auch, dass Sie Ihre Session mit session_start() starten müssen, bevor die Verwendung von $_SESSION zur Verfügung steht.

Für die Schlüssel des assoziativen $_SESSION-Arrays gelten die selben Beschränkungen, wie für die Bezeichnungen von regulären Variablen in PHP, d.h. sie dürfen nicht mit einer Zahl, sondern müssen mit einem Buchstaben oder Unterstrich beginnen. Um weitere Deteils zu erhalten, siehe Abschnitt Variablen.

Falls register_globals deaktiviert ist, können nur Bestandteile des globalen assoziativen Arrays $_SESSION als Session-Variablen registriert werden. Wiederhergestellte Session-Variablen stehen nur im Array $_SESSION zur Verfügung.

Aus Gründen der Verbesserung der Sicherheit und der Lesbarkeit des Codes wird die Verwendung von $_SESSION (oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder niedriger) empfohlen. Mit $_SESSION werden die Funktionen session_register(), session_unregister() und session_is_registered() nicht benötigt. Auf die Session-Variablen kann wie auf jede normale Variable zugegriffen werden.

Beispiel 1. Registrierung einer Variablen mit $_SESSION.

<?php
session_start();
// Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS
if (!isset($_SESSION['zaehler'])) {
    $_SESSION['zaehler'] = 0;
} else {
    $_SESSION['zaehler']++;
}
?>

Beispiel 2. Aufheben der Registrierung einer Variablen mit $_SESSION und deaktiviertem register_globals.

<?php
session_start();
// Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS
unset($_SESSION['zaehler']);
?>

Achtung

Heben Sie NICHT die Registrierung der gesamten $_SESSION mit unset($_SESSION) auf, weil dies die Registrierung von Variablen durch die Superglobale $_SESSION deaktivieren würde.

Beispiel 3. Aufheben der Registrierung einer Variablen mit aktiviertem register_globals, nachdem sie unter Verwendung von $_SESSION registriert wurde.

<?php
session_start();
// Ab PHP 4.3, können Sie auch einfach das vorige Beispiel benutzen.
session_unregister('zaehler');
?>

Wenn register_globals aktiviert ist, kann jede globalen Variable als Session-Variable registriert werden. Beim Neustart einer Session werden diese Variablen als entsprechende globale Variablen wiederhergestellt. Da PHP wissen muss, welche globalen Variablen als Session-Variablen registriert sind, muss der Benutzer Variablen mit der Funktion session_register() registrieren. Sie können das vermeiden, indem Sie einfach Einträge in $_SESSION setzen.

Achtung

Wenn Sie $_SESSION verwenden und register_globals deaktivieren, sollten Sie session_register(), session_is_registered() und session_unregister() nicht verwenden, wenn Ihre Scripte mit PHP 4.2 und niedriger funktionieren sollen. Sie können diese Funktionen ab 4.3 verwenden.

Wenn Sie register_globals aktivieren, sollten Sie session_unregister() verwenden, weil beim Deserialisieren von Session-Daten die Session-Variablen als globale Variablen registriert werden. Die Deaktivierung von register_globals ist sowohl aus Sicherheitsgründen als auch wegen der Performance empfehlenswert.

Beispiel 4. Registrierung einer Variablen bei aktiviertem register_globals

<?php
if (! isset($_SESSION['zaehler'])) {
    $_SESSION['zaehler'] = 1;
} else {
    $_SESSION['zaehler']++;
}
?>

Wenn register_globals aktiviert ist, dann referenzieren die globalen Variablen und die Einträge von $_SESSION automatisch die selben Werte, die in der vorherigen Instanz der Session registriert wurden.

Es gibt einen Fehler in PHP 4.2.3 und früheren Versionen. Wenn Sie eine neue Session-Variable mittels session_register() registrieren, referenzieren der Eintrag im globalen Bereich und der $_SESSION-Eintrag bis zum nächsten session_start() nicht den selben Wert. D.h. eine Änderung an der neu registrierten globalen Variablen wird nicht vom $_SESSION-Eintrag widergespiegelt. Dies wurde in PHP 4.3 korrigiert.

Übermittlung der Session-ID

Es gibt zwei Methoden, eine Session-ID zu übermitteln:

  • Cookies

  • URL Parameter

Das Session-Modul unterstützt beide Methoden. Cookies sind optimal, aber da sie nicht immer zur Verfügung stehen, bieten wir auch noch eine Alternative an. Die zweite Methode hängt die Session-ID direkt an die URLs.

PHP ist in der Lage, Links transparent umzuwandeln. Falls Sie nicht PHP 4.2 oder höher verwenden, müssen Sie das beim Übersetzen von PHP manuell aktivieren. Unter Unix müssen Sie dazu configure mit --enable-trans-sid aufrufen. Wenn diese Option und die Laufzeit-Option session.use_trans_sid aktiviert sind, werden relative URIs automatisch so geändert, dass sie die Session-ID enthalten.

Anmerkung: Die php.ini-Anweisung arg_separator.output ermöglicht es, die Trennung von Argumenten anzupassen. Geben Sie dort für volle XHTML-Konformität &amp; an.

Alternativ können Sie die Konstante SID verwenden, die immer definiert ist. Falls der Client kein geeignetes Session-Cookie gesendet hat, hat sie die Form session_name=session_id. Andernfalls wird sie zu einer leeren Zeichenkette erweitert. Aus diesem Grund können Sie sie bedingungslos in URLs einbetten.

Das folgende Beispiel demonstriert, wie eine Variable registriert wird und wie unter Verwendung einer SID korrekt auf eine andere Seite verwiesen wird.

Beispiel 5. Zählen der Seitenaufrufe eines einzelnen Benutzers

<?php
if (!session_is_registered('zaehler')) {
    session_register('zaehler');
    $zaehler = 1;
} else {
    $zaehler++;
}
?>

<p>
Hallo Besucher, Sie haben diese Seite <?php echo $zaehler; ?> Mal aufgerufen.
</p>

<p>
Hier gehts <A HREF="nextpage.php?<?php echo strip_tags(SID)?>">weiter</A>
</p>

Die Funktion strip_tags() wird verwendet, um bei der Ausgabe der SID XSS-ähnliche Angriffe zu verhindern.

Die oben gezeigte Ausgabe der SID ist nicht nötig, wenn PHP mit --enable-trans-sid übersetzt wurde.

Anmerkung: Bei nichtrelativen URLs wird davon ausgegangen, dass sie auf externe Seiten zeigen und deshalb keine SID angehängt, weil es ein Sicherheitsrisiko wäre, die SID an einen anderen Server zu übermitteln.

Wenn Sie die Speicherung in einer Datenbank oder irgendeine andere Art der Speicherung realisieren wollen, können Sie session_set_save_handler() verwenden, um eine Reihe von benutzerdefinierten Speicherfunktionen zu erzeugen.

Inhaltsverzeichnis
session_cache_expire -- Liefert die aktuelle Cache-Verfallszeit
session_cache_limiter -- Liefert und/oder setzt die aktuelle Cacheverwaltung
session_commit -- Alias von session_write_close()
session_decode -- Dekodiert die Daten einer Session aus einer Zeichenkette
session_destroy -- Löscht alle in einer Session registrierten Daten
session_encode -- Kodiert die Daten der aktuellen Session als Zeichenkette
session_get_cookie_params -- Liefert die Session-Cookie Parameter
session_id -- Liefert und/oder setzt die aktuelle Session-ID
session_is_registered -- Überprüft, ob eine globale Variable in einer Session registriert ist
session_module_name -- Liefert und/oder setzt das aktuelle Session-Modul
session_name -- Liefert und/oder setzt den Namen der aktuellen Session
session_regenerate_id -- Ersetzt die aktuelle Session-ID durch eine neu erzeugte
session_register -- Registriert eine oder mehrere globale Variablen in der aktuellen Session
session_save_path -- Liefert und/oder setzt den aktuellen Speicherpfad der Session
session_set_cookie_params -- Setzt die Session-Cookie Parameter
session_set_save_handler -- Setzt benutzerdefinierte Session-Speicherfunktionen
session_start -- Initialisiert eine Session
session_unregister -- Hebt die Registrierung einer globalen Variablen in der aktuellen Session auf
session_unset -- Löscht alle Session-Variablen
session_write_close -- Speichert die Session-Daten und beendet die Session

Zurück | Zum Anfang | Nach vorne
sesam_settransaction | Nach oben | session_cache_expire


session_cache_expire

(PHP 4 >= 4.2.0, PHP 5)

session_cache_expire -- Liefert die aktuelle Cache-Verfallszeit

Beschreibung

int session_cache_expire ( [int neue_cache_verfallszeit])

session_cache_expire() gibt die aktuelle Einstellung von session.cache_expire zurück. Der zurückgegebene Wert wird in Minuten angegeben und ist standardmäßig auf 180 gesetzt. Wenn neue_cache_verfallszeit angegeben wurde, wird die aktuelle cache_expire durch neue_cache_verfallszeit ersetzt.

Die Cache-Verfallszeit wird zu Beginn einer Anfrage auf den standardmäßigen Wert von 180, der in session.cache_limiter gespeichert ist, zurück gesetzt. Folglich müssen Sie session_cache_expire() bei jeder Anfrage (und vor dem Aufruf von session_start()) aufrufen.

Beispiel 1. session_cache_expire() Beispiel

<?php

/* setzen der Cacheverwaltung auf 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* setzen der Cache-Verfallszeit auf 30 Minuten */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* starten der Session */

session_start();

echo "Die Cacheverwaltung ist jetzt auf $cache_limiter gesetzt</ br>";
echo "Die Session wird für $cache_expire Minuten im Cache gespeichert";
?>

Anmerkung: Das Setzen von new_cache_expire bewirkt nur dann etwas, wenn session.cache_limiter auf einen anderen Wert als nocache gesetzt ist.

Siehe auch: session.cache_expire und session.cache_limiter Konfigurations-Anweisungen und session_cache_limiter().

Zurück | Zum Anfang | Nach vorne
Session Funktionen | Nach oben | session_cache_limiter


session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5)

session_cache_limiter -- Liefert und/oder setzt die aktuelle Cacheverwaltung

Beschreibung

string session_cache_limiter ( [string Cacheverwaltung])

session_cache_limiter() gibt die Bezeichnung der aktuellen Cacheverwaltung zurück. Wenn Cacheverwaltung angegeben wurde, wird diese dem neuen Wert entsprechend geändert.

Die Cacheverwaltung definiert, welche Cache-Kontroll-HTTP-Header, zum Client geschickt werden. Diese Header bestimmen die Regel, nach der der Seiteninhalt von Client und dazwischenliegenden Proxies in den Cachespeicher aufgenommen werden darf. Wird die Cacheverwaltung auf nocache gesetzt, so ist eine client-/proxyseitige Speicherung im Cache nicht erlaubt. Der Wert public erlaubt die Aufnahme in den Cachespeicher durch Proxies und den Client, wohingegen private Proxies die Speicherung im Cache verbietet und dem Client erlaubt, den Seiteninhalt im Cache zu speichern.

Im private-Modus könnte ein zum Client gesendeter Expire-Header manche Browser, inklusive Mozilla, verwirren. Sie können dieses Problem durch Verwendung des private_no_expire-Modus vermeiden. In diesem Modus wird nie ein Expire-Header zum Client gesendet.

Anmerkung: private_no_expire wurde in PHP 4.2.0 hinzugefügt.

Zu Beginn einer Anfrage wird die Cacheverwaltung auf den voreingestellten Wert zurückesetzt, der in session.cache_limiter gespeichert ist. Daher müssen Sie session_cache_limiter() bei jeder Anfrage aufrufen (und zwar bevor session_start() aufgerufen wird).

Beispiel 1. session_cache_limiter() Beispiel

<?php
/* setzen der Cacheverwaltung auf 'private' */
session_cache_limiter('private');
$cacheverwaltung = session_cache_limiter();
echo "Die Cacheverwaltung ist jetzt auf $cacheverwaltung gesetzt<p>";
?>

Siehe auch die session.cache_limiter Konfigurationsanweisung.

Zurück | Zum Anfang | Nach vorne
session_cache_expire | Nach oben | session_commit


session_commit

session_commit -- Alias von session_write_close()

Beschreibung

Diese Funktion ist ein Alias von session_write_close().

Zurück | Zum Anfang | Nach vorne
session_cache_limiter | Nach oben | session_decode


session_decode

(PHP 4 , PHP 5)

session_decode -- Dekodiert die Daten einer Session aus einer Zeichenkette

Beschreibung

bool session_decode ( string Daten)

session_decode() dekodiert die Daten der Session in Daten und setzt die Variablen, die in der Session gespeichert sind.

Siehe auch: session_encode().

Zurück | Zum Anfang | Nach vorne
session_commit | Nach oben | session_destroy


session_destroy

(PHP 4 , PHP 5)

session_destroy -- Löscht alle in einer Session registrierten Daten

Beschreibung

bool session_destroy ( void )

session_destroy() löscht alle in Verbindung mit der aktuellen Session stehenden Daten. Mit der Session zusammenhängende Globale Variablen und das Session-Cookie werden nicht gelöscht.

Diese Funktion gibt nach erfolgtem Löschen der Daten TRUE zurück und FALSE, wenn dabei ein Fehler auftritt.

Beispiel 1. Löschen einer Session

<?php
// Initialisierung der Session.
// Wenn Sie session_name("irgendwas") verwenden, vergessen Sie es
// jetzt nicht!
session_start();
// Löschen aller Session-Variablen.
session_unset();
// Zum Schluß, löschen der Session.
session_destroy();

?>

Beispiel 2. Löschen einer Session mit $_SESSION

<?php

// Initialisierung der Session.
// Wenn Sie session_name("irgendwas") verwenden, vergessen Sie es
// jetzt nicht!
session_start();
// Löschen aller Session-Variablen.
$_SESSION = array();
// Zum Schluß, löschen der Session.
session_destroy();
?>

Zurück | Zum Anfang | Nach vorne
session_decode | Nach oben | session_encode


session_encode

(PHP 4 , PHP 5)

session_encode -- Kodiert die Daten der aktuellen Session als Zeichenkette

Beschreibung

string session_encode ( void )

session_encode() gibt eine Zeichenkette mit dem kodierten Inhalt der aktuellen Session zurück.

Siehe auch: session_decode().

Zurück | Zum Anfang | Nach vorne
session_destroy | Nach oben | session_get_cookie_params


session_get_cookie_params

(PHP 4 , PHP 5)

session_get_cookie_params -- Liefert die Session-Cookie Parameter

Beschreibung

array session_get_cookie_params ( void )

Die Funktion session_get_cookie_params() gibt ein Array mit der Information des aktuellen Session-Cookies zurück. Das Array enthält folgende Elemente:

  • "lifetime" - Die Lebensdauer des Cookies in Sekunden.

  • "path" - Der Pfad, unter dem Informationen gespeichert sind.

  • "domain" - Die Domain des Cookies.

  • "secure" - Das Cookie soll nur über sichere Verbindungen gesendet werden. (Dieses Element wurde in PHP 4.0.4 hinzugefügt.)

Siehe auch die Konfigurationsanweisungen session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure, und session_set_cookie_params().

Zurück | Zum Anfang | Nach vorne
session_encode | Nach oben | session_id


session_id

(PHP 4 , PHP 5)

session_id -- Liefert und/oder setzt die aktuelle Session-ID

Beschreibung

string session_id ( [string ID])

session_id() gibt die Session-ID der aktuellen Session zurück.

Wenn ID angegeben wird, wird die die aktuelle Session-ID ersetzt. session_id() muss zu diesem Zweck vor session_start() aufgerufen werden. In Abhängigkeit von der Session-Prozedur sind in der Session-ID nicht alle Zeichen erlaubt. Zum Beispiel erlaubt die dateibasierte Session-Prozedur nur Zeichen im Bereich a-z, A-Z and 0-9!

Anmerkung: Falls Session-Cookies verwendet werden und für session_id() eine ID angegeben wird, wird ungeachtet dessen, ob die aktuelle Session-ID mit der neuen identisch ist, bei jedem Aufruf von session_start() ein neues Cookie gesendet.

Die Konstante SID kann auch dazu verwendet werden, den aktuellen Namen und die Session-ID als Zeichenkette passend zum Anhängen an URLs zu erhalten. Beachten Sie, dass SID nur definiert ist, wenn vom Client nicht das richtige Cookie gesendet wurde. Siehe auch Session Funktionen.

Siehe auch session_start(), session_set_save_handler() und session.save_handler.

Zurück | Zum Anfang | Nach vorne
session_get_cookie_params | Nach oben | session_is_registered


session_is_registered

(PHP 4 , PHP 5)

session_is_registered -- Überprüft, ob eine globale Variable in einer Session registriert ist

Beschreibung

bool session_is_registered ( string Name)

session_is_registered() gibt TRUE zurück, wenn in der aktuellen Session eine globale Variable mit dem Namen Name registriert ist.

Anmerkung: Benutzen Sie bei Verwendung von $_SESSION (oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder niedriger) isset() um zu prüfen, ob eine Variable in $_SESSION registriert ist.

Achtung

Wenn Sie $_SESSION (oder $HTTP_SESSION_VARS) verwenden, sollten Sie nicht session_register(), session_is_registered() und session_unregister() verwenden.

Zurück | Zum Anfang | Nach vorne
session_id | Nach oben | session_module_name


session_module_name

(PHP 4 , PHP 5)

session_module_name -- Liefert und/oder setzt das aktuelle Session-Modul

Beschreibung

string session_module_name ( [string Modul])

session_module_name() gibt den Namen des aktuellen Session-Moduls zurück. Wenn Modul angegeben wird, wird stattdessen dieses Modul verwendet.

Zurück | Zum Anfang | Nach vorne
session_is_registered | Nach oben | session_name


session_name

(PHP 4 , PHP 5)

session_name -- Liefert und/oder setzt den Namen der aktuellen Session

Beschreibung

string session_name ( [string Name])

session_name() gibt den Namen der aktuellen Session zurück. Wenn Name angegeben wird, wird der Name der aktuellen Session durch dessen Wert ersetzt.

Der Session-Name referenziert die Session-ID in Cookies und URLs. Er sollte nur alphanumerische Zeichen enthalten und sollte kurz und beschreibend sein (z.B. für Benutzer mit aktivierter Cookie-Warnung). Der Session-Name wird auf den Ausgangswert zurückgesetzt, der zu Beginn in session.name gespeichert wurde. Deshalb muss session_name() bei jeder Anfrage aufgerufen werden (und bevor session_start() oder session_register() aufgerufen wurden).

Beispiel 1. session_name() Beispiele

<?php
/* den Session-Namen auf WebsiteID setzen */
$name_vorher = session_name ("WebsiteID");
echo "Der vorhergehende Session-Name war $name_vorher<p>";
?>

Siehe auch die session.name Konfigurationsanweisung.

Zurück | Zum Anfang | Nach vorne
session_module_name | Nach oben | session_regenerate_id


session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5)

session_regenerate_id -- Ersetzt die aktuelle Session-ID durch eine neu erzeugte

Beschreibung

bool session_regenerate_id ( void )

Die Funktion session_regenerate_id() ersetzt die aktuelle Session-ID durch eine neue und übernimmt die aktuellen Session-Informationen.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. A session_regenerate_id() Beispiel

<?php
session_start();

$alte_sessionid = session_id();

session_regenerate_id();

$neue_sessionid = session_id();

echo "Alte Session: $alte_sessionid<br>";
echo "Neue Session: $neue_sessionid<br>";

print_r($_SESSION);
?>

Anmerkung: Falls Session-Cookies aktiviert sind, wird seit PHP 4.3.3 durch die Verwendung von session_regenerate_id() auch ein neues Session-Cookie mit der neuen Session-ID abgegeben.

Siehe auch: session_id(),
session_start() und
session_name().

Zurück | Zum Anfang | Nach vorne
session_name | Nach oben | session_register


session_register

(PHP 4 , PHP 5)

session_register -- Registriert eine oder mehrere globale Variablen in der aktuellen Session

Beschreibung

bool session_register ( mixed Name [, mixed ...])

session_register() akzeptiert eine variable Anzahl von Argumenten, die jeweils entweder eine Zeichenkette sein können, die den Namen einer Variablen trägt, oder ein Array, das aus solchen Variablennamen oder anderen Arrays besteht. Für jeden Namen registriert session_register() die globale Variable mit diesem Namen in der aktuellen Session.

Achtung

Wenn Sie wollen, dass ihr Script unabhängig von der Einstellung von register_globals funktioniert, müssen Sie stattdessen das Array $_SESSION verwenden, weil $_SESSION-Einträge automatisch registriert werden. Wenn Sie in Ihrem Script session_register() verwenden, funktioniert es nicht in Umgebungen, in denen die PHP-Anweisung register_globals deaktiviert ist.

register_globals: important note: Since PHP 4.2.0, the default value for the PHP directive register_globals is off. The PHP community encourages all to not rely on this directive but instead use other means, such as the superglobals.

Achtung

Diese Funktion registriert eine globale Variable. Wenn Sie eine Session-Variable innerhalb einer Funktion registrieren wollen, müssen Sie sicherstellen, dass Sie sie unter Verwendung des global-Schlüsselworts oder des $GLOBALS[]-Arrays global machen oder die nachstehend vermerkten speziellen Session-Arrays verwenden.

Achtung

Wenn Sie $_SESSION (oder $HTTP_SESSION_VARS) verwenden, sollten Sie nicht session_register(), session_is_registered() und session_unregister() verwenden.

Diese Funktion gibt TRUE zurück, wenn alle Variablen erfolgreich in der Session registriert wurden.

Wenn session_start() nicht vor dieser Funktion aufgerufen wurde, erfolgt ein impliziter Aufruf von session_start() ohne Parameter. $_SESSION ahmt dieses Verhalten nicht nach und benötigt den Aufruf von session_start() bevor es verwendet wird.

Sie können eine Session-Variable auch erzeugen, indem Sie das entsprechende Element des $_SESSION- oder (PHP <= 4.1.0) $HTTP_SESSION_VARS-Arrays setzen.

<?php
// Sie sollten session_register() nicht verwenden
$barney = "A big purple dinosaur.";
session_register("barney");

// Ab PHP 4.1.0 ist die Verwendung von $_SESSION vorzuziehen
$_SESSION["zim"] = "An invader from another planet.";

// Die alte Methode war, $HTTP_SESSION_VARS zu verwenden
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>

Anmerkung: Gegenwärtig ist es nicht möglich, Ressourcen-Variablen in einer Session zu registrieren. Zum Beispiel können Sie nicht erwarten, dass die als Session-Variable gespeicherte Verbindungs-Kennung der zu einer Datenbank aufgebauten Verbindung bei der nächsten Wiederherstellung der Session noch gültig ist. PHP-Funktionen, die eine Ressource zurückgeben, können daran erkannt werden, dass sie einen Rückgabewert resource in ihrer Funktionsdefinition haben. Eine Liste der Funktionen, die Ressourcen zurückgeben befindet sich im Anhang Liste von PHP Ressourcen.

Bei Verwendung von $_SESSION (oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder niedriger) weisen Sie $_SESSION einen Wert zu, also $_SESSION['var'] = 'ABC';

Siehe auch: session_is_registered(), session_unregister() und $_SESSION.

Zurück | Zum Anfang | Nach vorne
session_regenerate_id | Nach oben | session_save_path


session_save_path

(PHP 4 , PHP 5)

session_save_path -- Liefert und/oder setzt den aktuellen Speicherpfad der Session

Beschreibung

string session_save_path ( [string Pfad])

session_save_path() gibt den Pfad des aktuellen Verzeichnisses zurück, das zum Speichern der Session-Daten verwendet wird. Wenn Pfad angegeben wird, wird der Pfad, unter dem Daten gespeichert werden, entsprechend geändert. Zu diesem Zweck muss session_save_path() vor session_start() aufgerufen werden.

Anmerkung: Unter manchen Betriebssystemen, wollen Sie vielleicht einen Pfad auf einem Dateisystem angeben, das sehr viele kleine Dateien effizient behandelt. Unter Linux, zum Beispiel, bietet reiserfs eventuell eine bessere Performance als ext2fs.

Siehe auch die session.save_path Konfigurationsanweisung.

Zurück | Zum Anfang | Nach vorne
session_register | Nach oben | session_set_cookie_params


session_set_cookie_params

(PHP 4 , PHP 5)

session_set_cookie_params -- Setzt die Session-Cookie Parameter

Beschreibung

void session_set_cookie_params ( int Lebensdauer [, string Pfad [, string Domain [, bool secure]]])

Setzen der Cookie-Parameter, die in der php.ini definiert sind. Diese Funktion wirkt sich nur für die Dauer des Scripts aus. Folglich müssen Sie session_set_cookie_params() bei jeder Anfrage und noch vor dem Aufruf von session_start() aufrufen.

Anmerkung: Der Parameter secure wurde in PHP 4.0.4 hinzugefügt.

Siehe auch die Konfigurationsanweisungen session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure und session_get_cookie_params().

Zurück | Zum Anfang | Nach vorne
session_save_path | Nach oben | session_set_save_handler


session_set_save_handler

(PHP 4 , PHP 5)

session_set_save_handler -- Setzt benutzerdefinierte Session-Speicherfunktionen

Beschreibung

bool session_set_save_handler ( string öffnen, string schließen, string lesen, string schreiben, string löschen, string gc)

session_set_save_handler() setzt die benutzerdefinierten Session-Speicherfunktionen, die zur Speicherung und Wiederherstellung von zur Session gehörigen Daten verwendet werden. Dies ist äußerst nützlich, wenn eine andere als die mit PHP-Sessions zur Verfügung stehende Art der Speicherung, z.B. die Speicherung der Session-Daten in einer lokalen Datenbank, bevorzugt wird. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: Die "schreiben"-Routine wird nicht ausgeführt, bevor die Ausgabe abgeschlossen ist. Deshalb werden auch niemals Fehlermeldungen der "schreiben"-Routine im Browser erscheinen. Wenn die Ausgabe von Fehlermeldungen nötig ist, sollte diese stattdessen in eine Datei geschrieben werden.

Anmerkung: Wenn die Session keine Daten enthält, wird die "schreiben"-Routine nicht ausgeführt; das trifft auch dann zu, wenn leere Session-Variablen registriert sind. Im Unterschied dazu erzeugt die standardmäßige dateibasierte Session-Speicherfunktion auch leere Session-Dateien.

Das folgende Beispiel liefert eine dateibasierte Session-Speicherung, die der Standard-Speicherroutine files der PHP-Sessions ähnlich ist. Dieses Beispiel kann problemlos erweitert werden, dass es Datenbank-Speicherung mittels ihrer bevorzugten PHP-gestützten Datenbank beinhaltet.

Damit die Speicherroutine funktioniert wie erwartet, muss die read-Function immer einen String-Wert zurückgeben. Wenn es keine Daten zu lesen gibt, geben Sie eine leere Zeichenkette zurück. Rückgabewerte anderer Routinen werden in boolesche Ausdrücke umgewandelt. TRUE für einen Erfolg, FALSE für einen Fehler.

Beispiel 1. session_set_save_handler() Beispiel

<?php
function open($save_path, $session_name)
{
  global $sess_save_path, $sess_session_name;

  $sess_save_path = $save_path;
  $sess_session_name = $session_name;
  return(true);
}

function close()
{
  return(true);
}

function read($id)
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "r")) {
    $sess_data = fread($fp, filesize($sess_file));
    return($sess_data);
  } else {
    return(""); // Must return "" here.
  }

}

function write($id, $sess_data)
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "w")) {
    return(fwrite($fp, $sess_data));
  } else {
    return(false);
  }

}

function destroy($id)
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  return(@unlink($sess_file));
}

/************************************************
* WARNUNG - Sie müssen hier irgendeine Art von *
* Speicherbereinigungsroutine realisieren.     *
************************************************/
function gc($maxlifetime)
{
  return true;
}

session_set_save_handler("open", "close", "read", "write", "destroy", "gc");

session_start();

// verfahren Sie mit Sessions wie gewohnt
?>

Siehe auch die session.save_handler Konfigurationsanweisung.

Zurück | Zum Anfang | Nach vorne
session_set_cookie_params | Nach oben | session_start


session_start

(PHP 4 , PHP 5)

session_start -- Initialisiert eine Session

Beschreibung

bool session_start ( void )

session_start() erzeugt eine Session oder nimmt die aktuelle wieder auf, die auf der Session-ID basiert, die mit einer Anfrage, z.B. durch GET, POST oder ein Cookie, übermittelt wurde.

Diese Funktion gibt immer TRUE zurück.

Anmerkung: Bei Verwendung Cookie-basierter Sessions müssen Sie session_start() aufrufen, bevor irgend etwas an den Browser geschickt wird.

Beispiel 1. Ein Session-Beispiel: seite1.php

<?php
// seite1.php

session_start();

echo 'Willkommen auf Seite #1';

$_SESSION['farbe'] = 'grün';
$_SESSION['tier'] = 'Spinne';
$_SESSION['zeit'] = time();

// Funktioniert, falls das Session-Cookie akzeptiert wurde
echo '<br /><a href="seite2.php">Seite 2</a>';

// Oder die Session-ID mit übergeben, für den Fall, dass sie benötigt wird
echo '<br /><a href="seite2.php?' . SID . '">Seite 2</a>';
?>

Nach dem Aufruf von seite1.php enthält automatisch auch die zweite Seite, seite2.php, die Session-Daten. Lesen Sie Session Funktionen, um weitere Informationen über die Übermittlung der Session-ID zu erhalten. Dort wird zum Beispiel erklärt, worum es sich bei der Konstanten SID handelt.

Beispiel 2. Ein Session-Beispiel: seite2.php

<?php
// seite2.php

session_start();

echo 'Willkommen auf Seite #2<br />';

echo $_SESSION['farbe'];  // grün
echo $_SESSION['tier'];   // Spinne
echo date('d.m.Y H:i:s', $_SESSION['zeit']);

// Sie können auch hier, genauso wie bei seite1.php, SID verwenden
echo '<br /><a href="seite1.php">Seite 1</a>';
?>

Wenn Sie eine benannte Session verwenden wollen, müssen Sie session_name() aufrufen, bevor Sie session_start() aufrufen.

Wenn trans-sid aktiviert ist, registriert session_start() die interne Ausgaberoutine für das Umschreiben von URLs. Verwendet ein Benutzer ob_gzhandler oder ähnliches mit ob_start(), ist die Reihenfolge der Augaberoutine wichtig für eine korrekte Ausgabe. Zum Beispiel muss der Benutzer ob_gzhandler vor Beginn der Session registrieren.

Anmerkung: Die Verwendung von zlib.output_compression ist ob_gzhandler() vorzuziehen.

Anmerkung: Ab PHP 4.3.3 resultiert der Aufruf von session_start(), nachdem die Session schon gestartet wurde, in einem Fehler der Stufe E_NOTICE. Der zweite Session-Start wird in diesem Fall einfach ignoriert.

Siehe auch: $_SESSION, session.auto_start und session_id().

Zurück | Zum Anfang | Nach vorne
session_set_save_handler | Nach oben | session_unregister


session_unregister

(PHP 4 , PHP 5)

session_unregister -- Hebt die Registrierung einer globalen Variablen in der aktuellen Session auf

Beschreibung

bool session_unregister ( string Name)

session_unregister() hebt die Registrierung der globalen Variablen namens Name in der aktuellen Session auf.

Diese Funktion gibt TRUE zurück, wenn die Aufhebung der Registrierung der Variablen in der Session erfolgt ist.

Anmerkung: Benutzen Sie bei Verwendung von $_SESSION (oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder niedriger) unset() um die Registrierung einer Session-Variablen aufzuheben. Heben Sie aber nicht $_SESSION selbst mit unset() auf, weil dies die besondere Funktion der Superglobalen $_SESSION deaktivieren würde.

Achtung

Diese Funktion löscht die Name entsprechende globale Variable nicht, sondern verhindert nur, dass die Variable als Teil der Session gespeichert wird. Sie müssen unset() aufrufen, um die entsprechende globale Variable zu entfernen.

Achtung

Wenn Sie $_SESSION (oder $HTTP_SESSION_VARS) verwenden, sollten Sie nicht session_register(), session_is_registered() und session_unregister() verwenden.

Zurück | Zum Anfang | Nach vorne
session_start | Nach oben | session_unset


session_unset

(PHP 4 , PHP 5)

session_unset -- Löscht alle Session-Variablen

Beschreibung

void session_unset ( void )

Die Funktion session_unset() löscht alle Session-Variablen, die gegenwärtig registriert sind.

Anmerkung: Benutzen Sie bei Verwendung von $_SESSION (oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder niedriger) unset() um die Registrierung einer Session-Variablen aufzuheben, d.h. unset ($_SESSION['varname']);.

Achtung

Heben Sie NICHT die Registrierung der gesamten $_SESSION mit unset($_SESSION) auf, weil dies die Registrierung von Variablen durch die Superglobale $_SESSION deaktivieren würde.

Zurück | Zum Anfang | Nach vorne
session_unregister | Nach oben | session_write_close


session_write_close

(PHP 4 >= 4.0.4, PHP 5)

session_write_close -- Speichert die Session-Daten und beendet die Session

Beschreibung

void session_write_close ( void )

Beendet die aktuelle Session und speichert die Session-Daten.

Session-Daten werden normalerweise nach Beenden eines Scripts gespeichert, ohne dass session_write_close() aufgerufen werden muss, aber da Session-Daten gesperrt werden, um gleichzeitiges Schreiben zu verhindern, kann jeweils immer nur ein Script auf eine Session einwirken. Bei der Verwendung von Framesets zusammen mit Sessions werden Sie merken, dass wegen dieser Sperrung ein Frame nach dem anderen geladen wird. Sie können die Zeit zum Laden aller Frames reduzieren, indem Sie die Session beenden, sobald alle Änderungen an den Session-Variablen durchgeführt sind.

Zurück | Zum Anfang | Nach vorne
session_unset | Nach oben | Shared Memory Funktionen (Gemeinsamer Speicher)


Shared Memory Funktionen (Gemeinsamer Speicher)

PHP Handbuch
Zurück Nach vorne

XCVII. Shared Memory Funktionen (Gemeinsamer Speicher)

Einführung

Shmop ist eine Sammlung einfach anzuwendender PHP-Funktionen, mit denen man mit PHP UNIX shared-memory-Segmente beschreiben, auslesen und löschen kann. Die Funktionen können mit Windows nicht eingesetzt werden, da Windows keinen gemeinsamen Speicher unterstützt. Um shmop zu nutzen, müssen Sie PHP mit der Option --enable-shmop kompilieren.

Anmerkung: Die Funktionen, die in diesem Kapitel erklärt werden, beginnen in PHP 4.0.3 alle mit shm, anstelle von shmop.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Um die shmop-Funktionen benutzen zu können, müssen Sie php mit der Option --enable-shmop kompilieren.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Beispiele

Beispiel 1. Shared Memory Operationen - Übersicht

<?php

// Erstelle einen 100 Byte grossen gemeinsam genutzten Speicherblock
// mit mit der System_ID if 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if(!$shm_id) {
    echo "Konnte kein gemeinsames Speichersegment erstellen\n";
}

// Hole die Grösse des gemeinsamen Speicherblocks
$shm_size = shmop_size($shm_id);
echo "SHM Block mit: ".$shm_size. " Bytes wurde erstellt.\n";

// Teststring in den gemeinsamen Speicher schreiben
$shm_bytes_written = shmop_write($shm_id, "mein gemeinsamer Speicherblock", 0);
if($shm_bytes_written != strlen("mein gemeinsamer Speicherblock")) {
    echo "Konnte nicht den gesamten String schreiben\n";
}

// Den Teststring wieder auslesen
$my_string = shmop_read($shm_id, 0, $shm_size);
if(!$my_string) {
    echo "Konnte nicht aus dem gemeinsamen Speicher lesen\n";
}
echo "Die Daten im gemeinsamen Speicher waren: ".$my_string."\n";

// Den Speicherblock löschen und den gemeinsamen Speicher schliessen
if(!shmop_delete($shm_id)) {
    echo "Konnte den gemeinsamen Speicherblock nicht zum Löschen markieren.";
}
shmop_close($shm_id);

?>

Inhaltsverzeichnis
shmop_close -- Schliesst einen gemeinsamen Speicherblock
shmop_delete -- Einen gemeinsamen Speicherblock löschen
shmop_open -- Erstellt oder öffnet einen gemeinsamen Speicherblock
shmop_read -- Daten aus dem gemeinsamen Speicherblock auslesen
shmop_size -- Gibt die Grösse des gemeinsamen Speicherblocks zurück
shmop_write -- Schreibt Daten in einen gemeinsamen Speicherblock

Zurück | Zum Anfang | Nach vorne
session_write_close | Nach oben | shmop_close


shmop_close

(PHP 4 >= 4.0.4, PHP 5)

shmop_close -- Schliesst einen gemeinsamen Speicherblock

Beschreibung

int shmop_close ( int shmid)

shmop_close() wird benutzt, um einen gemeinsamen Speicherblock zu schliessen.

shmop_close() benötigt shmid, die Kennung des gemeinsamen Speicherblocks, der mit shmop_open() erzeugt wurde.

Beispiel 1. Einen gemeinsamen Speicherblock schliessen

<?php
shmop_close($shm_id);
?>

In diesem Beispiel wird der gemeinsame Speicherblock mit dem Bezeichner $shm_id geschlossen.

Zurück | Zum Anfang | Nach vorne
Shared Memory Funktionen (Gemeinsamer Speicher) | Nach oben | shmop_delete


shmop_delete

(PHP 4 >= 4.0.4, PHP 5)

shmop_delete -- Einen gemeinsamen Speicherblock löschen

Beschreibung

int shmop_delete ( int shmid)

shmop_delete() wird benutzt, um einen gemeinsamen Speicherbereich zu löschen.

shmop_delete() benötigt shmid, die Kennung des gemeinsamen Speicherblocks, der mit shmop_open() erzeugt wurde. Bei Erfolg wird 1 zurückgegeben, bei Scheitern 0.

Beispiel 1. Einen gemeinsamen Speicherblock löschen

<?php
shmop_delete($shm_id);
?>

In diesem Beispiel wird der gemeinsame Speicherblock mit der Kennung $shm_id gelöscht.

Zurück | Zum Anfang | Nach vorne
shmop_close | Nach oben | shmop_open


shmop_open

(PHP 4 >= 4.0.4, PHP 5)

shmop_open -- Erstellt oder öffnet einen gemeinsamen Speicherblock

Beschreibung

int shmop_open ( int key, string flags, int mode, int size)

shmop_open() Kann einen gemeinsamen Speicherbereich erstellen oder öffnen.

shmop_open() benötigt 4 Parameter: key, die System-ID des gemeinsam genutzten Speicherblocks, dieser Parameter kann als Dezimal- oder Hexadezimalzahl übergeben werden. Der zweite Parameter bezeichnet die Flags, die man benutzen kann:

  • "a" zum Zugriff (access) auf einen gemeinsamen Speicherblock (setzt SHM_RDONLY für shmat). Benutzen Sie dieses Flag, wenn Sie einen bestehenden gemeinsamen Speicherblock zum Lesen öffnen wollen.

  • "c" zum Erstellen (create) eines gemeinsamen Speicherblocks (setzt IPC_CREATE). Benutzen Sie dieses Flag, wenn Sie einen neuen gemeinsamen Speicherblock erstellen wollen oder, falls bereits ein Segment mit derselben ID existiert, zum Öffnen dieses Segments für Lese- und Schreibzugriffe.

  • "w" für Lese- und Schreibzugriffe. Benutzen Sie dieses Flag wenn Sie in einen gemeinsamen Speicherbereich schreiben oder daraus lesen müssen. Das wird meistens der Fall sein.

  • "n" zum Erzeugen eines neuen gemeinsamen Speichersegments (setzt IPC_CREATE|IPC_EXCL). Benutzen Sie dieses Flag, wenn Sie ein neues gemeinsames Speichersegment erzeugen wollen. Falls schon ein Segment mit diesem Flag existiert, schlägt die Funktion fehl. Dies ist aus Sicherheitsgründen nützlich, denn damit können Sie Sicherheitslöcher vermeiden.

Der dritte Parameter ist der Modus, der die Zugriffsrechte, die Sie dem gemeinsamen Speicher zuweisen wollen, angibt. Das sind dieselben Zugriffsrechte wie für Dateien. Zugriffsrechte müssen oktal angegeben werden, z.B. 0644. Der letzte Parameter gibt die Grösse des gemeinsamen Speichers, den Sie erstellen wollen, in Byte, an.

Anmerkung: Beachten Sie: Der dritte und vierte Parameter muss als 0 angegeben werden, wenn Sie ein existierendes gemeinsames Speichersegment öffnen wollen. Bei Erfolg liefert die Funktion shmop_open() eine ID zurück, die Sie zum Zugriff auf den erstellten gemeinsamen Speicher benutzen können.

Beispiel 1. Einen neuen gemeinsamen Speicherblock erstellen

<?php
$shm_id = shmop_open(0x0fff, "c", 0644, 100);
?>

In diesem Beispiel wurde ein gemeinsamer Speicherblock mit der System-ID 0x0fff erstellt.

Zurück | Zum Anfang | Nach vorne
shmop_delete | Nach oben | shmop_read


shmop_read

(PHP 4 >= 4.0.4, PHP 5)

shmop_read -- Daten aus dem gemeinsamen Speicherblock auslesen

Beschreibung

string shmop_read ( int shmid, int start, int count)

shmop_read() liest einen String aus dem gemeinsamen Speicherblock.

shmop_read() braucht 3 Parameter: shmid, die Kennung des gemeinsamen Speicherblocks, der mit shmop_open() erzeugt wurde, start gibt den Offset an, von wo ab gelesen werden soll und count gibt die Anzahl der zu lesenden Bytes an.

Beispiel 1. Aus dem gemeinsamen Speicher lesen

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

In diesem Beispiel werden 50 Bytes aus dem gemeinsamen Speicherblock in die Variable $shm_data eingelesen.

Zurück | Zum Anfang | Nach vorne
shmop_open | Nach oben | shmop_size


shmop_size

(PHP 4 >= 4.0.4, PHP 5)

shmop_size -- Gibt die Grösse des gemeinsamen Speicherblocks zurück

Beschreibung

int shmop_size ( int shmid)

shmop_size() wird benutzt, um die Grösse eines gemeinsamen Speicherblocks in Byte zu ermitteln.

shmop_size() benötigt shmid, die Kennung des gemeinsamen Speicherblocks, der mit shmop_open() erzeugt wurde. Die Funktion liefert einen Integerwert zurück, welcher angibt, wieviele Bytes von dem gemeinsamen Speicher belegt werden.

Beispiel 1. Die Grösse des gemeinsamen Speicherblocks ermitteln

<?php
$shm_size = shmop_size($shm_id);
?>

In dem Beispiel erhält die Variable $shm_size die Grösse des durch $shm_id bezeichneten gemeinsamen Speicherblocks in Byte.

Zurück | Zum Anfang | Nach vorne
shmop_read | Nach oben | shmop_write


shmop_write

(PHP 4 >= 4.0.4, PHP 5)

shmop_write -- Schreibt Daten in einen gemeinsamen Speicherblock

Beschreibung

int shmop_write ( int shmid, string data, int offset)

shmop_write() schreibt Daten in einen gemeinsamen Speicherbereich.

shmop_write() braucht 3 Parameter:shmid, die Kennung des gemeinsamen Speicherblocks, der mit shmop_open() erzeugt wurde, data, ein String, der in den gemeinsamen Speicher geschrieben werden soll und offset, der angibt, von wo ab in den gemeinsamen Speicherblock geschrieben werden soll.

Beispiel 1. In den gemeinsamen Speicher schreiben

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

In diesem Beispiel werden die Daten der Variablen $my_string in den gemeinsamen Speicherblock geschrieben. Die Variable $shm_bytes_written enthält die Anzahl der geschriebenen Bytes.

Zurück | Zum Anfang | Nach vorne
shmop_size | Nach oben | SimpleXML functions


SimpleXML functions

PHP Handbuch
Zurück Nach vorne

XCVIII. SimpleXML functions

Einführung

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

The SimpleXML extension provides a very simple and easily usable toolset to convert XML to an object that can be processed with normal property selectors and array iterators.

Installation

This extension is only available if PHP was configured with --enable-simplexml. The PHP configuration script does this by default.

Beispiele

Many examples in this reference require an XML string. Instead of repeating this string in every example, we put it into a file which we include in each example. This included file is shown in the following example section. Alternatively, you could create an XML document and read it with simplexml_load_file().

Beispiel 1. Include file example.php with XML string

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
<movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
</movie>
</movies>
XML;?>

The simplicity of SimpleXML appears most clearly when one extracts a string or number from a basic XML document.

Beispiel 2. Getting <plot>

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

echo $xml->movie[0]->plot; // "So this language. It's like..."
?>

Beispiel 3. Accessing non-unique elements in SimpleXML

When multiple instances of an element exist as children of a single parent element, normal iteration techniques apply.

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

/* For each <movie> node, we echo a separate <plot>. */
foreach ($xml->movie as $movie) {
   echo $movie->plot, '<br />';
}

?>

Beispiel 4. Using attributes

So far, we have only covered the work of reading element names and their values. SimpleXML can also access element attributes. Access attributes of an element just as you would elements of an array.

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

/* Access the <rating> nodes of the first movie.
* Output the rating scale, too. */
foreach ($xml->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Get attributes as element indices
    case 'thumbs':
        echo $rating, ' thumbs up';
        break;
    case 'stars':
        echo $rating, ' stars';
        break;
    }
}
?>

Beispiel 5. Comparing Elements and Attributes with Text

To compare an element or attribute with a string or pass it into a function that requires a string, you must cast it to a string using (string). Otherwise, PHP treats the element as an object.

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

if ((string) $xml->movie->title == 'PHP: Behind the Parser') {
    print 'My favorite movie.';
}

htmlentities((string) $xml->movie->title);
?>

Beispiel 6. Using Xpath

SimpleXML includes builtin Xpath support. To find all <character> elements:

<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);

foreach ($xml->xpath('//character') as $character) {
    echo $character->name, 'played by ', $character->actor, '<br />';
}
?>

'//' serves as a wildcard. To specify absolute paths, omit one of the slashes.

Beispiel 7. Setting values

Data in SimpleXML doesn't have to be constant. The object allows for manipulation of all of its elements.

<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);

$xml->movie[0]->actor[0]->age = '21';

echo $xml->asXML();
?>

The above code will output a new XML document, just like the original, except that the new XML will define Ms. Coder's age as 21.

Beispiel 8. DOM Interoperability

PHP has a mechanism to convert XML nodes between SimpleXML and DOM formats. This example shows how one might change a DOM element to SimpleXML.

<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
     echo 'Error while parsing the document';
     exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

Inhaltsverzeichnis
simplexml_element->asXML -- Return a well-formed XML string based on SimpleXML element.
simplexml_element->attributes -- Identifies an element's attributes.
simplexml_element->children -- Finds children of given node.
simplexml_element->xpath -- Runs Xpath query on XML data.
simplexml_import_dom -- Get a simplexml_element object from a DOM node.
simplexml_load_file -- Interprets an XML file into an object.
simplexml_load_string -- Interprets a string of XML into an object.

Zurück | Zum Anfang | Nach vorne
shmop_write | Nach oben | simplexml_element->asXML


simplexml_element->asXML

(no version information, might be only in CVS)

simplexml_element->asXML -- Return a well-formed XML string based on SimpleXML element.

Description

string simplexml_element->asXML ( void )

The asXML method formats the parent object's data in XML version 1.0.

Beispiel 1. Get XML

<?php
$string = <<<XML
<a>
<b>
  <c>text</c>
  <c>stuff</c>
</b>
<d>
  <c>code</c>
</d>
</a>
XML;
$xml = simplexml_load_string($string);

echo $xml->asXML(); // <?xml ... <a><b><c>text</c><c>stuff</c> ...

?>

asXML also works on Xpath results:

Beispiel 2. Using asXML() on Xpath results

<?php
// Continued from example XML above.

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo $node->asXML(); // <c>text</c> and <c>stuff</c>
}
?>

Zurück | Zum Anfang | Nach vorne
SimpleXML functions | Nach oben | simplexml_element->attributes


simplexml_element->attributes

(no version information, might be only in CVS)

simplexml_element->attributes -- Identifies an element's attributes.

Description

object simplexml_element simplexml_element->attributes ( string data)

This function provides the attributes and values defined within an xml tag.

Anmerkung: SimpleXML has made a rule of adding iterative properties to most methods. They cannot be viewed using var_dump() or anything else which can examine objects.

Beispiel 1. Interpret an XML string

<?php
$string = <<<XML
<a>
<foo name="one" game="lonely">1</foo>
</a>
XML;
$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?>

This script will display:

name="one"
game="lonely"

Zurück | Zum Anfang | Nach vorne
simplexml_element->asXML | Nach oben | simplexml_element->children


simplexml_element->children

(no version information, might be only in CVS)

simplexml_element->children -- Finds children of given node.

Description

object simplexml_element simplexml_element->children ( void )

This method finds the children of the element of which it is a member. The result follows normal iteration rules.

Anmerkung: SimpleXML has made a rule of adding iterative properties to most methods. They cannot be viewed using var_dump() or anything else which can examine objects.

Beispiel 1. Traversing a children() pseudo-array

<?php
$xml = simplexml_load_string(
'<person>
<child role="son">
  <child role="daughter"/>
</child>
<child role="daughter">
  <child role="son">
   <child role="son"/>
  </child>
</child>
</person>');

foreach ($xml->children() as $second_gen) {
    echo ' The person begot a ' . $second_gen['role'];

    foreach ($second_gen->children() as $third_gen) {
        echo ' who begot a ' . $third_gen['role'] . ';';

        foreach ($third_gen->children() as $fourth_gen) {
            echo ' and that ' . $third_gen['role'] .
                ' begot a ' . $fourth_gen['role'];
        }
    }
}
?>

This script will output:

The person begot a son who begot a daughter; The person
begot a daughter who begot a son; and that son begot a son

Zurück | Zum Anfang | Nach vorne
simplexml_element->attributes | Nach oben | simplexml_element->xpath


simplexml_element->xpath

(no version information, might be only in CVS)

simplexml_element->xpath -- Runs Xpath query on XML data.

Description

array simplexml_element->xpath ( string path)

The xpath method searches the SimpleXML node for children matching the Xpath path. It always returns an array of simplexml_element objects.

Beispiel 1. Xpath

<?php
$string = <<<XML
<a>
<b>
  <c>text</c>
  <c>stuff</c>
</b>
<d>
  <c>code</c>
</d>
</a>
XML;
$xml = simplexml_load_string($string);

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Relative paths also work... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

This script will display:

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

Notice that the two results are equal.

Zurück | Zum Anfang | Nach vorne
simplexml_element->children | Nach oben | simplexml_import_dom


simplexml_import_dom

(PHP 5)

simplexml_import_dom -- Get a simplexml_element object from a DOM node.

Description

object simplexml_element simplexml_import_dom ( domNode node)

This function takes a node of a DOM document and makes it into a SimpleXML node. This new object can then be used as a native SimpleXML element. If any errors occur, it returns FALSE.

Beispiel 1. Import DOM

<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
    echo 'Error while parsing the document';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title; // blah
?>

Zurück | Zum Anfang | Nach vorne
simplexml_element->xpath | Nach oben | simplexml_load_file


simplexml_load_file

(PHP 5)

simplexml_load_file -- Interprets an XML file into an object.

Description

object simplexml_element simplexml_load_file ( string filename)

This function will convert the well-formed XML document in the file specified by filename to an object of class simplexml_element. If any errors occur during file access or interpretation, the function returns FALSE.

Beispiel 1. Interpret an XML document

<?php
// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    var_dump($xml);
} else {
    exit('Failed to open test.xml.');
}
?>

This script will display, on success:

simplexml_element Object
(
  [title] => Example Title
  ...
)

At this point, you can go about using $xml->title and any other elements.

See also: simplexml_load_string()

Zurück | Zum Anfang | Nach vorne
simplexml_import_dom | Nach oben | simplexml_load_string


simplexml_load_string

(PHP 5)

simplexml_load_string -- Interprets a string of XML into an object.

Description

object simplexml_element simplexml_load_string ( string data)

This function will take the well-formed xml string data and return an object with properties containing the data held within the xml document. If any errors occur, it returns FALSE.

Beispiel 1. Interpret an XML string

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
<title>Forty What?</title>
<from>Joe</from>
<to>Jane</to>
<body>
  I know that's the answer -- but what's the question?
</body>
</document>
XML;
$xml = simplexml_load_string($string);

var_dump($xml);
?>

This script will display:

simplexml_element Object
(
  [title] => Forty What?
  [from] => Joe
  [to] => Jane
  [body] =>
   I know that's the answer -- but what's the question?
)

At this point, you can go about using $xml->body and such.

See also: simplexml_load_file().

Zurück | Zum Anfang | Nach vorne
simplexml_load_file | Nach oben | SOAP Functions


SOAP Functions

PHP Handbuch
Zurück Nach vorne

XCIX. SOAP Functions

Einführung

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

The SOAP extension can be used to write SOAP Servers and Clients. It supports subsets of SOAP 1.1, SOAP 1.2 and WSDL 1.1 specifications.

Anforderungen

This extension makes use of the GNOME xml library. Download and install this library. You will need at least libxml-2.5.4.

Installation

This extension is only available if PHP was configured with --enable-soap.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. SOAP Configuration Options

Name | Default | Changeable
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL
soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Hier eine kurze Erklärung der Konfigurationsoptionen:

soap.wsdl_cache_enabled boolean

Enables or disables WSDL caching feature.

soap.wsdl_cache_dir string

Sets the directory name where SOAP extension will put cache files.

soap.wsdl_cache_ttl int

(time to live) Sets the number of second while cached file will be used instead of original one.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SOAP_1_1 (integer)

SOAP_1_2 (integer)

SOAP_PERSISTENCE_SESSION (integer)

SOAP_PERSISTENCE_REQUEST (integer)

SOAP_FUNCTIONS_ALL (integer)

SOAP_ENCODED (integer)

SOAP_LITERAL (integer)

SOAP_RPC (integer)

SOAP_DOCUMENT (integer)

SOAP_ACTOR_NEXT (integer)

SOAP_ACTOR_NONE (integer)

SOAP_ACTOR_UNLIMATERECEIVER (integer)

UNKNOWN_TYPE (integer)

XSD_STRING (integer)

XSD_BOOLEAN (integer)

XSD_DECIMAL (integer)

XSD_FLOAT (integer)

XSD_DOUBLE (integer)

XSD_DURATION (integer)

XSD_DATETIME (integer)

XSD_TIME (integer)

XSD_DATE (integer)

XSD_GYEARMONTH (integer)

XSD_GYEAR (integer)

XSD_GMONTHDAY (integer)

XSD_GDAY (integer)

XSD_GMONTH (integer)

XSD_HEXBINARY (integer)

XSD_BASE64BINARY (integer)

XSD_ANYURI (integer)

XSD_QNAME (integer)

XSD_NOTATION (integer)

XSD_NORMALIZEDSTRING (integer)

XSD_TOKEN (integer)

XSD_LANGUAGE (integer)

XSD_NMTOKEN (integer)

XSD_NAME (integer)

XSD_NCNAME (integer)

XSD_ID (integer)

XSD_IDREF (integer)

XSD_IDREFS (integer)

XSD_ENTITY (integer)

XSD_ENTITIES (integer)

XSD_INTEGER (integer)

XSD_NONPOSITIVEINTEGER (integer)

XSD_NEGATIVEINTEGER (integer)

XSD_LONG (integer)

XSD_INT (integer)

XSD_SHORT (integer)

XSD_BYTE (integer)

XSD_NONNEGATIVEINTEGER (integer)

XSD_UNSIGNEDLONG (integer)

XSD_UNSIGNEDINT (integer)

XSD_UNSIGNEDSHORT (integer)

XSD_UNSIGNEDBYTE (integer)

XSD_POSITIVEINTEGER (integer)

XSD_NMTOKENS (integer)

XSD_ANYTYPE (integer)

SOAP_ENC_OBJECT (integer)

SOAP_ENC_ARRAY (integer)

XSD_1999_TIMEINSTANT (integer)

XSD_NAMESPACE (string)

XSD_1999_NAMESPACE (string)

Inhaltsverzeichnis
SoapClient::SoapClient -- SoapClient constructor
SoapClient::__call -- Calls a SOAP function
SoapClient::__getFunctions -- Returns list of SOAP functions
SoapClient::__getLastRequest -- Returns last SOAP request
SoapClient::__getLastResponse -- Returns last SOAP response
SoapClient::__getTypes -- Returns list of SOAP types
SoapFault::SoapFault -- SoapFault constructor
SoapHeader::SoapHeader -- SoapHeader constructor
SoapParam::SoapParam -- SoapParam constructor
SoapServer::SoapServer -- SoapServer constructor
SoapServer::addFunction -- Adds one or several functions those will handle SOAP requests
SoapServer::getFunctions -- Returns list of defined functions
SoapServer::handle -- Handles a SOAP request
SoapServer::setClass -- Sets class which will handle SOAP requests
SoapServer::setPersistence -- Sets persistence mode of SoapServer
SoapVar::SoapVar -- SoapVar constructor
is_soap_fault -- Checks if SOAP call was failed

Zurück | Zum Anfang | Nach vorne
simplexml_load_string | Nach oben | SoapClient::SoapClient


SoapClient::SoapClient

(no version information, might be only in CVS)

SoapClient::SoapClient -- SoapClient constructor

Description

object SoapClient::SoapClient ( mixed wsdl [, array options])

This constructor allows creating SoapClient objects in WSDL or non-WSDL mode. The first case requires the URI of WSDL file as the first parameter and an optional options array. The second case requires NULL as the first parameter and the options array with location and uri options set, where location is a URL to request and uri is a target namespace of the SOAP service.

The style and use options only work in non-WSDL mode. In WSDL mode, they comes from the WSDL file.

The soap_version option specifies whether to use SOAP 1.1, or SOAP 1.2 client.

For HTTP authentication, you may use the login and password options. For making a HTTP connection through a proxy server, use the options proxy_host, proxy_port, proxy_login and proxy_password.

Beispiel 1. SoapClient examples

<?php

$client = new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080,
                                            'proxy_login'    => "some_name",
                                            'proxy_password' => "some_password"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/",
                                     'style'    => SOAP_DOCUMENT,
                                     'use'      => SOAP_LITERAL));

?>

Zurück | Zum Anfang | Nach vorne
SOAP Functions | Nach oben | SoapClient::__call


SoapClient::__call

(no version information, might be only in CVS)

SoapClient::__call -- Calls a SOAP function

Description

mixed SoapClient::__call ( string function_name [, array arguments [, array options [, array input_headers [, array output_headers]]]])

This is a low level API function to make a SOAP call. Usually in WSDL mode you can simply call SOAP functions as SoapClient methods. It is useful for non-WSDL mode when soapaction is unknown, uri differs from the default or when you like to send and/or receive SOAP Headers. On error, a call to a SOAP function can cause PHP exceptions or return a SoapFault object if exceptions was disabled. To check if the function call failed catch the SoapFault exceptions or check the result with the is_soap_fault() function.

SOAP functions may return one or several values. In the first case it will return just the value of output parameter, in the second it will return the associative array with named output parameters.

Beispiel 1. SoapClient::__call() examples

<?php
$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);
$client->__call("SomeFunction", array($a, $b, $c));
$client->__call("SomeFunction", array($a, $b, $c), NULL,
                new SoapHeader(...), $output_headers);

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__call("SomeFunction", array($a, $b, $c));
$client->__call("SomeFunction", array($a, $b, $c),
                 array('soapaction' => 'some_action',
                       'uri'        => 'some_uri'));
?>

See also
SoapClient::SoapClient(),
SoapParam::SoapParam(),
SoapVar::SoapVar(),
SoapHeader::SoapHeader(),
SoapFault::SoapFault(), and
is_soap_fault().

Zurück | Zum Anfang | Nach vorne
SoapClient::SoapClient | Nach oben | SoapClient::__getFunctions


SoapClient::__getFunctions

(no version information, might be only in CVS)

SoapClient::__getFunctions -- Returns list of SOAP functions

Description

array SoapClient::__getFunctions ( void )

This function works only in WSDL mode.

Beispiel 1. SoapClient::__getFunctions() example

<?php
$client = SoapClient("some.wsdl");
var_dump($client->__getFunctions());
?>

See also SoapClient::SoapClient().

Zurück | Zum Anfang | Nach vorne
SoapClient::__call | Nach oben | SoapClient::__getLastRequest


SoapClient::__getLastRequest

(no version information, might be only in CVS)

SoapClient::__getLastRequest -- Returns last SOAP request

Description

string SoapClient::__getLastRequest ( void )

This function works only with SoapClient which was created with the trace option.

Beispiel 1. SoapClient::__getLastRequest() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction(...);
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
?>

See also SoapClient::SoapClient().

Zurück | Zum Anfang | Nach vorne
SoapClient::__getFunctions | Nach oben | SoapClient::__getLastResponse


SoapClient::__getLastResponse

(no version information, might be only in CVS)

SoapClient::__getLastResponse -- Returns last SOAP response

Description

object SoapClient::__getLastResponse ( void )

This function works only with SoapClient which was created with the trace option.

Beispiel 1. SoapClient::__getLastResponse() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction(...);
echo "RESPONSE:\n" . $client->__getLastResponse() . "\n";
?>

See also SoapClient::SoapClient().

Zurück | Zum Anfang | Nach vorne
SoapClient::__getLastRequest | Nach oben | SoapClient::__getTypes


SoapClient::__getTypes

(no version information, might be only in CVS)

SoapClient::__getTypes -- Returns list of SOAP types

Description

array SoapClient::__getTypes ( void )

This function works only in WSDL mode.

Beispiel 1. SoapClient::__getTypes() example

<?php
$client = SoapClient("some.wsdl");
var_dump($client->__getTypes());
?>

See also SoapClient::SoapClient().

Zurück | Zum Anfang | Nach vorne
SoapClient::__getLastResponse | Nach oben | SoapFault::SoapFault


SoapFault::SoapFault

(no version information, might be only in CVS)

SoapFault::SoapFault -- SoapFault constructor

Description

object SoapFault::SoapFault ( string faultcode, string faultstring [, string faultactor [, mixed detail [, string faultname [, mixed headerfault]]]])

This class is useful when you would like to send SOAP fault responses from the PHP handler. faultcode, faultstring, faultactor and details are standard elements of SOAP Fault; faultname is an optional parameter that can be used to select proper fault encoding from WSDL; headerfault is an optional parameter that can be used during SOAP header handling to report an error in the response header.

Beispiel 1. Some examples

<?php
function test($x)
{
    return new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

It is possible to use PHP exception mechanism to throw SOAP Fault.

Beispiel 2. Some examples

<?php
function test($x)
{
    throw new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

See also
SoapClient::SoapClient(),
SoapClient::__call(),
SoapParam::SoapParam(),
SoapVar::SoapVar(), and
is_soap_fault().

Zurück | Zum Anfang | Nach vorne
SoapClient::__getTypes | Nach oben | SoapHeader::SoapHeader


SoapHeader::SoapHeader

(no version information, might be only in CVS)

SoapHeader::SoapHeader -- SoapHeader constructor

Description

object SoapHeader::SoapHeader ( string namespace, string name [, mixed data [, bool mustUnderstand [, mixed actor]]])

SoapHeader is a special low-level class for passing or returning SOAP headers. It is just a data holder and it does not have any special methods except a constructor. It can be used in the SoapClient::__call() method to pass a SOAP header or in a SOAP header handler to return the header in a SOAP response. namespace and name are namespace and name of the SOAP header element. data is a SOAP header's content. It can be a PHP value or SoapVar object. mustUnderstand and actor are values for mustUnderstand and actor attributes of this SOAP Header element.

Beispiel 1. Some examples

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__call("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'hello world'));
?>

See also
SoapClient::__call(),
SoapParam::SoapParam(), and
SoapVar::SoapVar().

Zurück | Zum Anfang | Nach vorne
SoapFault::SoapFault | Nach oben | SoapParam::SoapParam


SoapParam::SoapParam

(no version information, might be only in CVS)

SoapParam::SoapParam -- SoapParam constructor

Description

object SoapParam::SoapParam ( mixed data, string name)

SoapParam is a special low-level class for naming parameters and return ing values in non-WSDL mode. It is just a data holder and it does not have any special methods except the constructor. The constructor takes data to pass or return and name. It is possible to pass parameters directly as PHP values, but in this case it will be named as paramN and the SOAP Service may not understand them.

Beispiel 1. Some examples

<?php
$client = new SoapClient(null,array('location' => "http://localhost/soap.php",
                                    'uri'      => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a, "a"),
                      new SoapParam($b, "b"),
                      new SoapParam($c, "c"));
?>

See also SoapClient::__call(), and SoapVar::SoapVar().

Zurück | Zum Anfang | Nach vorne
SoapHeader::SoapHeader | Nach oben | SoapServer::SoapServer


SoapServer::SoapServer

(no version information, might be only in CVS)

SoapServer::SoapServer -- SoapServer constructor

Description

object SoapServer::SoapServer ( mixed wsdl [, array options])

This constuctor allows the creatiion of SoapServer objects in WSDL or non-WSDL mode. In the first case, wsdl must be set to the URI of a WSDL file. In the second case, wsdl must be set to NULL and the uri option must be set. Additional options allow setting a default SOAP version (soap_version) and actor URI (actor).

Beispiel 1. Some examples

<?php

$server = new SoapServer("some.wsdl");

$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

?>

Zurück | Zum Anfang | Nach vorne
SoapParam::SoapParam | Nach oben | SoapServer::addFunction


SoapServer::addFunction

(no version information, might be only in CVS)

SoapServer::addFunction -- Adds one or several functions those will handle SOAP requests

Description

void SoapServer::addFunction ( mixed functions)

Exports one or more functions for remote clients.

To export one function, pass the function name into the functions parameter as a string. To export several functions pass an array of function names, and to export all functions pass a special constant SOAP_FUNCTIONS_ALL.

functions must receive all input arguments in the same order as defined in the WSDL file (They should not receive any output parameters as arguments) and return one or more values. To return several values they must return an array with named output parameters.

Beispiel 1. Some examples

<?php

function echoString($inputString)
{
    return $inputString;
}

$server->addFunction("echoString");

function echoTwoStrings($inputString1, $inputString2)
{
    return array("outputString1" => $inputString1,
                 "outputString2" => $inputString2);
}
$server->addFunction(array("echoString", "echoTwoStrings"));

$server->addFunction(SOAP_FUNCTIONS_ALL);

?>

See also SoapServer::SoapServer(), and SoapServer::SetClass().

Zurück | Zum Anfang | Nach vorne
SoapServer::SoapServer | Nach oben | SoapServer::getFunctions


SoapServer::getFunctions

(no version information, might be only in CVS)

SoapServer::getFunctions -- Returns list of defined functions

Description

array SoapServer::getFunctions ( void )

This functions returns the list of all functions which was added by SoapServer::addFunction() or SoapServer::setCalss().

Beispiel 1. Some examples

<?php
$server = new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $server->handle();
} else {
  echo "This SOAP server can handle following functions: ";
  $functions = $server->getFunctions();
  foreach($functions as $func) {
    echo $func . "\n";
  }
}
?>

See also
SoapServer::SoapServer(),
SoapServer::addFunction(), and
SoapServer::SetClass().

Zurück | Zum Anfang | Nach vorne
SoapServer::addFunction | Nach oben | SoapServer::handle


SoapServer::handle

(no version information, might be only in CVS)

SoapServer::handle -- Handles a SOAP request

Description

void SoapServer::handle ( [string soap_request])

Processes a SOAP request, calls necessary functions, and sends a response back. It assumes a request in input parameter soap_request or in the global $HTTP_RAW_POST_DATA PHP variable if the argument is omitted.

Beispiel 1. Some examples

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

See also SoapServer::SoapServer().

Zurück | Zum Anfang | Nach vorne
SoapServer::getFunctions | Nach oben | SoapServer::setClass


SoapServer::setClass

(no version information, might be only in CVS)

SoapServer::setClass -- Sets class which will handle SOAP requests

Description

void SoapServer::setClass ( string class_name [, mixed args])

Exports all methods from specified class. Additional parameters args will be passed to the default class constructor during object creation. The object can be made persistent across request for a given PHP session with the SoapServer::setPersistence() method.

Beispiel 1. Some examples

<?php

class foo {
    function foo()
    {
    }
}
$server->setClass("foo");

class bar {
    function bar($x, $y)
    {
    }
}
$server->setClass("bar", $arg1, $arg2);

?>

See also
SoapServer::SoapServer(),
SoapServer::addFunction(), and
SoapServer::setPersistence().

Zurück | Zum Anfang | Nach vorne
SoapServer::handle | Nach oben | SoapServer::setPersistence


SoapServer::setPersistence

(no version information, might be only in CVS)

SoapServer::setPersistence -- Sets persistence mode of SoapServer

Description

void SoapServer::setPersistence ( int mode)

This function allows saving data between requests in a PHP session. It works only with a server that exports functions from a class with SoapServer::setClass().

Beispiel 1. Some examples

<?php

$server->setPersistence(SOAP_PERSISTENCE_SESSION);

$server->setPersistence(SOAP_PERSISTENCE_REQUEST);

?>

See also SoapServer::SoapServer(), and SoapServer::SetClass().

Zurück | Zum Anfang | Nach vorne
SoapServer::setClass | Nach oben | SoapVar::SoapVar


SoapVar::SoapVar

(no version information, might be only in CVS)

SoapVar::SoapVar -- SoapVar constructor

Description

object SoapVar::SoapVar ( mixed data, int encoding [, string type_name [, string type_namespace [, string node_name [, string node_namespace]]]])

SoapVar is a special low-level class for encoding parameters and returning values in non-WSDL mode. It is just a data holder and does not have any special methods except the constructor. It is useful when you would like to set the type property in SOAP request or response. The constructor takes data to pass or return, encoding ID to encode it (see XSD_... constants) and as option type name and namespace and XML node name and namespace.

Beispiel 1. Some examples

<?php
class SOAPStruct {
    function SOAPStruct($s, $i, $f)
    {
        $this->varString = $s;
        $this->varInt = $i;
        $this->varFloat = $f;
    }
}
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$struct = new SOAPStruct('arg', 34, 325.325);
$soapstruct = new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd");
$client->echoStruct(new SoapParam($soapstruct, "inputStruct"));
?>

See also SoapClient::__call() and SoapParam::SoapParam().

Zurück | Zum Anfang | Nach vorne
SoapServer::setPersistence | Nach oben | is_soap_fault


is_soap_fault

(PHP 5)

is_soap_fault -- Checks if SOAP call was failed

Description

bool is_soap_fault ( mixed obj)

This function is useful when you like to check if the SOAP call failed, but don't like to use exceptions. To use it you must create a SoapClient object with exceptions option set to zero or FALSE. In this case, the SOAP method will return a special SoapFault object which encapsulates the fault details (faultcode, faultstring, faultactor and faultdetails).

If exceptions is not set then SOAP call will throw an exception on error. is_soap_fault() checks if the given parameter is a SoapFault object.

Beispiel 1. is_soap_fault() example

<?php
$client = SoapClient("some.wsdl", array('exceptions' => 0));
$result = $client->SomeFunction(...);
if (is_soap_fault($result)) {
    trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faulstring})", E_ERROR);
}
?>

Beispiel 2. SOAP's standard method for error reporting is exceptions

<?php
try {
    $client = SoapClient("some.wsdl");
    $result = $client->SomeFunction(...);
} catch (SoapFault $fault) {
    trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faulstring})", E_ERROR);
}
?>

See also SoapClient::SoapClient(), and SoapFault::SoapFault().

Zurück | Zum Anfang | Nach vorne
SoapVar::SoapVar | Nach oben | SQLite


SQLite

PHP Handbuch
Zurück Nach vorne

C. SQLite

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Einführung

Dies ist eine Extension für den eingebetteten Datenbankserver SQLite. SQLite ist eine C-Bibliothek, die eine eingebettete Datenbankserver-Software enthält. Programme, die mit der SQLite Bibliothek verlinkt sind, können SQL-Datenbanken ohne einen separaten RDBMS-Prozess, also ohnen einen separaten Datenbankserver nutzen.

SQLite ist keine Client-Bibliothek, die zur Verbindung mit einem grossen Datenbankserver genutzt wird. SQLite ist der Server. Die SQLite-Bibliothek liesst und schreibt direkt von und auf die Datenbankdateien auf der Festplatte.

Anmerkung: Weitere Informationen finden Sie auf der SQLite Website. (http://sqlite.org/).

Installation

Lesen Sie die Datei INSTALL, die im SQLite-Verzeichnis enthalten ist. SQLite selbst ist automatisch enthalten, es ist nicht notwendig, weitere Software zu installieren.

Windows-Nutzer können die DLL-Version der SQLite-Extension hier downloaden: (php_sqlite.dll).

Kontaktinformationen

Mögliche Fragen über die Extension sollten auf den PHP Mailinglisten gestellt werden.

Anforderungen

Um die SQLite-Funktionen nutzen zu können, muss PHP mit SQLite-Support kompiliert werden, oder die SQLite-Extension dynamisch in der php.ini geladen werden.

Resource Typen

Die SQLite-Extension nutz zwei verschiedene Resource-Typen. Der erste die die Datenbankverbindung, der zweite das Abfrageergebnis.

Vordefinierte Konstanten

Die Funktionen sqlite_fetch_array() und sqlite_current() nutzen eine Konstante für die unterschiedlichen Varianten von Ergebnis-Arrays. Die folgenden Konstanten sind definiert:

Tabelle 1. SQLite Fetch Konstanten

Konstante | Bedeutung
SQLITE_ASSOC | Die Spalten werden in einem Array zurückgeliefert, bei dem der Spaltenname als Hashindex genutzt wird.
SQLITE_BOTH | Die Spalten werden in dem Array sowohl als numerischer wie auch als Spaltenname als Hashindex zurückgeliefert.
SQLITE_NUM | Die Spalten werden in dem Array nur mit einem numerischem Index zurückgeliefert. Der Index beginnt mit 0 für das erste Feld des Ergebnisses.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 2. SQLite Konfiguration

Name | Voreinstellung | Einstellbar
sqlite.assoc_case | 0 | PHP_INI_SYSTEM
Für weitere Details und die Definition der PHP_INI_*-Konstanten siehe ini_set().

Hier ist eine kurze Erläuterung der Konfigurationseinstellungen.

sqlite.assoc_case int

Ob gemischte Schreibweise (0), Grossbuchstaben (1) oder Kleinbuchstaben (2 für die Hash Indizes genutzt werden soll.

Diese Option ist vor allen für die Kompatiblität zu anderen Datenbanksystemen notwendig, in denen die Namen der Spalten immer als Gross- oder Kleinbuchstaben zurückgeliefert werden - unabhängig von den eigentlichen Spaltenbezeichnungen im Datenbankschema.

Die SQLite Bibliothek liefert die Spaltennamen in ihrer echten Schreibweise zurück (die dem entspricht, was Sie im Datenbankschema nutzen). Wenn sqlite.assoc_case auf 0 gesetzt ist, bleibt diese Schreibweise erhalten. Wenn es auf 1 oder 2 gesetzt ist, wird der Spaltenname von PHP automatisch zu Gross- bzw. Kleinbuchstaben gewandelt.

Das Nutzen dieser Option erzeugt eine leichte Geschwindigkeitseinbuße, ist aber DEUTLICH schneller als die Nutzung von strtolower() oder strtoupper() im PHP-Script.

Inhaltsverzeichnis
sqlite_array_query -- Führt eine Datenbankabfrage durch und liefert das komplette Abfrageergebnis als Array zurück.
sqlite_busy_timeout -- Setzt die maximale Dauer für das Warten auf die Freigabe einer Datenbank, oder sperrt das Warten selbst.
sqlite_changes -- Gibt die Anzahl Zeilen zurück, die vom letzten SQL-Befehl geändert wurden.
sqlite_close -- Schliesst eine offene SQLite Datenbank.
sqlite_column -- Holt eine Spalte aus der aktuellen Zeile des Abfrageergebnisses.
sqlite_create_aggregate -- Register an aggregating UDF for use in SQL statements.
sqlite_create_function -- Erzeugt eine "reguläre" nutzerdefinierte Funktion für den Gebrauch in SQL-Befehlen.
sqlite_current -- Holt die aktuelle Zeile als Array aus dem Abfrageergebnis.
sqlite_error_string -- Liefert eine lesbare Beschreibung zu einem Fehlercode.
sqlite_escape_string -- Bereit einen String für die Verwendund als SQL-Parameter auf.
sqlite_fetch_array -- Holt die nächste Zeile aus einem Datenbankergebnis und gibt sie als Array zurück.
sqlite_fetch_single -- Fetches the first column of a result set as a string.
sqlite_fetch_string -- Liefert die erste Spalte eines Abfrageergebnisses als String zurück.
sqlite_field_name -- Gibt den Namen eines bestimmten Feldes zurück.
sqlite_has_more -- Liefert zurück, ob noch mehr Zeilen im Ergebnis vorliegen
sqlite_last_error -- Gibt den Fehlercode des letzten Fehlers für eine Datenbank zurück.
sqlite_last_insert_rowid -- Gibt die Nummer der zuletzt eingefügten Zeile zurück.
sqlite_libencoding -- Gibt die Kodierung der genutzten SQLite-Bibliothek zurück.
sqlite_libversion -- Liefert die Version der genutzten SQLite-Bibliothek zurück.
sqlite_next -- Springt zur nächsten Zeile
sqlite_num_fields -- Gibt die Anzahl Felder für ein Abfrageergebnis zurück
sqlite_num_rows -- Liefert die Anzahl an Zeilen, die in einem Abfrageergebnis enthalten sind, zurück
sqlite_open -- Öffnet eine SQLite Datenbank. Wenn die Datenbank nicht existiert, wird sie erzeugt.
sqlite_popen -- Opens a persistent handle to an SQLite database. Will create the database if it does not exist
sqlite_query -- Führt auf einer Datenbank eine Abfrage durch und liefert das Abfrageergebnis zurück.
sqlite_rewind -- Springt zur ersten Zeile
sqlite_seek -- Springe auf eine bestimmte Zeilennummer
sqlite_udf_decode_binary -- Decode binary data passed as parameters to an UDF.
sqlite_udf_encode_binary -- Encode binary data before returning it from an UDF.
sqlite_unbuffered_query -- Führt eine Abfrage durch, aber übernimmt die Daten nicht gleich in das PHP

Zurück | Zum Anfang | Nach vorne
is_soap_fault | Nach oben | sqlite_array_query


sqlite_array_query

(PHP 5)

sqlite_array_query -- Führt eine Datenbankabfrage durch und liefert das komplette Abfrageergebnis als Array zurück.

Beschreibung

array sqlite_array_query ( resource db, string query [, int result_type [, bool decode_binary]])

sqlite_array_query() ist vergleichbar mit der Nutzung von sqlite_query() und dann sqlite_fetch_array() für jede Zeile des Abfrageergebnisses und dem Speichern desselben in ein Array, wie im Beispiel unten beschrieben. Die Nutzung von sqlite_array_query() ist deutlich schneller als solch ein Script.

Beispiel 1. sqlite_array_query() selbst gebaut

<?php
$q = sqlite_query($database, "SELECT * from foo LIMIT 100");
$rows = array();
while ($r = sqlite_fetch_array($q)) {
$rows[] = $r;
}
?>

Tipp: sqlite_array_query() ist am besten für Queries geeignet, die 45 und weniger Ergebniszeilen zurückliefern. Wenn Sie mehr Daten haben, sollten Sie Ihre Scripte eher mit sqlite_unbuffered_query() schreiben, um eine optimale Geschwindigkeit zu erzielen.

Zurück | Zum Anfang | Nach vorne
SQLite | Nach oben | sqlite_busy_timeout


sqlite_busy_timeout

(PHP 5)

sqlite_busy_timeout -- Setzt die maximale Dauer für das Warten auf die Freigabe einer Datenbank, oder sperrt das Warten selbst.

Beschreibung

void sqlite_busy_timeout ( resource Datenbank, int Millisekunden)

Setzt die maximale Zeit, in der auf die Freigabe der Datenbank gewartet wird, auf Millisekunden Wenn Millisekunden ist 0, wird das Warten deaktiviert und unmittelbar der Statuscode SQLITE_BUSY zurückgeliefert, wenn ein anderer Prozess/Thread die Datenbank für eine Änderung gesperrt hat.

PHP setzt die Voreinstellung auf 60 Sekunden, wenn die Datenbank geöffnet wird.

Zurück | Zum Anfang | Nach vorne
sqlite_array_query | Nach oben | sqlite_changes


sqlite_changes

(PHP 5)

sqlite_changes -- Gibt die Anzahl Zeilen zurück, die vom letzten SQL-Befehl geändert wurden.

Beschreibung

int sqlite_changes ( resource db)

Liefert die Anzahl Zeilen zurück, die durch das letzten SQL-Befehl geändert wurden, der an die Datenbank db geschickt wurde.

Zurück | Zum Anfang | Nach vorne
sqlite_busy_timeout | Nach oben | sqlite_close


sqlite_close

(PHP 5)

sqlite_close -- Schliesst eine offene SQLite Datenbank.

Description

void sqlite_close ( resource Datenbank)

Schliesst die Verbindung zur angegebenen Datenbank. Wenn die Datenbankverbindung mit sqlite_popen() persisten geöffnet wurde, wird sie geschlossen und von der Liste der persistenten Verbindungen entfernt.

Siehe dazu auch sqlite_open() und sqlite_popen().

Zurück | Zum Anfang | Nach vorne
sqlite_changes | Nach oben | sqlite_column


sqlite_column

(PHP 5)

sqlite_column -- Holt eine Spalte aus der aktuellen Zeile des Abfrageergebnisses.

Beschreibung

mixed sqlite_column ( resource Ergebnis, mixed Index_oder_Name [, bool decode_binary])

Holt den Wert der benannten Spalte Index_oder_Name (wenn es ein String ist), oder Spalte Nummer Index_oder_Name (wenn es sich um eine Zahl handelt) aus der aktuellen Zeile des Abfrageergebnisses Ergebnis. Die Einstellung decode_binary arbeitet so wie in sqlite_fetch_array() beschrieben.

Benutzen Sie diese Funktion, wenn Sie über ein grosses Abfrageergebnis mit vielen Zeilen, oder auch mit Zeilen, die viele Daten enthalten, iterieren.

Zurück | Zum Anfang | Nach vorne
sqlite_close | Nach oben | sqlite_create_aggregate


sqlite_create_aggregate

(PHP 5)

sqlite_create_aggregate -- Register an aggregating UDF for use in SQL statements.

Description

bool sqlite_create_aggregate ( resource dbhandle, string function_name, mixed step_func, mixed finalize_func [, int num_args])

sqlite_create_aggregate() is similar to sqlite_create_function() except that it registers functions that can be used to calculate a result aggregated across all the rows of a query.

The key difference between this function and sqlite_create_function() is that two functions are required to manage the aggregate; step_func is called for each row of the result set. Your PHP function should accumulate the result and store it into the aggregation context. Once all the rows have been processed, finalize_func will be called and it should then take the data from the aggregation context and return the result.

Beispiel 1. max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$dbhandle = sqlite_open(':memory:');
sqlite_query($dbhandle, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($dbhandle, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($dbhandle, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($dbhandle, 'SELECT max_len(a) from strings'));

?>

In this example, we are creating an aggregating function that will calculate the length of the longest string in one of the columns of the table. For each row, the max_len_step function is called and passed a context parameter. The context parameter is just like any other PHP variable and be set to hold an array or even an object value. In this example, we are simply using it to hold the maximum length we have seen so far; if the string has a length longer than the current maximum, we update the context to hold this new maximum length.

After all of the rows have been processed, SQLite calls the max_len_finalize function to determine the aggregate result. Here, we could perform some kind of calculation based on the data found in the context. In our simple example though, we have been calculating the result as the query progressed, so we simply need to return the context value.

Anmerkung: The example above will not work correctly if the column contains binary data. Take a look at the manual page for sqlite_udf_decode_binary() for an explanation of why this is so, and an example of how to make it respect the binary encoding.

Tipp: It is NOT recommended for you to store a copy of the values in the context and then process them at the end, as you would cause SQLite to use a lot of memory to process the query - just think of how much memory you would need if a million rows were stored in memory, each containing a string 32 bytes in length.

Tipp: You can use sqlite_create_function() and sqlite_create_aggregate() to override SQLite native SQL functions.

See also sqlite_create_function(),
sqlite_udf_encode_binary() and
sqlite_udf_decode_binary().

Zurück | Zum Anfang | Nach vorne
sqlite_column | Nach oben | sqlite_create_function


sqlite_create_function

(PHP 5)

sqlite_create_function -- Erzeugt eine "reguläre" nutzerdefinierte Funktion für den Gebrauch in SQL-Befehlen.

Beschreibung

bool sqlite_create_function ( resource db, string SQL-Funktionsname, mixed callback [, int num_args])

sqlite_create_function() erlaubt Ihnen, eine PHP-Funktion in SQLite als UDF (User Defined Function = Nutzerdefinierte Funktion> zu erzeugen, so dass diese direkt in SQL-Befehlen genutzt werden kann.

db spezifiziert die Datenbank, die um die Funktion erweitert werden soll, SQL-Funktionsname den Namen der Funktion, wie er in den SQL-Befehlen genutzt werden soll. callback ist eine beliebige gültige PHP-Funktion oder Methode, die aufgerufen werden soll, um die SQL-Funktion abzuarbeiten. Der optionale Parameter num_args wird vom SQLite-Parser als Hinweis auf die Parameterzahl genutzt. Es wird empfohlen, diesen Wert zu definieren, wenn Ihre Funktion immer mit der gleichen Parameterzahl arbeitet.

Die UDF kann in jedem SQL-Befehl, der Funktionsaufrufe beinhalten kann, genutzt werden, wie z.B. SELECT, UPDATE oder auch Trigger.

Beispiel 1. sqlite_create_function() Beispiel

<?php
function md5_rueckwaerts($string) {
    return strrev(md5($string));
}

sqlite_create_function($db, 'md5rw', 'md5_rueckwaerts', 1);

$rows = sqlite_array_query($db, 'SELECT md5rw(filename) from files');
?>

In diesem Beispiel haben wir eine Funktion, die die md5-Summe eines Strings berechnet und dann rueckwaerts ausliefert. Wenn der SQL-Befehl durchgeführt wird, liefert er den Wert der Spalte filename durch unsere Funktion transformiert zurück. Die Daten, die in $rows stehen, enhalten also die bereits gewandelten Daten.

Die Eleganz dieser Technik ist das Vermeiden des Durchfahrens des kompletten Abfrageergebnisses mit einer foreach()-Schleife.

PHP registriert ausserdem automatisch eine spezielle Funktion mit dem Namen php wenn die Datenbank db zum ersten Mal geöffnet wird. Diese Funktion kann genutzt werden, um eine beliebige PHP-Funktion aufzurufen, ohne dass sie zunächst für SQLite erzeugt werden muss.

Beispiel 2. Beispiel der Nutzung einer PHP-Funktion

<?php
$rows = sqlite_array_query($db, "SELECT php('md5', filename) from files");
?>

In diesem Beispiel wird die Funktion md5() für jeden Eintrag der Spalte filename in der Datenbank aufgerufen und das Ergebnis in $rows geschrieben.

Anmerkung: Aus Performancegründen kodiert/dekodiert PHP nicht automatisch die Binärdaten der Spalten, die in die UDF/aus der UDF geliefert werden. Daher müssen Sie die Parameter und Rückgabewerte der Funktion jeweils selbst wandeln.

Tipp: Es wird empfohlen, die UDFs nicht für Binärdaten zu nutzen, wenn Ihre Anwendung eine hohe Geschwindigkeit aufweisen soll.

Siehe auch sqlite_register_aggregate().

Zurück | Zum Anfang | Nach vorne
sqlite_create_aggregate | Nach oben | sqlite_current


sqlite_current

(PHP 5)

sqlite_current -- Holt die aktuelle Zeile als Array aus dem Abfrageergebnis.

Beschreibung

array sqlite_current ( resource Ergebnis [, int Ergebnis_Typ [, bool decode_binary]])

sqlite_current() entspricht sqlite_fetch_array() mit der Ausnahme, dass sie nicht zunächst automatisch auf die nächste Zeile wechselt; es werden also die Daten der aktuellen Position zurückgeliefert.

Wenn die aktuelle Position hinter der letzten Zeile liegt, liefert die Funktion FALSE zurück. FALSE

Anmerkung: Diese Funktion arbeitet nicht auf ungebufferten Abfrageergebnissen, wie sie von sqlite_unbuffered_query() zurückgegeben werden.

Siehe auch sqlite_seek() und sqlite_next().

Zurück | Zum Anfang | Nach vorne
sqlite_create_function | Nach oben | sqlite_error_string


sqlite_error_string

(PHP 5)

sqlite_error_string -- Liefert eine lesbare Beschreibung zu einem Fehlercode.

Beschreibung

string sqlite_error_string ( int error_code)

Liefert eine menschenlesbare Beschreibung für den error_code zurück, der von sqlite_last_error() stammt.

Siehe dazu auch sqlite_last_error().

Zurück | Zum Anfang | Nach vorne
sqlite_current | Nach oben | sqlite_escape_string


sqlite_escape_string

(PHP 5)

sqlite_escape_string -- Bereit einen String für die Verwendund als SQL-Parameter auf.

Beschreibung

string sqlite_escape_string ( string item)

sqlite_escape_string() bereitet den String item so auf, dass er korrekt innerhalb eines SQL-Befehls als Parameter genutzt werden kann. Diese Wandlung enhält die Verdopplung von einfachen Anführungszeichen (') und die Überprüfung von nicht binärkompatiblen Zeichen.

Wenn item das Char-Zeichen NUL enthält, oder wenn es mit dem Char-Zeichen 0x01 beginnt, wandelt PHP item in ein binär kodiertes Format, so dass es sicher in die Datenbank geschrieben und aus der Datenbank abgefragt werden kann.

Auch wenn die Aufbereitung ein sicheres Einfügen der Daten ermöglicht, werden einfache Stringvergleiche und LIKE-Bedingungen in Ihren Abfragen unbrauchbar gemacht, wenn die Spalten Binärdaten enthalten. In der Praxis sollte dies kein Problem darstellen, weil Ihr Datenbankschema ohnehin keine Binärdaten enthält (denn eigentlich könnte es besser sein, die Binärdaten auf andere Art und Weise, z.B. in Dateien zu speichern).

Warnung

addslashes() sollte NICHT genutzt werden, um Strings für SQLite-Queries aufzubereiten; es kann zu undefinierten Resultaten beim Abfragen der Daten führen.

Zurück | Zum Anfang | Nach vorne
sqlite_error_string | Nach oben | sqlite_fetch_array


sqlite_fetch_array

(PHP 5)

sqlite_fetch_array -- Holt die nächste Zeile aus einem Datenbankergebnis und gibt sie als Array zurück.

Beschreibung

array sqlite_fetch_array ( resource Ergebnis [, int Ergebnis_Typ [, bool decode_binary]])

Holt die nächste Zeile aus einem gegebenen Ergebnis-Handle. Wenn in diesem keine weiteren Zeilen enthalten sind, wird FALSE zurückgeliefert, ansonsten ein assoziatives Array, das die Zeilendaten enthält.

Ergebnis_Typ spezifiziert, wie Sie das Ergebnis erhalten möchten. Der Standard-Wert ist SQLITE_BOTH. Damit werden die Spalten sowohl mit Ihrer Nummer als auch mit Ihrem Namen als Hashindex genutzt. SQLITE_ASSOC erzeugt ein Array, dass nur mit den Spaltennamen indiziert ist, SQLITE_NUM eine reine Indizierung mit den Spaltennummern.

Die Spaltennamen, die von SQLITE_ASSOC und SQLITE_BOTH genutzt werden, werden je nach Inhalt der Konfigurationsdirektive sqlite.assoc_case in Gross- oder Kleinbuchstaben gewandelt.

Wenn decode_binary auf TRUE gesetzt ist (das ist die Standardeinstellung), dekodiert PHP automatisch die Binärkodierung, in die die Daten gewandelt werden, wenn sie mittels sqlite_escape_string() bearbeitet wurden. In den meisten Fällen werden Sie diesen Wert in der Standardeinstellung lassen, solange Sie die Daten nicht auch mit anderen SQLite-Fähigen Applikationen teilen.

Siehe auch sqlite_array_query() und sqlite_fetch_string().

Zurück | Zum Anfang | Nach vorne
sqlite_escape_string | Nach oben | sqlite_fetch_single


sqlite_fetch_single

(PHP 5)

sqlite_fetch_single -- Fetches the first column of a result set as a string.

Description

string sqlite_fetch_single ( resource result [, int result_type [, bool decode_binary]])

sqlite_fetch_single() is identical to sqlite_fetch_array() except that it returns the value of the first column of the rowset.

This is the most optimal way to retrieve data when you are only interested in the values from a single column of data.

Beispiel 1. A sqlite_fetch_single() example

<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    $sql = "SELECT id FROM sometable WHERE id = 42";
    $res = sqlite_query($dbhandle, $sql);

    if (sqlite_num_rows($res) > 0) {
        echo sqlite_fetch_single($res); // 42
    }

    sqlite_close($dbhandle);
}
?>

See also sqlite_fetch_array().

Zurück | Zum Anfang | Nach vorne
sqlite_fetch_array | Nach oben | sqlite_fetch_string


sqlite_fetch_string

(PHP 5)

sqlite_fetch_string -- Liefert die erste Spalte eines Abfrageergebnisses als String zurück.

Beschreibung

string sqlite_fetch_string ( resource Ergebnis [, int Ergebnis_Typ [, bool decode_binary]])

sqlite_fetch_string() entspricht sqlite_fetch_array(), nur dass es nur den Wert aus der ersten Spalte aus dem Ergebnis zurückliefert.

Dies ist der optimale Weg, Daten aus einem Ergebnis zu holen, wenn man nur am Inhalt der ersten Spalte interessiert ist.

Zurück | Zum Anfang | Nach vorne
sqlite_fetch_single | Nach oben | sqlite_field_name


sqlite_field_name

(PHP 5)

sqlite_field_name -- Gibt den Namen eines bestimmten Feldes zurück.

Beschreibung

string sqlite_field_name ( resource Ergebnis, int Feld_Index)

Liefert für eine Spaltennummer Feld_Index den Namen dieses Feldes im Ergebnis zurück.

Zurück | Zum Anfang | Nach vorne
sqlite_fetch_string | Nach oben | sqlite_has_more


sqlite_has_more

(PHP 5)

sqlite_has_more -- Liefert zurück, ob noch mehr Zeilen im Ergebnis vorliegen

Beschreibung

bool sqlite_has_more ( resource Ergebnis)

sqlite_has_more() liefert TRUE zurück, wenn im aktuellen Ergebnis noch weitere Zeilen vorliegen, bzw. FALSE, wenn das Ergebnis keine weiteren bzw. gar keine Zeilen enthält.

Zurück | Zum Anfang | Nach vorne
sqlite_field_name | Nach oben | sqlite_last_error


sqlite_last_error

(PHP 5)

sqlite_last_error -- Gibt den Fehlercode des letzten Fehlers für eine Datenbank zurück.

Beschreibung

int sqlite_last_error ( resource db)

Lifert den Fehlercode für die letzte Operation, die auf der Datenbank db durchgeführt wurde, zurück.

Siehe auch sqlite_error_string().

Zurück | Zum Anfang | Nach vorne
sqlite_has_more | Nach oben | sqlite_last_insert_rowid


sqlite_last_insert_rowid

(PHP 5)

sqlite_last_insert_rowid -- Gibt die Nummer der zuletzt eingefügten Zeile zurück.

Beschreibung

int sqlite_last_insert_rowid ( resource db)

Liefert die Nummer der Zeile, die als letztes in die Datenbank db eingefügt wurde zurück, wenn es aus auto-increment-Feld angelegt wurde.

Tipp: Sie können Auto-Increment-Felder in SQLite erzeugen, indem Sie sie als INTEGER PRIMARY KEY anlegen.

Zurück | Zum Anfang | Nach vorne
sqlite_last_error | Nach oben | sqlite_libencoding


sqlite_libencoding

(PHP 5)

sqlite_libencoding -- Gibt die Kodierung der genutzten SQLite-Bibliothek zurück.

Beschreibung

string sqlite_libencoding ( void )

Die SQLite Bibliothek kann entweder mit der ISO-8859-1-Kodierung oder mit UTF-8 kompiliert werden. Diese Funktion erlaubt es Ihnen, festzustellen, welche Kodierung von der von Ihnen genutzten Datenbank unterstützt wird.

Warnung

Die Standarddistribution von PHP enhält eine SQLite-Library mit ISO-8859-1-Kodierung. In Wahrheit wird aber nicht ISO-8859-1 genutzt, sondern die von Ihnen genutzte Locale-Einstellung für Stringvergleiche und Sortierreihenfolgen. Also handelt es sich eigentlich eher um '8-Bit' als um ISO-8859-1.

Wenn SQLite mit UTF-8-Unterstützung kompiliert wurde, kümmert sich SQLite zwar um das Kodieren und Dekodieren von UTF-8-Multibyte Zeichen, aber es kümmert sich nicht um alle Details, die die Nutzung der Daten betreffen (es wird zum Beispiel keine Normalisierung durchgeführt). Einige Vergleichsoperationen werden unter Umständen nicht korrekt durchgeführt.

PHP sollte in einer Webserver-Konfiguration nicht mit eine SQLite-Version mit einkompilierte UTF-8-Unterstützung genutzt werden, dann die SQLite-Bibliothek den Prozess abricht, sobald ein Problem mit der UTF-8-Kodierung feststellt.

Siehe auch sqlite_libversion().

Zurück | Zum Anfang | Nach vorne
sqlite_last_insert_rowid | Nach oben | sqlite_libversion


sqlite_libversion

(PHP 5)

sqlite_libversion -- Liefert die Version der genutzten SQLite-Bibliothek zurück.

Beschreibung

string sqlite_libversion ( void )

Gibt die Versionsnummer der genutzten SQLite-Bibliothek als String zurück.

Siehe auch sqlite_libencoding().

Zurück | Zum Anfang | Nach vorne
sqlite_libencoding | Nach oben | sqlite_next


sqlite_next

(PHP 5)

sqlite_next -- Springt zur nächsten Zeile

Beschreibung

bool sqlite_next ( resource Ergebnis)

sqlite_next() schaltet das Abfrageergebnis Ergebnis auf die nächste Zeile um. Die Funktion liefert FALSE zurück, wenn keine weiteren Zeilen vorhanden sind, ansonsten TRUE

Anmerkung: Diese Funktion kann nicht mit ungebufferten Ergebnisses genutzt werden.

Siehe auch sqlite_seek(),
sqlite_current() und
sqlite_rewind().

Zurück | Zum Anfang | Nach vorne
sqlite_libversion | Nach oben | sqlite_num_fields


sqlite_num_fields

(PHP 5)

sqlite_num_fields -- Gibt die Anzahl Felder für ein Abfrageergebnis zurück

Beschreibung

int sqlite_num_fields ( resource Ergebnis)

Liefert die Anzahl an Feldern im Abfrageergebnis Ergebnis zurück.

Zurück | Zum Anfang | Nach vorne
sqlite_next | Nach oben | sqlite_num_rows


sqlite_num_rows

(PHP 5)

sqlite_num_rows -- Liefert die Anzahl an Zeilen, die in einem Abfrageergebnis enthalten sind, zurück

Beschreibung

int sqlite_num_rows ( resource Ergebnis)

Gibt die Anzahl Zeilen, die in dem Abfrageergebnis Ergebnis enthalten sind, zurück.

Anmerkung: Diese Funktion kann nicht mit ungebufferten Abfrageergebnissen genutzt werden.

Zurück | Zum Anfang | Nach vorne
sqlite_num_fields | Nach oben | sqlite_open


sqlite_open

(PHP 5)

sqlite_open -- Öffnet eine SQLite Datenbank. Wenn die Datenbank nicht existiert, wird sie erzeugt.

Beschreibung

resource sqlite_open ( string Datei [, int mode [, string &Fehler]])

Liefert eine Datenbankresource bei einer erfolgreichen Verbindung zurück, sonst FALSE.

Der Parameter Datei enthält den Namen der Datenbank. Es kann sich dabei um einen relativen und auch um einen absoluten Pfad zu der Datei handeln, in der SQLite die Daten speichern wird. Wenn die Datei noch nicht existiert, wird SQlite versuchen, sie anzulegen. Sie MÜSSEN Schreibrechte auf die Datei haben, wenn Sie Daten in die Datenbank eintragen oder die Datenbank ändern wollen.

Der Parameter mode spezifiziert den Modus der Datei und sollte genutzt werden, wenn die Datenbank nur Lesezugriff erlauben soll. Zur Zeit wird dieser Parameter von der SQLite-Bibliothek ignoriert. Der Standardwert für Modus ist der oktale Wert 06666. Es handelt sich dabei um den empfohlenen Wert, wenn der Parameter Fehler genutzt werden soll.

Fehler wird per Referenz übergeben und enthält eine lesbare Fehlermeldung, warum die Datenbank nicht geöffnet werden konnte - wenn ein Fehler vorlag.

Beispiel 1. sqlite_open() Beispiel

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
  sqlite_query('CREATE TABLE foo (bar varchar(10))');
  sqlite_query("INSERT INTO foo VALUES ('fnord')");
  $result = sqlite_query('select bar from foo');
  var_dump(sqlite_fetch_array($result));
} else {
  die ($sqliteerror);
}
?>

Tipp: Auf Unix-Plattformen müssten Skripte, die den Systembefehl fork() nutzen, für SQLite angepasst werden. Wenn Sie solch ein Skript haben, sollten sie vor dem fork() die Datenbank schliessen und sie nach dem fork() im Kind- und/oder Vaterprozess neu öffnen. Weitere Informaitonen hierzu For more information on this issue, see The C language interface to the SQLite library in the section entitled Multi-Threading And SQLite.

Tipp: It is not recommended to work with SQLite databases mounted on NFS partitions. Since NFS is notoriously bad when it comes to locking you may find that you cannot even open the database at all, and if it succeeds, the locking behaviour may be undefined.

Anmerkung: Starting with SQLite library version 2.8.2, you can specify :memory: as the filename to create a database that lives only in the memory of the computer. This is useful mostly for temporary processing, as the in-memory database will be destroyed when the process ends. It can also be useful when coupled with the ATTACH DATABASE SQL statement to load other databases and move and query data betweem them.

Anmerkung: SQLite is safe mode and open_basedir aware.

See also sqlite_popen(),
sqlite_close() and
sqlite_query().

Zurück | Zum Anfang | Nach vorne
sqlite_num_rows | Nach oben | sqlite_popen


sqlite_popen

(PHP 5)

sqlite_popen -- Opens a persistent handle to an SQLite database. Will create the database if it does not exist

Description

resource sqlite_popen ( string filename [, int mode [, string &errmessage]])

This function behaves identically to sqlite_open() except that is uses the persistent resource mechanism of PHP. For information about the meaning of the parameters, read the sqlite_open() manual page.

sqlite_popen() will first check to see if a persistent handle has already been opened for the given filename. If it finds one, it returns that handle to your script, otherwise it opens a fresh handle to the database.

The benefit of this approach is that you don't incurr the performance cost of re-reading the database and index schema on each page hit served by persistent web server SAPI's (any SAPI except for regular CGI or CLI).

Anmerkung: If you use persistent handles and have the database updated by a background process (perhaps via a crontab), and that process re-creates the database by overwriting it (either by unlinking and rebuilding, or moving the updated version to replace the current version), you may experience undefined behaviour when a persistent handle on the old version of the database is recycled.

To avoid this situation, have your background processes open the same database file and perform their updates in a transaction.

See also sqlite_popen(),
sqlite_close() and
sqlite_query().

Zurück | Zum Anfang | Nach vorne
sqlite_open | Nach oben | sqlite_query


sqlite_query

(PHP 5)

sqlite_query -- Führt auf einer Datenbank eine Abfrage durch und liefert das Abfrageergebnis zurück.

Beschreibung

resource sqlite_query ( resource db, string Abfrage)

resource sqlite_query ( string Abfrage, resource db)

Führt die den durch Abfrage gegebenen SQL-Befehl auf der Datenbank db durch,

Für Abfrage, die Zeilen zurückliefern, gibt diese Funktion ein Abfrageergebnis zurück, dass von Funkionen wie sqlite_fetch_array() oder auch sqlite_seek() genutzt werden kann.

Für alle anderen Arten von Abfragen gibt diese Funktion ein boolsches Resultat zurück, TRUE bei Erfolg und FALSE bei einem Fehler.

Unabhänging vom Abfragetyp liefert die Funktion FALSE zurück wenn die Abfrage fehlschlägt.

sqlite_query() gib ein gepuffertes Ergebnis, dessen Zeilen einzeln Ansprechbar sind. Dies ist für kleine Abfragen nützlich, bei denen man abwechselnd unterschiedliche Zeilen abfragen will. Die gepufferten Ergebnisse belegen Speicher, um das gesamte Ergebnis halten zu können. Dieser Speicher wird erst dann wieder freigegeben, wenn das komplette Ergebnis durchlaufen wurde. Wenn nur ein sequentieller Zugriff auf die Daten nötig ist, wird empfohlen, die performantere Funktion sqlite_unbuffered_query() zu nutzen.

Anmerkung: Two alternative syntaxes are supported for compatibility with other database extensions (such as MySQL). The preferred form is the first one, where the db parameter is the first parameter to the function.

Warnung

SQLite will execute multiple queries separated by semicolons, so you can use it to execute a batch of SQL that you have loaded from a file or have embedded in a script.

When executing multiple queries, the return value of this function will be FALSE if the was an error, but undefined otherwise (it might be TRUE for success or it might return a result handle).

See also sqlite_array_query().

Zurück | Zum Anfang | Nach vorne
sqlite_popen | Nach oben | sqlite_rewind


sqlite_rewind

(PHP 5)

sqlite_rewind -- Springt zur ersten Zeile

Beschreibung

bool sqlite_rewind ( resource Ergebnis)

sqlite_rewind() springt zurück auf die erste Zeile eines Abfrageergebnisses. Sie gibt FALSE zurück, wenn das Ergebnis leer ist, ansonsten TRUE.

Anmerkung: Diese Funktion kann nicht mit ungebufferten Ergebnissen genutzt werden.

Siehe auch sqlite_next(), sqlite_current() und sqlite_seek().

Zurück | Zum Anfang | Nach vorne
sqlite_query | Nach oben | sqlite_seek


sqlite_seek

(PHP 5)

sqlite_seek -- Springe auf eine bestimmte Zeilennummer

Beschreibung

bool sqlite_rewind ( resource Ergebnis, int Zeilennummer)

sqlite_seek() springt auf die Zeile mit der Zeilennummer. Die Zeilennummerierung beginnt mit Zeile 1. Die Funktion liefert FALSE zurück, wenn die Zeile nicht existiert, ansonsten TRUE.

Anmerkung: Diese Funktion kann nicht mit ungebufferten Ergebnissen genutzt werden.

Siehe auch sqlite_next(),
sqlite_current() and
sqlite_rewind().

Zurück | Zum Anfang | Nach vorne
sqlite_rewind | Nach oben | sqlite_udf_decode_binary


sqlite_udf_decode_binary

(PHP 5)

sqlite_udf_decode_binary -- Decode binary data passed as parameters to an UDF.

Description

string sqlite_udf_decode_binary ( string data)

sqlite_udf_decode_binary() decodes the binary encoding that was applied to the parameter by either sqlite_udf_encode_binary() or sqlite_escape_string().

You must call this function on parameters passed to your UDF if you need them to handle binary data, as the binary encoding employed by PHP will obscure the content and of the parameter in its natural, non-coded form.

PHP does not perform this encode/decode operation automatically as it would severely impact performance if it did.

Beispiel 1. binary-safe max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    $string = sqlite_udf_decode_binary($string);
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

See also sqlite_udf_encode_binary(),
sqlite_create_function() and
sqlite_create_aggregate().

Zurück | Zum Anfang | Nach vorne
sqlite_seek | Nach oben | sqlite_udf_encode_binary


sqlite_udf_encode_binary

(PHP 5)

sqlite_udf_encode_binary -- Encode binary data before returning it from an UDF.

Description

string sqlite_udf_encode_binary ( string data)

sqlite_udf_encode_binary() applies a binary encoding to the data so that it can be safely returned from queries (since the underlying libsqlite API is not binary safe).

If there is a chance that your data might be binary unsafe (e.g.: it contains a NUL byte in the middle rather than at the end, or if it has and 0x01 byte as the first character) then you must call this function to encode the return value from your UDF.

PHP does not perform this encode/decode operation automatically as it would severely impact performance if it did.

Anmerkung: Do not use sqlite_escape_string() to quote strings returned from UDF's as it will lead to double-quoting of the data. Use sqlite_udf_encode_binary() instead!

See also sqlite_udf_decode_binary(),
sqlite_escape_string(),
sqlite_create_function() and
sqlite_create_aggregate().

Zurück | Zum Anfang | Nach vorne
sqlite_udf_decode_binary | Nach oben | sqlite_unbuffered_query


sqlite_unbuffered_query

(PHP 5)

sqlite_unbuffered_query -- Führt eine Abfrage durch, aber übernimmt die Daten nicht gleich in das PHP

Beschreibung

resource sqlite_unbuffered_query ( resource db, string Abfrage)

resource sqlite_unbuffered_query ( string Abfrage, resource db)

sqlite_unbuffered_query() entspricht im wesentlichen sqlite_query(), nur dass das Ergebnis hier nur Zeile für Zeile sequentiell vorwärts gelesen werden kann.

Diese Funktions ist ideal, um Dinge wie HTML-Tabellen, bei denen nur eine Zeile zur Zeit ausgegeben werden muss, und die Zeilen nicht durcheinander abgefragt werden sollen.

Anmerkung: Funktionen wie etwa sqlite_seek() und sqlite_rewind() funktionieren mit mit Abfrageresultaten, die von dieser Funktion zurückgeliefert werden.

Zurück | Zum Anfang | Nach vorne
sqlite_udf_encode_binary | Nach oben | Shockwave Flash Funktionen


Shockwave Flash Funktionen

PHP Handbuch
Zurück Nach vorne

CI. Shockwave Flash Funktionen

PHP ermöglicht es Shockwave Flash Dateien mit Paul Haeberli's libswf Modul zu erzeugen. Sie können das libswf-Modul unter ftp://ftp.sgi.com/sgi/graphics/grafica/flash/ herunterladen. Wenn Sie das Modul geladen haben, brauchen Sie nur noch PHP mit dem Modul zu konfigurieren (--with-swf[=DIR] ), wobei DIR für das Verzeichnis steht, welches die Verzeichnisse include und lib beinhaltet. Das include-Verzeichnis muss die swf.h-Datei und das lib-Verzeichnis die libswf.a-Datei enthalten. Wenn Sie die Distribution entpacken, werden beide Dateien in ein Verzeichnis entpackt. Daher müssen Sie die Dateien manuell in die richtigen Verzeichnisse kopieren.

Haben Sie PHP erfolgreich mit Shockwave Flash Unterstützung installiert, können Sie Shockwave Flash-Dateien via PHP erstellen. Sie werden überrascht sein von den Möglichkeiten, die sich Ihnen bieten. Schauen Sie sich den folgenden Quellcode-Auschnitt an:

Beispiel 1. SWF Beispiel

<?php
swf_openfile ("test.swf", 256, 256, 30, 1, 1, 1);
swf_ortho2 (-100, 100, -100, 100);
swf_defineline (1, -70, 0, 70, 0, .2);
swf_definerect (4, 60, -10, 70, 0, 0);
swf_definerect (5, -60, 0, -70, 10, 0);
swf_addcolor (0, 0, 0, 0);

swf_definefont (10, "Mod");
swf_fontsize (5);
swf_fontslant (10);
swf_definetext (11, "This be Flash wit PHP!", 1);

swf_pushmatrix ();
swf_translate (-50, 80, 0);
swf_placeobject (11, 60);
swf_popmatrix ();

for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix ();
    swf_scale (1-($p*.9), 1, 1);
    swf_rotate (60*$p,  'z');
    swf_translate (20+20*$p, $p/1.5, 0);
    swf_rotate (270*$p,  'z');
    swf_addcolor ($p, 0, $p/1.2, -$p);
    swf_placeobject (1, 50);
    swf_placeobject (4, 50);
    swf_placeobject (5, 50);
    swf_popmatrix ();
    swf_showframe ();
}

for ($i = 0; $i < 30; $i++) {
    swf_removeobject (50);
    if (($i%4) == 0) {
        swf_showframe ();
    }
}

swf_startdoaction ();
swf_actionstop ();
swf_enddoaction ();

swf_closefile ();
?>

Anmerkung: SWF-Unterstützung wurde in PHP4 RC2 hinzugefügt.

Inhaltsverzeichnis
swf_actiongeturl -- Get a URL from a Shockwave Flash movie
swf_actiongotoframe -- Play a frame and then stop
swf_actiongotolabel -- Display a frame with the specified label
swf_actionnextframe -- Go foward one frame
swf_actionplay -- Start playing the flash movie from the current frame
swf_actionprevframe -- Go backwards one frame
swf_actionsettarget -- Set the context for actions
swf_actionstop -- Stop playing the flash movie at the current frame
swf_actiontogglequality -- Toggle between low and high quality
swf_actionwaitforframe -- Skip actions if a frame has not been loaded
swf_addbuttonrecord -- Controls location, appearance and active area of the current button
swf_addcolor -- Setzt die "global add"-Farbe auf den spezifizierten rgba-Wert
swf_closefile -- Schließt die aktuelle SWF-Datei
swf_definebitmap -- Define a bitmap
swf_definefont -- Defines a font
swf_defineline -- Define a line
swf_definepoly -- Define a polygon
swf_definerect -- Define a rectangle
swf_definetext -- Define a text string
swf_endbutton -- End the definition of the current button
swf_enddoaction -- End the current action
swf_endshape -- Completes the definition of the current shape
swf_endsymbol -- End the definition of a symbol
swf_fontsize -- Change the font size
swf_fontslant -- Set the font slant
swf_fonttracking -- Set the current font tracking
swf_getbitmapinfo -- Get information about a bitmap
swf_getfontinfo -- The height in pixels of a capital A and a lowercase x
swf_getframe -- Holt die Frame-Nummer des aktuellen Frames
swf_labelframe -- Beschriftet den aktuellen Frame
swf_lookat -- Define a viewing transformation
swf_modifyobject -- Modify an object
swf_mulcolor -- Setzt die "global multiply"-Farbe auf den spezifizierten rgba-Wert
swf_nextid -- Returns the next free object id
swf_oncondition -- Describe a transition used to trigger an action list
swf_openfile -- Öffnet eine neue Shockwave Flash Datei
swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport
swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport
swf_perspective -- Define a perspective projection transformation
swf_placeobject -- Place an object onto the screen
swf_polarview -- Define the viewer's position with polar coordinates
swf_popmatrix -- Restore a previous transformation matrix
swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved
swf_pushmatrix -- Push the current transformation matrix back unto the stack
swf_removeobject -- Remove an object
swf_rotate -- Rotate the current transformation
swf_scale -- Scale the current transformation
swf_setfont -- Change the current font
swf_setframe -- Wechselt zu einem spezifizierten Frame
swf_shapearc -- Draw a circular arc
swf_shapecurveto3 -- Draw a cubic bezier curve
swf_shapecurveto -- Draw a quadratic bezier curve between two points
swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap
swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap
swf_shapefilloff -- Turns off filling
swf_shapefillsolid -- Set the current fill style to the specified color
swf_shapelinesolid -- Set the current line style
swf_shapelineto -- Draw a line
swf_shapemoveto -- Move the current position
swf_showframe -- Zeigt den aktuellen Frame an
swf_startbutton -- Start the definition of a button
swf_startdoaction -- Start a description of an action list for the current frame
swf_startshape -- Start a complex shape
swf_startsymbol -- Define a symbol
swf_textwidth -- Get the width of a string
swf_translate -- Translate the current transformations
swf_viewport -- Select an area for future drawing

Zurück | Zum Anfang | Nach vorne
sqlite_unbuffered_query | Nach oben | swf_actiongeturl


swf_actiongeturl

(PHP 4 )

swf_actiongeturl -- Get a URL from a Shockwave Flash movie

Description

void swf_actiongeturl ( string url, string target)

The swf_actionGetUrl() function gets the URL specified by the parameter url with the target target.

Zurück | Zum Anfang | Nach vorne
Shockwave Flash Funktionen | Nach oben | swf_actiongotoframe


swf_actiongotoframe

(PHP 4 )

swf_actiongotoframe -- Play a frame and then stop

Description

void swf_actiongotoframe ( int framenumber)

The swf_actionGotoFrame() function will go to the frame specified by framenumber, play it, and then stop.

Zurück | Zum Anfang | Nach vorne
swf_actiongeturl | Nach oben | swf_actiongotolabel


swf_actiongotolabel

(PHP 4 )

swf_actiongotolabel -- Display a frame with the specified label

Description

void swf_actiongotolabel ( string label)

The swf_actionGotoLabel() function displays the frame with the label given by the label parameter and then stops.

Zurück | Zum Anfang | Nach vorne
swf_actiongotoframe | Nach oben | swf_actionnextframe


swf_actionnextframe

(PHP 4 )

swf_actionnextframe -- Go foward one frame

Description

void swf_actionnextframe ( void )

Go foward one frame.

Zurück | Zum Anfang | Nach vorne
swf_actiongotolabel | Nach oben | swf_actionplay


swf_actionplay

(PHP 4 )

swf_actionplay -- Start playing the flash movie from the current frame

Description

void swf_actionplay ( void )

Start playing the flash movie from the current frame.

Zurück | Zum Anfang | Nach vorne
swf_actionnextframe | Nach oben | swf_actionprevframe


swf_actionprevframe

(PHP 4 )

swf_actionprevframe -- Go backwards one frame

Description

void swf_actionprevframe ( void )

Zurück | Zum Anfang | Nach vorne
swf_actionplay | Nach oben | swf_actionsettarget


swf_actionsettarget

(PHP 4 )

swf_actionsettarget -- Set the context for actions

Description

void swf_actionsettarget ( string target)

The swf_actionSetTarget() function sets the context for all actions. You can use this to control other flash movies that are currently playing.

Zurück | Zum Anfang | Nach vorne
swf_actionprevframe | Nach oben | swf_actionstop


swf_actionstop

(PHP 4 )

swf_actionstop -- Stop playing the flash movie at the current frame

Description

void swf_actionstop ( void )

Stop playing the flash movie at the current frame.

Zurück | Zum Anfang | Nach vorne
swf_actionsettarget | Nach oben | swf_actiontogglequality


swf_actiontogglequality

(PHP 4 )

swf_actiontogglequality -- Toggle between low and high quality

Description

void swf_actiontogglequality ( void )

Toggle the flash movie between high and low quality.

Zurück | Zum Anfang | Nach vorne
swf_actionstop | Nach oben | swf_actionwaitforframe


swf_actionwaitforframe

(PHP 4 )

swf_actionwaitforframe -- Skip actions if a frame has not been loaded

Description

void swf_actionwaitforframe ( int framenumber, int skipcount)

The swf_actionWaitForFrame() function will check to see if the frame, specified by the framenumber parameter has been loaded, if not it will skip the number of actions specified by the skipcount parameter. This can be useful for "Loading..." type animations.

Zurück | Zum Anfang | Nach vorne
swf_actiontogglequality | Nach oben | swf_addbuttonrecord


swf_addbuttonrecord

(PHP 4 )

swf_addbuttonrecord -- Controls location, appearance and active area of the current button

Description

void swf_addbuttonrecord ( int states, int shapeid, int depth)

The swf_addbuttonrecord() function allows you to define the specifics of using a button. The first parameter, states, defines what states the button can have, these can be any or all of the following constants: BSHitTest, BSDown, BSOver or BSUp. The second parameter, the shapeid is the look of the button, this is usually the object id of the shape of the button. The depth parameter is the placement of the button in the current frame.

Beispiel 1. swf_addbuttonrecord() function example

swf_startButton ($objid, TYPE_MENUBUTTON);
    swf_addButtonRecord (BSDown|BSOver, $buttonImageId, 340);
    swf_onCondition (MenuEnter);
        swf_actionGetUrl ("http://www.designmultimedia.com", "_level1");
    swf_onCondition (MenuExit);
        swf_actionGetUrl ("", "_level1");
swf_endButton ();

Zurück | Zum Anfang | Nach vorne
swf_actionwaitforframe | Nach oben | swf_addcolor


swf_addcolor

(PHP 4 )

swf_addcolor -- Setzt die "global add"-Farbe auf den spezifizierten rgba-Wert

Beschreibung

void swf_addcolor ( float r, float g, float b, float a)

Die Funktion swf_addcolor() setzt die "global add"-Farbe auf den mit rgba spezifizierten Farbwert. Diese Farbe wird (implizit) von den Funktionen swf_placeobject(), swf_modifyobject() und swf_addbuttonrecord() verwendet. Die Farbe wird dem Objekt durch den rgba-Wert hinzugefügt, wenn es auf dem Bildschirm ausgegeben wird.

Anmerkung: Das rgba Parameter kann sowohl negative wie auch positive Werte annehmen.

Zurück | Zum Anfang | Nach vorne
swf_addbuttonrecord | Nach oben | swf_closefile


swf_closefile

(PHP 4 )

swf_closefile -- Schließt die aktuelle SWF-Datei

Beschreibung

void swf_closefile ( void )

Schließt eine Datei die zuvor mit swf_openfile () geöffnet wurde.

Zurück | Zum Anfang | Nach vorne
swf_addcolor | Nach oben | swf_definebitmap


swf_definebitmap

(PHP 4 )

swf_definebitmap -- Define a bitmap

Description

void swf_definebitmap ( int objid, string image_name)

The swf_definebitmap() function defines a bitmap given a GIF, JPEG, RGB or FI image. The image will be converted into a Flash JPEG or Flash color map format.

Zurück | Zum Anfang | Nach vorne
swf_closefile | Nach oben | swf_definefont


swf_definefont

(PHP 4 )

swf_definefont -- Defines a font

Description

void swf_definefont ( int fontid, string fontname)

The swf_definefont() function defines a font given by the fontname parameter and gives it the id specified by the fontid parameter. It then sets the font given by fontname to the current font.

Zurück | Zum Anfang | Nach vorne
swf_definebitmap | Nach oben | swf_defineline


swf_defineline

(PHP 4 )

swf_defineline -- Define a line

Description

void swf_defineline ( int objid, float x1, float y1, float x2, float y2, float width)

The swf_defineline() defines a line starting from the x coordinate given by x1 and the y coordinate given by y1 parameter. Up to the x coordinate given by the x2 parameter and the y coordinate given by the y2 parameter. It will have a width defined by the width parameter.

Zurück | Zum Anfang | Nach vorne
swf_definefont | Nach oben | swf_definepoly


swf_definepoly

(PHP 4 )

swf_definepoly -- Define a polygon

Description

void swf_definepoly ( int objid, array coords, int npoints, float width)

The swf_definepoly() function defines a polygon given an array of x, y coordinates (the coordinates are defined in the parameter coords). The parameter npoints is the number of overall points that are contained in the array given by coords. The width is the width of the polygon's border, if set to 0.0 the polygon is filled.

Zurück | Zum Anfang | Nach vorne
swf_defineline | Nach oben | swf_definerect


swf_definerect

(PHP 4 )

swf_definerect -- Define a rectangle

Description

void swf_definerect ( int objid, float x1, float y1, float x2, float y2, float width)

The swf_definerect() defines a rectangle with an upper left hand coordinate given by the x, x1, and the y, y1. And a lower right hand coordinate given by the x coordinate, x2, and the y coordinate, y2 . Width of the rectangles border is given by the width parameter, if the width is 0.0 then the rectangle is filled.

Zurück | Zum Anfang | Nach vorne
swf_definepoly | Nach oben | swf_definetext


swf_definetext

(PHP 4 )

swf_definetext -- Define a text string

Description

void swf_definetext ( int objid, string str, int docenter)

Define a text string (the str parameter) using the current font and font size. The docenter is where the word is centered, if docenter is 1, then the word is centered in x.

Zurück | Zum Anfang | Nach vorne
swf_definerect | Nach oben | swf_endbutton


swf_endbutton

(PHP 4 )

swf_endbutton -- End the definition of the current button

Description

void swf_endbutton ( void )

The swf_endButton() function ends the definition of the current button.

Zurück | Zum Anfang | Nach vorne
swf_definetext | Nach oben | swf_enddoaction


swf_enddoaction

(PHP 4 )

swf_enddoaction -- End the current action

Description

void swf_enddoaction ( void )

Ends the current action started by the swf_startdoaction() function.

Zurück | Zum Anfang | Nach vorne
swf_endbutton | Nach oben | swf_endshape


swf_endshape

(PHP 4 )

swf_endshape -- Completes the definition of the current shape

Description

void swf_endshape ( void )

The swf_endshape() completes the definition of the current shape.

Zurück | Zum Anfang | Nach vorne
swf_enddoaction | Nach oben | swf_endsymbol


swf_endsymbol

(PHP 4 )

swf_endsymbol -- End the definition of a symbol

Description

void swf_endsymbol ( void )

The swf_endsymbol() function ends the definition of a symbol that was started by the swf_startsymbol() function.

Zurück | Zum Anfang | Nach vorne
swf_endshape | Nach oben | swf_fontsize


swf_fontsize

(PHP 4 )

swf_fontsize -- Change the font size

Description

void swf_fontsize ( float size)

The swf_fontsize() function changes the font size to the value given by the size parameter.

Zurück | Zum Anfang | Nach vorne
swf_endsymbol | Nach oben | swf_fontslant


swf_fontslant

(PHP 4 )

swf_fontslant -- Set the font slant

Description

void swf_fontslant ( float slant)

Set the current font slant to the angle indicated by the slant parameter. Positive values create a foward slant, negative values create a negative slant.

Zurück | Zum Anfang | Nach vorne
swf_fontsize | Nach oben | swf_fonttracking


swf_fonttracking

(PHP 4 )

swf_fonttracking -- Set the current font tracking

Description

void swf_fonttracking ( float tracking)

Set the font tracking to the value specified by the tracking parameter. This function is used to increase the spacing between letters and text, positive values increase the space and negative values decrease the space between letters.

Zurück | Zum Anfang | Nach vorne
swf_fontslant | Nach oben | swf_getbitmapinfo


swf_getbitmapinfo

(PHP 4 )

swf_getbitmapinfo -- Get information about a bitmap

Description

array swf_getbitmapinfo ( int bitmapid)

The swf_getbitmapinfo() function returns an array of information about a bitmap given by the bitmapid parameter. The returned array has the following elements:

  • "size" - The size in bytes of the bitmap.

  • "width" - The width in pixels of the bitmap.

  • "height" - The height in pixels of the bitmap.

Zurück | Zum Anfang | Nach vorne
swf_fonttracking | Nach oben | swf_getfontinfo


swf_getfontinfo

(PHP 4 )

swf_getfontinfo -- The height in pixels of a capital A and a lowercase x

Description

array swf_getfontinfo ( void )

The swf_getfontinfo() function returns an associative array with the following parameters:

  • Aheight - The height in pixels of a capital A.

  • xheight - The height in pixels of a lowercase x.

Zurück | Zum Anfang | Nach vorne
swf_getbitmapinfo | Nach oben | swf_getframe


swf_getframe

(PHP 4 )

swf_getframe -- Holt die Frame-Nummer des aktuellen Frames

Beschreibung

int swf_getframe ( void )

Die swf_getframe() Funtkion holt die Nummer des aktuellen Frames.

Zurück | Zum Anfang | Nach vorne
swf_getfontinfo | Nach oben | swf_labelframe


swf_labelframe

(PHP 4 )

swf_labelframe -- Beschriftet den aktuellen Frame

Beschreibung

void swf_labelframe ( string name)

Beschriftet den aktuellen Frame mit der Bezeichnung, die durch das Parameter name angegeben wurde.

Zurück | Zum Anfang | Nach vorne
swf_getframe | Nach oben | swf_lookat


swf_lookat

(PHP 4 )

swf_lookat -- Define a viewing transformation

Description

void swf_lookat ( double view_x, double view_y, double view_z, double reference_x, double reference_y, double reference_z, double twist)

The swf_lookat() function defines a viewing transformation by giving the viewing position (the parameters view_x, view_y, and view_z) and the coordinates of a reference point in the scene, the reference point is defined by the reference_x, reference_y , and reference_z parameters. The twist controls the rotation along with viewer's z axis.

Zurück | Zum Anfang | Nach vorne
swf_labelframe | Nach oben | swf_modifyobject


swf_modifyobject

(PHP 4 )

swf_modifyobject -- Modify an object

Description

void swf_modifyobject ( int depth, int how)

Updates the position and/or color of the object at the specified depth, depth. The parameter how determines what is updated. how can either be the constant MOD_MATRIX or MOD_COLOR or it can be a combination of both (MOD_MATRIX|MOD_COLOR).

MOD_COLOR uses the current mulcolor (specified by the function swf_mulcolor()) and addcolor (specified by the function swf_addcolor()) to color the object. MOD_MATRIX uses the current matrix to position the object.

Zurück | Zum Anfang | Nach vorne
swf_lookat | Nach oben | swf_mulcolor


swf_mulcolor

(PHP 4 )

swf_mulcolor -- Setzt die "global multiply"-Farbe auf den spezifizierten rgba-Wert

Beschreibung

void swf_mulcolor ( float r, float g, float b, float a)

Die swf_mulcolor() Funktion setzt die "global multiply"-Farbe auf die mit rgba spezifizierte Farbe. Diese Farbe wird (implizit) von den Funktionen swf_placeobject(), swf_modifyobject() und swf_addbuttonrecord() verwendet. Die Farbe des Objekts wird vervielfacht mit dem Wert von rgba , wenn das Objekt auf dem bildschirm ausgegeben wird.

Anmerkung: Das rgba Parameter kann sowohl negative wie auch positive Werte annehmen.

Zurück | Zum Anfang | Nach vorne
swf_modifyobject | Nach oben | swf_nextid


swf_nextid

(PHP 4 )

swf_nextid -- Returns the next free object id

Description

int swf_nextid ( void )

The swf_nextid() function returns the next available object id.

Zurück | Zum Anfang | Nach vorne
swf_mulcolor | Nach oben | swf_oncondition


swf_oncondition

(PHP 4 )

swf_oncondition -- Describe a transition used to trigger an action list

Description

void swf_oncondition ( int transition)

The swf_onCondition() function describes a transition that will trigger an action list. There are several types of possible transitions, the following are for buttons defined as TYPE_MENUBUTTON:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • IdletoOverDown

  • OutDowntoIdle

  • MenuEnter (IdletoOverUp|IdletoOverDown)

  • MenuExit (OverUptoIdle|OverDowntoIdle)

For TYPE_PUSHBUTTON there are the following options:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • OverDowntoOutDown

  • OutDowntoOverDown

  • OutDowntoIdle

  • ButtonEnter (IdletoOverUp|OutDowntoOverDown)

  • ButtonExit (OverUptoIdle|OverDowntoOutDown)

Zurück | Zum Anfang | Nach vorne
swf_nextid | Nach oben | swf_openfile


swf_openfile

(PHP 4 )

swf_openfile -- Öffnet eine neue Shockwave Flash Datei

Beschreibung

void swf_openfile ( string filename, float width, float height, float framerate, float r, float g, float b)

Die Funktion swf_openfile() öffnet eine neue SWF-Datei mit dem Namen filename, einer Breite von width,einer Höhe von height, einer Frame-Rate von framerate und einem Hintergrund mit einem roten Farbwert von r, einem grünen Farbwert von g und einem blauen Farbwert von b.

Die Funktion swf_openfile() muss die erste Funtkion sein, sie Sie aufrufen, andernfalls wird Ihr Skript einen Segfault verursachen. Wenn Sie den Output des Skriptes auf dem Bildschirm ausgeben wollen, benutzen Sie filename: "php://stdout" (Unterstützung ab PHP 4.0.1 und höher).

Zurück | Zum Anfang | Nach vorne
swf_oncondition | Nach oben | swf_ortho2


swf_ortho2

(PHP 4 )

swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho2 ( double xmin, double xmax, double ymin, double ymax)

The swf_ortho2() function defines a two dimensional orthographic mapping of user coordinates onto the current viewport, this defaults to one to one mapping of the area of the Flash movie. If a perspective transformation is desired, the swf_perspective () function can be used.

Zurück | Zum Anfang | Nach vorne
swf_openfile | Nach oben | swf_ortho


swf_ortho

(PHP 4 >= 4.0.1)

swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho ( double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)

The swf_ortho() funcion defines a orthographic mapping of user coordinates onto the current viewport.

Zurück | Zum Anfang | Nach vorne
swf_ortho2 | Nach oben | swf_perspective


swf_perspective

(PHP 4 )

swf_perspective -- Define a perspective projection transformation

Description

void swf_perspective ( double fovy, double aspect, double near, double far)

The swf_perspective() function defines a perspective projection transformation. The fovy parameter is field-of-view angle in the y direction. The aspect parameter should be set to the aspect ratio of the viewport that is being drawn onto. The near parameter is the near clipping plane and the far parameter is the far clipping plane.

Anmerkung: Various distortion artifacts may appear when performing a perspective projection, this is because Flash players only have a two dimensional matrix. Some are not to pretty.

Zurück | Zum Anfang | Nach vorne
swf_ortho | Nach oben | swf_placeobject


swf_placeobject

(PHP 4 )

swf_placeobject -- Place an object onto the screen

Description

void swf_placeobject ( int objid, int depth)

Places the object specified by objid in the current frame at a depth of depth. The objid parameter and the depth must be between 1 and 65535.

This uses the current mulcolor (specified by swf_mulcolor()) and the current addcolor (specified by swf_addcolor()) to color the object and it uses the current matrix to position the object.

Anmerkung: Full RGBA colors are supported.

Zurück | Zum Anfang | Nach vorne
swf_perspective | Nach oben | swf_polarview


swf_polarview

(PHP 4 )

swf_polarview -- Define the viewer's position with polar coordinates

Description

void swf_polarview ( double dist, double azimuth, double incidence, double twist)

The swf_polarview() function defines the viewer's position in polar coordinates. The dist parameter gives the distance between the viewpoint to the world space origin. The azimuth parameter defines the azimuthal angle in the x,y coordinate plane, measured in distance from the y axis. The incidence parameter defines the angle of incidence in the y,z plane, measured in distance from the z axis. The incidence angle is defined as the angle of the viewport relative to the z axis. Finally the twist specifies the amount that the viewpoint is to be rotated about the line of sight using the right hand rule.

Zurück | Zum Anfang | Nach vorne
swf_placeobject | Nach oben | swf_popmatrix


swf_popmatrix

(PHP 4 )

swf_popmatrix -- Restore a previous transformation matrix

Description

void swf_popmatrix ( void )

The swf_popmatrix() function pushes the current transformation matrix back onto the stack.

Zurück | Zum Anfang | Nach vorne
swf_polarview | Nach oben | swf_posround


swf_posround

(PHP 4 )

swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved

Description

void swf_posround ( int round)

The swf_posround() function enables or disables the rounding of the translation when objects are placed or moved, there are times when text becomes more readable because rounding has been enabled. The round is whether to enable rounding or not, if set to the value of 1, then rounding is enabled, if set to 0 then rounding is disabled.

Zurück | Zum Anfang | Nach vorne
swf_popmatrix | Nach oben | swf_pushmatrix


swf_pushmatrix

(PHP 4 )

swf_pushmatrix -- Push the current transformation matrix back unto the stack

Description

void swf_pushmatrix ( void )

The swf_pushmatrix() function pushes the current transformation matrix back onto the stack.

Zurück | Zum Anfang | Nach vorne
swf_posround | Nach oben | swf_removeobject


swf_removeobject

(PHP 4 )

swf_removeobject -- Remove an object

Description

void swf_removeobject ( int depth)

Removes the object at the depth specified by depth.

Zurück | Zum Anfang | Nach vorne
swf_pushmatrix | Nach oben | swf_rotate


swf_rotate

(PHP 4 )

swf_rotate -- Rotate the current transformation

Description

void swf_rotate ( double angle, string axis)

The swf_rotate() rotates the current transformation by the angle given by the angle parameter around the axis given by the axis parameter. Valid values for the axis are 'x' (the x axis), 'y' (the y axis) or 'z' (the z axis).

Zurück | Zum Anfang | Nach vorne
swf_removeobject | Nach oben | swf_scale


swf_scale

(PHP 4 )

swf_scale -- Scale the current transformation

Description

void swf_scale ( double x, double y, double z)

The swf_scale() scales the x coordinate of the curve by the value of the x parameter, the y coordinate of the curve by the value of the y parameter, and the z coordinate of the curve by the value of the z parameter.

Zurück | Zum Anfang | Nach vorne
swf_rotate | Nach oben | swf_setfont


swf_setfont

(PHP 4 )

swf_setfont -- Change the current font

Description

void swf_setfont ( int fontid)

The swf_setfont() sets the current font to the value given by the fontid parameter.

Zurück | Zum Anfang | Nach vorne
swf_scale | Nach oben | swf_setframe


swf_setframe

(PHP 4 )

swf_setframe -- Wechselt zu einem spezifizierten Frame

Beschreibung

void swf_setframe ( int framenumber)

Die swf_setframe() Funktion ändert den aktuellen Frame in den mit framenumber spezifizierten Frame.

Zurück | Zum Anfang | Nach vorne
swf_setfont | Nach oben | swf_shapearc


swf_shapearc

(PHP 4 )

swf_shapearc -- Draw a circular arc

Description

void swf_shapearc ( float x, float y, float r, float ang1, float ang2)

The swf_shapeArc() function draws a circular arc from angle A given by the ang1 parameter to angle B given by the ang2 parameter. The center of the circle has an x coordinate given by the x parameter and a y coordinate given by the y, the radius of the circle is given by the r parameter.

Zurück | Zum Anfang | Nach vorne
swf_setframe | Nach oben | swf_shapecurveto3


swf_shapecurveto3

(PHP 4 )

swf_shapecurveto3 -- Draw a cubic bezier curve

Description

void swf_shapecurveto3 ( float x1, float y1, float x2, float y2, float x3, float y3)

Draw a cubic bezier curve using the x,y coordinate pairs x1, y1 and x2,y2 as off curve control points and the x,y coordinate x3, y3 as an endpoint. The current position is then set to the x,y coordinate pair given by x3,y3.

Zurück | Zum Anfang | Nach vorne
swf_shapearc | Nach oben | swf_shapecurveto


swf_shapecurveto

(PHP 4 )

swf_shapecurveto -- Draw a quadratic bezier curve between two points

Description

void swf_shapecurveto ( float x1, float y1, float x2, float y2)

The swf_shapecurveto() function draws a quadratic bezier curve from the x coordinate given by x1 and the y coordinate given by y1 to the x coordinate given by x2 and the y coordinate given by y2. The current position is then set to the x,y coordinates given by the x2 and y2 parameters

Zurück | Zum Anfang | Nach vorne
swf_shapecurveto3 | Nach oben | swf_shapefillbitmapclip


swf_shapefillbitmapclip

(PHP 4 )

swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap

Description

void swf_shapefillbitmapclip ( int bitmapid)

Sets the fill to bitmap clipped, empty spaces will be filled by the bitmap given by the bitmapid parameter.

Zurück | Zum Anfang | Nach vorne
swf_shapecurveto | Nach oben | swf_shapefillbitmaptile


swf_shapefillbitmaptile

(PHP 4 )

swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap

Description

void swf_shapefillbitmaptile ( int bitmapid)

Sets the fill to bitmap tile, empty spaces will be filled by the bitmap given by the bitmapid parameter (tiled).

Zurück | Zum Anfang | Nach vorne
swf_shapefillbitmapclip | Nach oben | swf_shapefilloff


swf_shapefilloff

(PHP 4 )

swf_shapefilloff -- Turns off filling

Description

void swf_shapefilloff ( void )

The swf_shapeFillOff() function turns off filling for the current shape.

Zurück | Zum Anfang | Nach vorne
swf_shapefillbitmaptile | Nach oben | swf_shapefillsolid


swf_shapefillsolid

(PHP 4 )

swf_shapefillsolid -- Set the current fill style to the specified color

Description

void swf_shapefillsolid ( float r, float g, float b, float a)

The swf_shapeFillSolid() function sets the current fill style to solid, and then sets the fill color to the values of the rgba parameters.

Zurück | Zum Anfang | Nach vorne
swf_shapefilloff | Nach oben | swf_shapelinesolid


swf_shapelinesolid

(PHP 4 )

swf_shapelinesolid -- Set the current line style

Description

void swf_shapelinesolid ( float r, float g, float b, float a, float width)

The swf_shapelinesolid() function sets the current line style to the color of the rgba parameters and width to the width parameter. If 0.0 is given as a width then no lines are drawn.

Zurück | Zum Anfang | Nach vorne
swf_shapefillsolid | Nach oben | swf_shapelineto


swf_shapelineto

(PHP 4 )

swf_shapelineto -- Draw a line

Description

void swf_shapelineto ( float x, float y)

The swf_shapeLineTo() draws a line to the x,y coordinates given by the x parameter & the y parameter. The current position is then set to the x,y parameters.

Zurück | Zum Anfang | Nach vorne
swf_shapelinesolid | Nach oben | swf_shapemoveto


swf_shapemoveto

(PHP 4 )

swf_shapemoveto -- Move the current position

Description

void swf_shapemoveto ( float x, float y)

The swf_shapeMoveTo() function moves the current position to the x coordinate given by the x parameter and the y position given by the y parameter.

Zurück | Zum Anfang | Nach vorne
swf_shapelineto | Nach oben | swf_showframe


swf_showframe

(PHP 4 )

swf_showframe -- Zeigt den aktuellen Frame an

Beschreibung

void swf_showframe ( void )

Die swf_showframe() Funktion gibt den aktuellen Frame aus.

Zurück | Zum Anfang | Nach vorne
swf_shapemoveto | Nach oben | swf_startbutton


swf_startbutton

(PHP 4 )

swf_startbutton -- Start the definition of a button

Description

void swf_startbutton ( int objid, int type)

The swf_startbutton() function starts off the definition of a button. The type parameter can either be TYPE_MENUBUTTON or TYPE_PUSHBUTTON. The TYPE_MENUBUTTON constant allows the focus to travel from the button when the mouse is down, TYPE_PUSHBUTTON does not allow the focus to travel when the mouse is down.

Zurück | Zum Anfang | Nach vorne
swf_showframe | Nach oben | swf_startdoaction


swf_startdoaction

(PHP 4 )

swf_startdoaction -- Start a description of an action list for the current frame

Description

void swf_startdoaction ( void )

The swf_startdoaction() function starts the description of an action list for the current frame. This must be called before actions are defined for the current frame.

Zurück | Zum Anfang | Nach vorne
swf_startbutton | Nach oben | swf_startshape


swf_startshape

(PHP 4 )

swf_startshape -- Start a complex shape

Description

void swf_startshape ( int objid)

The swf_startshape() function starts a complex shape, with an object id given by the objid parameter.

Zurück | Zum Anfang | Nach vorne
swf_startdoaction | Nach oben | swf_startsymbol


swf_startsymbol

(PHP 4 )

swf_startsymbol -- Define a symbol

Description

void swf_startsymbol ( int objid)

Define an object id as a symbol. Symbols are tiny flash movies that can be played simultaneously. The objid parameter is the object id you want to define as a symbol.

Zurück | Zum Anfang | Nach vorne
swf_startshape | Nach oben | swf_textwidth


swf_textwidth

(PHP 4 )

swf_textwidth -- Get the width of a string

Description

float swf_textwidth ( string str)

The swf_textwidth() function gives the width of the string, str, in pixels, using the current font and font size.

Zurück | Zum Anfang | Nach vorne
swf_startsymbol | Nach oben | swf_translate


swf_translate

(PHP 4 )

swf_translate -- Translate the current transformations

Description

void swf_translate ( double x, double y, double z)

The swf_translate() function translates the current transformation by the x, y, and z values given.

Zurück | Zum Anfang | Nach vorne
swf_textwidth | Nach oben | swf_viewport


swf_viewport

(PHP 4 )

swf_viewport -- Select an area for future drawing

Description

void swf_viewport ( double xmin, double xmax, double ymin, double ymax)

The swf_viewport() function selects an area for future drawing for xmin to xmax and ymin to ymax, if this function is not called the area defaults to the size of the screen.

Zurück | Zum Anfang | Nach vorne
swf_translate | Nach oben | SNMP Funktionen


SNMP Funktionen

PHP Handbuch
Zurück Nach vorne

CII. SNMP Funktionen

Um die SNMP Funktionen unter Unix nutzen zu können muss das UCD SNMP Paket installiert sein. Unter Windows sind diese Funktionen nur unter NT verfügbar, nicht aber unter Win95/98.

WICHTIG: Um das UCD SNMP Paket zu nutzen muss NO_ZEROLENGTH_COMMUNITY als 1 definiert werden bevor man es kompiliert. Nache dem Konfigurieren von UCD SNMP muss in der Datei config.h die Zeile mit NO_ZEROLENGTH_COMMUNITY auskommentiert werden. Die Zeile sollte danach so aussehen:

#define NO_ZEROLENGTH_COMMUNITY 1

Wenn seltsame "segmentation faults" in Verbindung mit SNMP Kommandos auftauchen, wurden die obigen Anweisungen nicht korrekt befolgt. Als eine Alternative zum Neukompilieren des Packets, kann mann auch PHP mit der Option --enable-ucd-snmp-hack kompilieren.

Inhaltsverzeichnis
snmp_get_quick_print -- Holt den aktuellen Wert der quick_print Einstellung der UCD Bibliothek
snmp_set_quick_print -- Setzt den Wert von quick_print innerhalb der UCD SNMP Bibliothek.
snmpget -- Ein SNMP Objekt holen
snmprealwalk -- Return all objects including their respective object ID within the specified one
snmpset -- Setzt ein SNMP Objekt
snmpwalk -- Holt alle SNMP Objekte eines Agenten
snmpwalkoid -- Abfrage über einen Baum einer Netzwerkeinheit.

Zurück | Zum Anfang | Nach vorne
swf_viewport | Nach oben | snmp_get_quick_print


snmp_get_quick_print

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmp_get_quick_print -- Holt den aktuellen Wert der quick_print Einstellung der UCD Bibliothek

Description

bool snmp_get_quick_print ( void )

Gibt den aktuellen Wert von quick_print der UCD Bibliothek zurück. quick_print ist standardmäßig abgeschaltet.

$quickprint = snmp_get_quick_print();

Der obige Funktionsaufruf gibt FALSE zurück, wenn quick_print ausgeschaltet ist und TRUE, wenn quick_print eingeschaltet ist.

Die snmp_get_quick_print() Funktion ist nur bei Verwendung der SNMP Bibliothek verfügbar, jedoch nicht bei Verwendung der Windows SNMP Bibliothek.

Siehe: snmp_set_quick_print() für eine Vollständie Beschreibung was quick_print bewirkt.

Zurück | Zum Anfang | Nach vorne
SNMP Funktionen | Nach oben | snmp_set_quick_print


snmp_set_quick_print

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmp_set_quick_print -- Setzt den Wert von quick_print innerhalb der UCD SNMP Bibliothek.

Beschreibung

void snmp_set_quick_print ( bool quick_print)

Setzt den Wert von quick_print innerhalb der UCD SNMP Bibliothek. Falls es gesetzt ist (1), wird die SNMP Bibliothek 'quick printed' Werte zurückgeben. Das bedeutet, dass nur der Wert ausgegeben wird. Wenn quick_print nicht aktiviert ist, (Standardeinstellung) gibt die UCD SNMP Bibliothek extra Informationen aus, die den Typ des Wertes (z.B. IpAddress oder OID) enhalten. Zusätzlich gibt die Bibliothek für alle Werte, die weniger als vier Zeichen haben, Hex-Werte aus, wenn quick_print nicht aktiviert ist.

quick_print wird oft verwendet um die Informationen, die zurückgegeben werden, weiterzuverwenden anstatt sie auszugeben.

snmp_set_quick_print(0);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a<BR>\n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a<BR>\n";

Der erste Wert, der ausgegeben wird, ist:: 'Timeticks: (0) 0:00:00.00', während mit aktiviertem quick_print nur '0:00:00.00' ausgegeben wird.

Standardmäßig gibt die UCD SNMP umfangreiche Werte zurück, quick_print wird verwendet um nur die Werte zurückzugeben.

Momentan werden Strings noch mit extra Quotierungen zurückgegeben, dies wird in Zukunft behoben werden.

Die snmp_set_quick_print() Funktion ist nur bei Verwendung der SNMP Bibliothek verfügbar, jedoch nicht bei Verwendung der Windows SNMP Bibliothek.

Zurück | Zum Anfang | Nach vorne
snmp_get_quick_print | Nach oben | snmpget


snmpget

(PHP 3, PHP 4 , PHP 5)

snmpget -- Ein SNMP Objekt holen

Beschreibung

string snmpget ( string hostname, string community, string object_id [, int timeout [, int retries]])

Gibt den Wert eines SNMP Objektes zurück, bei Erfolg und FALSE bei einem Fehler.

Die snmpget() Funktion wird verwendet um den Wert eines SNMP Objekts zu ermitteln, das mit object_id näher bestimmt ist. Der SNMP "agent" wird mit hostname deklariert und die "read community" wird in community angegeben.

$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");

Zurück | Zum Anfang | Nach vorne
snmp_set_quick_print | Nach oben | snmprealwalk


snmprealwalk

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmprealwalk -- Return all objects including their respective object ID within the specified one

Description

array snmprealwalk ( string host, string community, string object_id [, int timeout [, int retries]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
snmpget | Nach oben | snmpset


snmpset

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

snmpset -- Setzt ein SNMP Objekt

Description

bool snmpset ( string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]])

Setzt den angegebenen SNMP Objekt Wert, gibt TRUE bei Erfolg und FALSE bei einem Fehler zurück.

Die Funktion snmpset() wird benutzt, um den Wert eines SNMP Objekts zu setzen, der mit object_id angegeben wird. Der SNMP Agent wird bei hostname angegeben und die Lese-"Community" mit dem community Parameter.

Zurück | Zum Anfang | Nach vorne
snmprealwalk | Nach oben | snmpwalk


snmpwalk

(PHP 3, PHP 4 , PHP 5)

snmpwalk -- Holt alle SNMP Objekte eines Agenten

Beschreibung

array snmpwalk ( string hostname, string community, string object_id [, int timeout [, int retries]])

Gibt einen Array von SNMP Objekten zurück, der mit der object_id() als Wurzel beginn, oder FALSE bei einem Fehler.

Die snmpwalk() Funktion wird verwendet um alle Werte von dem SNMP Agenten zu lesen, der bei hostname angegeben wurde. Der Community Parameter bestimmt die Lese-"Community" für diesen Agenten. Ein NULL object_id wird als Wurzel des SNMP Objektbaums verwendet und alle Objekts unter diesem Baum als ein Array zurückgegeben. Wenn object_id angegeben wird, werden alle SNMP Objekte unterhalb der object_id zurückgegeben.

$a = snmpwalk("127.0.0.1", "public", "");

Der obige Funktionsaufruf gibt alle SNMP Objekte des Agenten, der auf localhost läuft, zurück. Man kann mit einer Schleife alle Werte durchlaufen.

for ($i=0; $i < count($a); $i++) {
    echo $a[$i];
}

Zurück | Zum Anfang | Nach vorne
snmpset | Nach oben | snmpwalkoid


snmpwalkoid

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmpwalkoid -- Abfrage über einen Baum einer Netzwerkeinheit.

Beschreibung

array snmpwalkoid ( string hostname, string community, string object_id [, int timeout [, int retries]])

Gibt ein assoziatives Array mit den Objekt Ids und den dazugehörigen Objektwerten zurück, der mit der object_id als Wurzel beginnt, oder FALSE bei einem Fehler.

Die snmpwalkoid() Funktion wird verwendet um alle Werte von dem SNMP Agenten zu lesen, der bei hostname angegeben wurde. Der Community Parameter bestimmt die Lese-"Community" für diesen Agenten. Ein NULL object_id wird als Wurzel des SNMP Objektbaums verwendet und alle Objekts unter diesem Baum als ein Array zurückgegeben. Wenn object_id angegeben wird, werden alle SNMP Objekte unterhalb der object_id zurückgegeben.

Die Existenz von snmpwalkoid() und snmpwalk() hat historische Gründe. Beide Funktionen gibt es aus Kompatiblitätsgründen.

$a = snmpwalkoid("127.0.0.1", "public", "");

Der obige Funktionsaufruf gibt alle SNMP Objekte des Agenten, der auf localhost läuft, zurück. Man kann mit einer Schleife alle Werte durchlaufen.

for ($i=0; $i < count($a); $i++) {
    echo $a[$i];
}

Zurück | Zum Anfang | Nach vorne
snmpwalk | Nach oben | Socket Funktionen


Socket Funktionen

PHP Handbuch
Zurück Nach vorne

CIII. Socket Funktionen

Einführung

Die Socket-Erweiterung stellt eine hardwarenahe Schnittstelle zu den Datenaustauschfunktionen über eine Socket-Verbindung zur Verfügung, die auf den bekannten BSD Sockets aufbaut, und bietet die Möglichkeit, entweder als Socket-Server oder als Client zu agieren.

Für eine allgemeinere clientseitige Socket Schnittstelle siehe fsockopen() und pfsockopen().

Wenn man diese Funktionen benutzt, darf man nicht vergessen, dass, obwohl viele der Funktionen gleichlautende Namen wie ihre Entsprechungen in C haben, sie dennoch oft unterschiedliche Deklarationen haben. Bitte lesen Sie die Deklarationen, um Verwirrung zu vermeiden.

Das heisst, wem Socketprogrammierung fremd ist, der findet eine grosse Menge nützlicher Materialien in den entsprechenden Unix manpages und es gibt jede Menge von Tutorials und Informationen über Socketprogrammierung in C im Internet. Vieles davon kann mit leichten Änderungen für die Socketprogrammierung mit PHP benutzt werden. Die UNIX Socket FAQ ist dafür ein guter Anfang.

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Die hier beschriebenen Socket Funktionen sind Teil einer PHP Erweiterung, die beim Kompilieren mit der Option --enable-sockets beim Befehl configure eingebunden werden muss.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

AF_UNIX (integer)

AF_INET (integer)

AF_INET6 (integer)

SOCK_STREAM (integer)

SOCK_DGRAM (integer)

SOCK_RAW (integer)

SOCK_SEQPACKET (integer)

SOCK_RDM (integer)

MSG_OOB (integer)

MSG_WAITALL (integer)

MSG_PEEK (integer)

MSG_DONTROUTE (integer)

SO_DEBUG (integer)

SO_REUSEADDR (integer)

SO_KEEPALIVE (integer)

SO_DONTROUTE (integer)

SO_LINGER (integer)

SO_BROADCAST (integer)

SO_OOBINLINE (integer)

SO_SNDBUF (integer)

SO_RCVBUF (integer)

SO_SNDLOWAT (integer)

SO_RCVLOWAT (integer)

SO_SNDTIMEO (integer)

SO_RCVTIMEO (integer)

SO_TYPE (integer)

SO_ERROR (integer)

SOL_SOCKET (integer)

PHP_NORMAL_READ (integer)

PHP_BINARY_READ (integer)

SOL_TCP (integer)

SOL_UDP (integer)

Socket Fehler

Die Socket-Erweiterung wurde geschrieben, um eine nützliche Schnittstelle zu den mächtigen BSD-Funktionen zur Verfügung zu stellen. Es wurde darauf geachtet, dass die Funktionen sowohl unter Win32 als auch unter Unix-Implementierungen arbeiten. Fast alle Socket-Funktionen können unter besonderen Umständen fehlschlagen und deshalb eine E_WARNING- Meldung ausgeben, die den aufgetretenen Fehler beschreibt. Dies ist manchmal nicht wünschenswert für den Entwickler. Zum Beispiel kann die Funktion socket_read() plötzlich eine E_WARNING-Meldung ausgeben, weil die Verbindung unerwartet beendet wurde. Normalerweise werden solche Meldungen mit dem @-Operator unterdrückt und der Fehlercode innerhalb der Anwendung mit der Funktion socket_last_error() aufgefangen. Sie können auch die Funktion socket_strerror() mit diesem Fehlercode aufrufen, um einen String, der den Fehler beschreibt, zu erhalten. Nähere Informationen finden Sie bei diesen beiden Funktionen.

Anmerkung: Die E_WARNING-Meldungen, die von der Socket-Extension generiert werden, sind auf Englisch, aber die Meldungen, die Sie extra abfragen können, erscheinen in der entsprechenden Sprache, die Sie eingestellt haben (LC_MESSAGES):
Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet

Beispiele

Beispiel 1. Socket Beispiel: Einfacher TCP/IP Server

Dieses Beispiel zeigt einen einfachen Echo-Server. Passen Sie die Variablen address und port an Ihre Systemumgebung an und führen Sie das Skript aus. Dann können Sie sich mit einem Befehl wie: telnet 192.168.1.53 10000 (bei dem adress und port an Ihre Umgebung angepasst ist) mit dem Server verbinden. Alles, was Sie eingeben, wird an den Server geschickt und von diesem wieder an Sie zurückgegeben. Um die Verbindung zu trennen, geben sie 'quit' ein.

#!/usr/local/bin/php -q
<?php
error_reporting (E_ALL);

/* Das Skript wartet auf hereinkommende Verbindungsanforderungen. */
set_time_limit (0);

/* Die implizite Ausgabe wird eingeschaltet, so dass man sieht, was gesendet wurde. */
ob_implicit_flush ();

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket_create (AF_INET, SOCK_STREAM, 0)) < 0) {
    echo "socket_create() fehlgeschlagen: Grund: " . socket_strerror ($sock) . "\n";
}

if (($ret = socket_bind ($sock, $address, $port)) < 0) {
    echo "socket_bind() fehlgeschlagen: Grund: " . socket_strerror ($ret) . "\n";
}

if (($ret = socket_listen ($sock, 5)) < 0) {
    echo "socket_listen() fehlgeschlagen: Grund: " . socket_strerror ($ret) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) < 0) {
        echo "socket_accept() fehlgeschlagen: Grund: " . socket_strerror ($msgsock) . "\n";
        break;
    }
    /* Anweisungen senden. */
    $msg = "\nWillkommen auf dem PHP Testserver.  \n" .
        "Um zu beenden, geben Sie 'quit' ein. Um den Server herunterzufahren, geben Sie 'shutdown' ein.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (FALSE === ($buf = socket_read ($msgsock, 2048))) {
            echo "socket_read() fehlgeschlagen: Grund: " . socket_strerror ($ret) . "\n";
            break 2;
        }
        if (!$buf = trim ($buf)) {
            continue;
        }
        if ($buf == 'quit') {
            break;
        }
        if ($buf == 'shutdown') {
            socket_close ($msgsock);
            break 2;
        }
        $talkback = "PHP: Sie haben '$buf' eingegeben.\n";
        socket_write ($msgsock, $talkback, strlen ($talkback));
        echo "$buf\n";
    } while (true);
    socket_close ($msgsock);
} while (true);

socket_close ($sock);
?>

Beispiel 2. Socket Beispiel: Einfacher TCP/IP Client

Dieses Beispiel zeigt einen einfachen HTTP-Client, der einen einzelnen Request absetzen kann. Er verbindet sich mit einer Seite, setzt einen HEAD-Request ab, gibt die Antwort zurück und wird beendet.

<?php
error_reporting (E_ALL);

echo "<h2>TCP/IP Verbindung</h2>\n";

/* Den Port des WWW-Dienstes holen. */
$service_port = getservbyname ('www', 'tcp');

/* Die IP-Adresse des Zielhosts holen. */
$address = gethostbyname ('www.example.com');

/* einen TCP/IP Socket erzeugen. */
$socket = socket_create (AF_INET, SOCK_STREAM, 0);
if ($socket < 0) {
    echo "socket_create() fehlgeschlagen: Grund: " . socket_strerror ($socket) . "\n";
} else {
    echo "OK.\n";
}

echo "Versuche, eine Verbindung zu '$address' auf Port  '$service_port' aufzubauen ...";
$result = socket_connect ($socket, $address, $service_port);
if ($result < 0) {
    echo "socket_connect() fehlgeschlagen.\nGrund: ($result) " . socket_strerror($result) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.0\r\n\r\n";
$out = '';

echo "Einen HTTP HEAD Request senden ...";
socket_write ($socket, $in, strlen ($in));
echo "OK.\n";

echo "Die Antwort lesen:\n\n";
while ($out = socket_read ($socket, 2048)) {
    echo $out;
}

echo "Den Socket schliessen ...";
socket_close ($socket);
echo "OK.\n\n";
?>

Inhaltsverzeichnis
socket_accept -- Akzeptiert eine Verbindung an einem Socket
socket_bind -- Verknüpft einen Namen mit einem Socket
socket_clear_error -- Löscht entweder einen Fehler oder den letzten Fehlercode eines Sockets
socket_close -- Schliesst einen Socket
socket_connect -- Baut eine Verbindung zu einem Socket auf
socket_create_listen -- Öffnet einen Socket um Verbindungen an einem gegebenen Port aufzubauen
socket_create_pair -- Erzeugt ein paar von unverwechselbaren Sockets und speichert sie in fds.
socket_create -- Erzeugt einen Socket (Endpunkt für die Kommunikation)
socket_get_option -- Holt die Socket-Optionen für einen Socket
socket_getpeername -- Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems.
socket_getsockname -- Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems.
socket_iovec_add -- Fügt einen neuen Vektor in das scatter/gather Array ein
socket_iovec_alloc -- ...]) Erstellt einen 'struct iovec' zur Benutzung mit sendmsg, recvmsg, writev und readv
socket_iovec_delete -- Löscht einen Vektor aus einem Array von Vektoren
socket_iovec_fetch -- Gibt die Daten aus dem iovec zurück, der durch iovec_id[iovec_position] bestimmt wurde.
socket_iovec_free -- Gibt den Speicher des durch iovec_id bezeichneten iovec frei.
socket_iovec_set -- Setzt die Daten in iovec_id[iovec_position] auf new_val
socket_last_error -- Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist.
socket_listen -- Hört einen Socket nach Verbindungsanforderungen ab
socket_read -- Liest höchstens die angegebene Anzahl Bytes von einem Socket.
socket_readv -- Liest aus einem Dateideskriptor. Dabei wird das scatter-gather Array benutzt, welches von iovec_id definiert wird.
socket_recv -- Empfängt Daten von einem verbundenen Socket
socket_recvfrom -- Empfängt Daten von einem Socket, unabhängig von einer Verbindung
socket_recvmsg -- Wird benutzt, um Nachrichten an einem Socket zu empfangen, ob verbindungsorientiert oder nicht.
socket_select -- Führt einen select() Systemaufruf auf den gegebenen Socket-Arrays aus, wobei mit tv_sec und tv_usec ein Zeitlimit bestimmt wird.
socket_send -- Sendet Daten an einen verbundenen Socket
socket_sendmsg -- Sendet eine Nachricht an einen Socket, egal ob dieser verbindungsorientiert ist oder nicht.
socket_sendto -- Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht.
socket_set_block -- Sets blocking mode on a socket resource
socket_set_nonblock -- Setzt den nonblocking-Modus für den Datei-Deskriptor fd.
socket_set_option -- Setzt die Socket-Optionen für einen Socket
socket_shutdown -- Fährt einen Socket zum Empfangen oder zum Senden oder zu beidem, herunter.
socket_strerror -- Gibt einen String zurück, der einen socket-Fehler beschreibt.
socket_write -- Schreibt in den Socket
socket_writev -- Schreibt in einen Datei-Deskriptor fd, unter Benutzung des scatter-gather Arrays, das von iovec_id definiert wird.

Zurück | Zum Anfang | Nach vorne
snmpwalkoid | Nach oben | socket_accept


socket_accept

(PHP 4 >= 4.1.0, PHP 5)

socket_accept -- Akzeptiert eine Verbindung an einem Socket

Beschreibung

int socket_accept ( resource socket)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Nachdem der Socket socket mit der socket_create() erzeugt wurde, mit socket_bind() mit einem Namen verknuepft wurde und mit socket_listen() angewiesen wurde, nach hereinkommenden Verbindungsanforderungen zu horchen, wird der Socket mit dieser Funktion angewiesen, diese Verbindungsanforderungen zuzulassen. Wenn ein Verbindungsaufbau erfolgreich war, wird ein neuer Socket-Deskriptor zurückgegeben, welcher zur Kommunikation benutzt werden kann. Wenn es mehrere Verbindungsanforderungen an diesem Socket gibt, werden diese in eine Warteschlange gestellt und die erste Verbindungsanforderung wird bedient. Falls es keine wartenden Verbindungsanforderungen gibt, blockiert die Funktion socket_accept() so lange, bis eine Verbindungsanforderung kommt. Falls socket mit der Funktion socket_set_blocking() oder mit socket_set_nonblock() auf 'nicht blockieren' gesetzt wurde, wird FALSE zurückgegeben.

Der Socket-Deskriptor, der von socket_accept() zurückgegeben wird, soll nicht dazu benutzt werden, um neue Verbindungsanforderungen zu benutzen. Der ursprüngliche wartende Socket socket bleibt geöffnet und kann wiederbenutzt werden.

Gibt bei Erfolg einen neuen Socket-Deskriptor zurück oder FALSE, falls ein Fehler auftritt. Der aktuelle Fehlercode kann mit der Funktion socket_last_error() ermittelt werden. Dieser Fehlercode kann an die Funktion strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Siehe auch:
socket_bind(),
socket_connect(),
socket_listen(),
socket_create() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
Socket Funktionen | Nach oben | socket_bind


socket_bind

(PHP 4 >= 4.1.0, PHP 5)

socket_bind -- Verknüpft einen Namen mit einem Socket

Beschreibung

bool socket_bind ( resource socket, string address [, int port])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

socket_bind() verknüpft den Namen, der in address angegeben ist mit dem Socket, der durch socket bestimmt ist. Dies muss ein gültiger Socket-Deskriptor sein, der mit der Funktion socket_create() erzeugt wurde.

Der Parameter address ist entweder eine IP-Adresse, angegeben in Punktnotation (z.B. 127.0.0.1), falls der Socket zur AF_INET -Familie gehört; oder ein Pfadname eines Unix-domain socket, falls er zur AF_UNIX - Familie gehört.

Der Parameter port wird nur benutzt, wenn eine Verbindung zu einem AF_INET -Socket aufgebaut wird und gibt an, zu welchem Port des entfernten Hosts eine Verbindung hergestellt werden soll.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Siehe auch:
socket_connect(),
socket_listen(),
socket_create(),
socket_last_error() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_accept | Nach oben | socket_clear_error


socket_clear_error

(PHP 4 >= 4.2.0, PHP 5)

socket_clear_error -- Löscht entweder einen Fehler oder den letzten Fehlercode eines Sockets

Beschreibung

void socket_clear_error ( [resource socket])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Diese Funktion löscht entweder einen Fehlercode für einen gegebenen Socket oder global den letzten Socket-Fehler.

Mit dieser Funktion kann der Wert eines Fehlercodes explizit zurückgesetzt werden, entweder für einen bestimmten Socket oder global der Fehlercode des letzten Fehlers innerhalb dieser Extension. Dies kann ganz nützlich sein, wenn man prüfen möchte, ob in einem Teil einer Anwendung ein Fehler aufgetreten ist.

Siehe auch socket_last_error() und socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_bind | Nach oben | socket_close


socket_close

(PHP 4 >= 4.1.0, PHP 5)

socket_close -- Schliesst einen Socket

Beschreibung

void socket_close ( resource socket)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

socket_close() schliesst den socket, der durch socket gegeben ist.

Anmerkung:
      socket_close() kann nicht für PHP
      Dateideskriptoren benutzt werden, die mit fopen(),
      popen(), fsockopen() oder
      pfsockopen() erzeugt wurden; sie gilt nur für
      Sockets, die mit socket_create() oder
      socket_accept() erzeugt wurden.

Siehe auch socket_bind(), socket_listen(),
socket_create() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_clear_error | Nach oben | socket_connect


socket_connect

(PHP 4 >= 4.1.0, PHP 5)

socket_connect -- Baut eine Verbindung zu einem Socket auf

Beschreibung

bool socket_connect ( resource socket, string address [, int port])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Baut mit Hilfe eines gültigen Socket-Deskriptors socket, der von der Funktion socket_create() zurückgegeben wurde, eine Verbindung auf.

Der Parameter address ist entweder eine IP-Adresse in Punktnotation (e.g. 127.0.0.1), falls der Socket zur AF_INET -Familie gehört, oder der Pfadname eines Unix-domain socket, falls der Socket zur AF_UNIX -Familie gehört.

Der Parameter port wird nur benutzt, wenn eine Verbindung zu einem AF_INET -Socket aufgebaut wird und gibt an, zu welchem Port des entfernten Hosts eine Verbindung hergestellt werden soll.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

See also
socket_bind(),
socket_listen(),
socket_create(),
socket_last_error() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_close | Nach oben | socket_create_listen


socket_create_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_create_listen -- Öffnet einen Socket um Verbindungen an einem gegebenen Port aufzubauen

Beschreibung

resource socket_create_listen ( int port [, int backlog])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Diese Funktion soll die Erzeugung eines neuen Sockets, der nur auf neue Verbindungsanforderungen wartet und die Verbindungen aufbaut, erleichtern.

socket_create_listen() erzeugt einen neuen Socket vom Typ AF_INET, der an allen Schnittstellen eines gegebenen Ports auf neue Verbindungen wartet.

Der backlog Parameter gibt an, wie gross die Warteschlange mit den wartenden Verbindungen maximal werden darf. SOMAXCONN kann als backlog Parameter übergeben werden. Mehr Informationen hierzu finden Sie bei socket_listen().

socket_create_listen() gibt bei Erfolg einen neuen Socket-Deskriptor zurück oder FALSE, falls ein Fehler aufgetreten ist. Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Anmerkung: Falls Sie einen Socket erzeugen möchten, der nur an bestimmten Schnittstellen horcht, müssen Sie socket_create(), socket_bind() und socket_listen() benutzen.

Siehe auch
socket_create(),
socket_bind(),
socket_listen(),
socket_last_error() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_connect | Nach oben | socket_create_pair


socket_create_pair

(PHP 4 >= 4.1.0, PHP 5)

socket_create_pair -- Erzeugt ein paar von unverwechselbaren Sockets und speichert sie in fds.

Beschreibung

bool socket_create_pair ( int domain, int type, int protocol, array &fd)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_create_listen | Nach oben | socket_create


socket_create

(PHP 4 >= 4.1.0, PHP 5)

socket_create -- Erzeugt einen Socket (Endpunkt für die Kommunikation)

Beschreibung

resource socket_create ( int domain, int type, int protocol)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Erzeugt einen Kommunikationsendpunkt (einen Socket) und gibt einen Socket-Deskriptor zurück.

Der domain Parameter legt die Domain fest (Protokoll-Familie), die für die Kommunikation benutzt wird. Gegenwärtig verstehen Sockets AF_INET und AF_UNIX. AF_INET wird normalererweise für die Internet-Kommunikation benutzt. AF_UNIX verwendet Pfadnamen zur Identifikation von Sockets und kann daher nur für die lokale Kommunikation benutzt werden (welche andererseits schneller ist).

Der type Parameter bestimmt den Socket-Typ. Dies ist entweder SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, SOCK_RDM oder SOCK_PACKET. Die beiden meistbenutzten Typen sind SOCK_DGRAM für die (verbindungslose) UDP Kommunikation, und SOCK_STREAM für die TCP Kommunikation.

protocol gibt das Protokoll an, welches entweder SOL_UDP oder SOL_TCP ist.

Bei Erfolg gibt die Funktion einen Socket-Deskriptor zurück, bei einem Fehler wird FALSE zurückgegeben. Der aktuelle Fehlercode kann mit socket_last_error() ermittelt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibing des Fehlers zu erhalten.

Weitere Informationen über die Benutzung der Funktion socket_create(), als auch über die Bedeutung der verschiedenen Parameter finden Sie auf der Unix man page socket (2).

Anmerkung: Falls ein fehlerhafter domain- oder type-Parameter angegeben wird, benutzt socket_create() standardmässig AF_INET sowie SOCK_STREAM und gibt eine E_WARNING-Meldung aus.

Siehe auch
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_create_pair | Nach oben | socket_get_option


socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_option -- Holt die Socket-Optionen für einen Socket

Beschreibung

mixed socket_get_option ( resource socket, int level, int optname)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: In PHP Versionen vor 4.3.0 entsprach dies der Funktion socket_getopt().

Zurück | Zum Anfang | Nach vorne
socket_create | Nach oben | socket_getpeername


socket_getpeername

(PHP 4 >= 4.1.0, PHP 5)

socket_getpeername -- Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems.

Beschreibung

bool socket_getpeername ( resource socket, string &addr [, int &port])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Falls der angegebene Socket vom Typ AF_INET ist, gibt socket_getpeername() die IP Addresse des entfernten Peers im Parameter address in Punktnotation zurück (z.B. 127.0.0.1). Falls der optionale Parameter port bekannt ist, wird der zugehörige Port ebenfalls zurückgegeben.

Falls der angegebene Socket vom Typ AF_UNIX ist, gibt socket_getpeername() den Pfad des Unix-Dateisystems (z.B. /var/run/daemon.sock) in dem Parameter address zurück.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. socket_getpeername() kann auch FALSE zurückgeben, wenn der Socket weder vom Typ AF_INET noch vom TypAF_UNIX ist. In diesem Fall wird der letzte Socket-Fehlercode nicht aktualisiert.

Siehe auch
socket_getpeername(),
socket_last_error() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_get_option | Nach oben | socket_getsockname


socket_getsockname

(PHP 4 >= 4.1.0, PHP 5)

socket_getsockname -- Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems.

Beschreibung

bool socket_getsockname ( resource socket, string &addr [, int &port])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Falls der angegebene Socket vom Typ AF_INET ist, gibt socket_getsockname() die IP Addresse des lokalen Rechners im Parameter address in Punktnotation zurück (z.B. 127.0.0.1). Falls der optionale Parameter port bekannt ist, wird der zugehörige Port ebenfalls zurückgegeben.

Falls der angegebene Socket vom Typ AF_UNIX ist, gibt socket_getsockname() den Pfad des Unix-Dateisystems (z.B. /var/run/daemon.sock) in dem Parameter address zurück.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. socket_getpeername() kann auch FALSE zurückgeben, wenn der Socket weder vom Typ AF_INET noch vom Typ AF_UNIX ist. In diesem Fall wird der letzte Socket-Fehlercode nicht aktualisiert.

See also
socket_getpeername(),
socket_last_error() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_getpeername | Nach oben | socket_iovec_add


socket_iovec_add

(PHP 4 >= 4.1.0)

socket_iovec_add -- Fügt einen neuen Vektor in das scatter/gather Array ein

Beschreibung

bool socket_iovec_add ( resource iovec, int iov_len)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_getsockname | Nach oben | socket_iovec_alloc


socket_iovec_alloc

(PHP 4 >= 4.1.0)

socket_iovec_alloc -- ...]) Erstellt einen 'struct iovec' zur Benutzung mit sendmsg, recvmsg, writev und readv

Beschreibung

resource socket_iovec_alloc ( int num_vectors [, int ])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_iovec_add | Nach oben | socket_iovec_delete


socket_iovec_delete

(PHP 4 >= 4.1.0)

socket_iovec_delete -- Löscht einen Vektor aus einem Array von Vektoren

Beschreibung

bool socket_iovec_delete ( resource iovec, int iov_pos)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_iovec_alloc | Nach oben | socket_iovec_fetch


socket_iovec_fetch

(PHP 4 >= 4.1.0)

socket_iovec_fetch -- Gibt die Daten aus dem iovec zurück, der durch iovec_id[iovec_position] bestimmt wurde.

Beschreibung

string socket_iovec_fetch ( resource iovec, int iovec_position)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_iovec_delete | Nach oben | socket_iovec_free


socket_iovec_free

(PHP 4 >= 4.1.0)

socket_iovec_free -- Gibt den Speicher des durch iovec_id bezeichneten iovec frei.

Beschreibung

bool socket_iovec_free ( resource iovec)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_iovec_fetch | Nach oben | socket_iovec_set


socket_iovec_set

(PHP 4 >= 4.1.0)

socket_iovec_set -- Setzt die Daten in iovec_id[iovec_position] auf new_val

Beschreibung

bool socket_iovec_set ( resource iovec, int iovec_position, string new_val)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_iovec_free | Nach oben | socket_last_error


socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_error -- Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist.

Beschreibung

int socket_last_error ( [resource socket])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Diese Funktion gibt einen Fehlercode für einen Socket zurück.

Falls ein Socket-Deskriptor an diese Funktion übergeben wird, wird der letzte Fehler, der an diesem bestimmten Socket aufgetreten ist, zurückgegeben. Falls kein Socket-Deskriptor übergeben wird, wird der Fehlercode der letzten fehlgeschlagenen Funktion zurückgegeben. Letzteres ist besonders hilfreich für Funktionen wie socket_create(), die bei einem Fehler keinen Socket zurückgibt, und socket_select(), die aus anderen Gründen, die nichts mit einem bestimmten Socket zu tun haben, fehlschlagen kann. Der Fehlercode kann an die Funktion socket_strerror() übergeben werden, die eine textuelle Beschreibung dieses Fehlercodes zurückgibt.
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
    die("Konnte keinen socket erzeugen, der Fehlercode ist: " . socket_last_error() .
        ",error message is: " . socket_strerror(socket_last_error()));
}

Anmerkung: socket_last_error() löscht den Fehlercode nicht. Dafür müssen sie die Funktion socket_clear_error() aufrufen.

Zurück | Zum Anfang | Nach vorne
socket_iovec_set | Nach oben | socket_listen


socket_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_listen -- Hört einen Socket nach Verbindungsanforderungen ab

Beschreibung

bool socket_listen ( resource socket [, int backlog])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Nachdem der Socket socket mit socket_create() erzeugt und mit socket_bind() mit einem Namen verknüpft wurde, wird er angewiesen, nach hereinkommenden Verbindungsanforderungen an dem Socket socket zu horchen.

Maximal werden backlog hereinkommende Verbindungsanforderungen zur späteren Verarbeitung in die Warteschlange gestellt. Falls eine Verbindungsanforderung ankommt, wenn die Warteschlange voll ist, bekommt der Client eine Fehlermeldung mit dem Hinweis ECONNREFUSED. Oder, falls das zugrundeliegende Protokoll eine Rückübertragung unterstützt, wird die Anforderung ignoriert, so dass weitere Verbindungsversuche möglicherweise erfolgreich sind.

Anmerkung: Die maximale Anzahl, der im Parameter backlog angegebenen Einträge der Warteschlange, hängt entscheidend vom darunterliegenden Betriebssystem ab. Auf Linux-Systemen wird die Zahl stillschweigend auf SOMAXCONN begrenzt. Wenn auf Win32-Systemen SOMAXCONN gesetzt ist, ist der Dienstanbieter verantwortlich für den Socket und muss die Warteschlange auf einen vernünftigen Maximalwert begrenzen. Es gibt für diese Systeme keine standardmässige Möglichkeit, den aktuellen Wert herauszufinden.

socket_listen() kann nur mit Sockets vom Typ SOCK_STREAM oder SOCK_SEQPACKET benutzt werden.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Siehe auch
socket_accept(),
socket_bind(),
socket_connect(),
socket_create() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_last_error | Nach oben | socket_read


socket_read

(PHP 4 >= 4.1.0, PHP 5)

socket_read -- Liest höchstens die angegebene Anzahl Bytes von einem Socket.

Beschreibung

string socket_read ( resource socket, int length [, int type])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Die Funktion socket_read() liest von dem Socket socket, der entweder mit socket_create() oder mit socket_accept() erzeugt wurde. Die Anzahl Bytes, die höchstens gelesen wird, wird in dem Parameter length angegeben. Anderenfalls können Sie mit \r, \n, or \0 den Lesevorgang beenden (dies ist abhängig von dem Parameter type, siehe weiter unten).

socket_read() gibt bei Erfolg die Daten als String zurück oder FALSE, falls ein Fehler aufgetreten ist. Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Anmerkung: socket_read() kann auch einen leeren String zurückgeben (""), der das Ende der Kommunikation anzeigt (z.B. wenn der entfernte Host die Verbindung beendet hat).

Der optionale Parameter type ist eine vordefinierte Konstante:

  • PHP_BINARY_READ - benutzt die read() Funktion des Systems. Sicher Zum Lesen von Binärdaten (und Standardeinstellung in PHP >= 4.1.0).

  • PHP_NORMAL_READ - Der Lesevorgang wird mit \n oder \r beendet. (Standardeinstellung in PHP <= 4.0.6)

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(),
socket_strerror() und
socket_write().

Zurück | Zum Anfang | Nach vorne
socket_listen | Nach oben | socket_readv


socket_readv

(PHP 4 >= 4.1.0)

socket_readv -- Liest aus einem Dateideskriptor. Dabei wird das scatter-gather Array benutzt, welches von iovec_id definiert wird.

Beschreibung

bool socket_readv ( resource socket, resource iovec_id)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_read | Nach oben | socket_recv


socket_recv

(PHP 4 >= 4.1.0, PHP 5)

socket_recv -- Empfängt Daten von einem verbundenen Socket

Beschreibung

string socket_recv ( resource socket, int len, int flags)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_readv | Nach oben | socket_recvfrom


socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5)

socket_recvfrom -- Empfängt Daten von einem Socket, unabhängig von einer Verbindung

Beschreibung

int socket_recvfrom ( resource socket, string &buf, int len, int flags, string &name [, int &port])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_recv | Nach oben | socket_recvmsg


socket_recvmsg

(PHP 4 >= 4.1.0)

socket_recvmsg -- Wird benutzt, um Nachrichten an einem Socket zu empfangen, ob verbindungsorientiert oder nicht.

Beschreibung

bool socket_recvmsg ( resource socket, resource iovec, array &control, int &controllen, int &flags, string &addr [, int &port])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_recvfrom | Nach oben | socket_select


socket_select

(PHP 4 >= 4.1.0, PHP 5)

socket_select -- Führt einen select() Systemaufruf auf den gegebenen Socket-Arrays aus, wobei mit tv_sec und tv_usec ein Zeitlimit bestimmt wird.

Beschreibung

int socket_select ( resource &read, resource &write, resource &except, int tv_sec [, int tv_usec])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Die Funktion socket_select() nimmt als Parameter Socket-Arrays entgegen und wartet, ob diese ihren Status ändern. Diejenigen, die Hintergrundwissen über BSD Sockets haben, werden feststellen, dass diese Socket-Arrays in Wirklichkeit die so genannten Datei-Deskriptor-Mengen sind. Drei, voneinander unabhängige Arrays mit Socket-Deskriptoren werden überwacht.

Die Sockets, die im read Array aufgelistet sind, werden daraufhin überwacht, ob Zeichen zum Auslesen an den Sockets verfügbar sind (um genauer zu sein: es wird überwacht, ob das Auslesen den Socket blockiert - besonders aber, ob ein Socket bereit ist, wenn er zu Ende gelesen hat. In diesem Fall gibt ein socket_read() einen leeren String zurück.)

Die Sockets, die im write Array aufgelistet sind, werden daraufhin überwacht, ob ein Schreibvorgang den Socket blockiert.

Die Sockets, die im except Array aufgelistet sind, werden auf Ausnahmen überwacht.

Warnung

Beim Beenden werden alle Arrays aktualisiert, und zeigen an, welche Sockets ihren Status geändert haben.

Sie brauchen nicht jedes Array einzeln an socket_select() übergeben. Sie können leere Arrays oder NULL stattdessen angeben. Vergessen Sie nicht, dass diese Arrays by reference übergeben werden müssen und dass sie verändert werden, nachdem die Funktion socket_select() beendet ist.

Example:
/* Vorbereiten des read Arrays */
$read = array($socket1, $socket2);

if (false === ($num_changed_sockets = socket_select($read, $write = NULL, $except = NULL, 0))) {
    /* Fehlerbehandlung */
else if ($num_changed_sockets > 0) {
    /* Mindesten bei einem Socket ist etwas interessantes passiert */
}

Anmerkung: Wegen einer Einschränkung in der aktuellen Zend Engine ist es nicht möglich, eine Konstante, wie etwa NULL, direkt als Parameter an Funktionen zu übergeben, die Referenzen auf Parameter als Argumente erwarten. Sie können stattdessen eine temporäre Variable oder einen Ausdruck, in dem der am weitesten links stehende Teilausdruck eine temporäre Variable ist, benutzen.
socket_select($r, $w, $e = NULL, 0);

tv_sec und tv_usec bilden zusammen den timeout Parameter. Der timeout ist nach oben durch die verstrichene Zeit, bis socket_select() zurückkehrt, begrenzt. tv_sec kann 0 sein, wodurch socket_select() sofort zurückkehrt. Dies ist nützlich beim Polling. Falls der Parameter tv_sec NULL ist (kein Timeout), kann socket_select() unendlich lange blockieren.

Bei Erfolg gibt socket_select() die Anzahl der Socket-Deskriptoren zurück, die in den aktualisierten Arrays enthalten sind. Falls der Timeout wirksam wird, bevor irgend etwas Interessantes passiert, ist das Funktionsergebnis 0. Falls ein Fehler auftritt wird FALSE zurückgegeben. Der Fehlercode kann dann mit socket_last_error() abgefragt werden.

Anmerkung: Wenn Sie einen Fehler aufspüren wollen, müssen Sie unbedingt den Operator === benutzen. Weil socket_select() auch 0 zurückgeben kann, wird der Vergleich mit == sonst zu TRUE ausgewertet.
if (false === socket_select($r, $w, $e = NULL, 0)) {
    echo "socket_select() fehlgeschlagen, Grund: " . socket_strerror(socket_last_error()) . "\n";
}

Anmerkung: Seien Sie sich bewusst, dass manche Socket-Implementierungen sehr sorgfältig benutzt werden müssen. Ein paar grundsätzliche Regeln:

  • Sie sollten immer versuchen, socket_select() ohne Timeout zu benutzen. Ihr Programm sollte nichts tun, wenn keine Daten verfügbar sind. Code, der von Zeitbegrenzungen abhängig ist, ist normalerweise nicht portierbar und schwierig zu debuggen.

  • Es sollte kein Socket-Deskriptor in die Arrays eingefügt werden, wenn Sie nicht vorhaben, die Ergebnisse nach der Ausführung eines socket_select() Funktionsaufrufs zu prüfen und entsprechend darauf zu reagieren. Nachdem socket_select() beendet ist, müssen alle Sockets in allen Socket-Arrays geprüft werden. Jeder Socket, der zum Schreiben zur Verfügung steht, muss beschrieben werden und aus jedem Socket, der zum Lesen verfügbar ist, muss gelesen werden.

  • Bei Schreib/Leseoperationen auf den Sockets in den Arrays müssen Sie damit rechnen, dass nicht notwendigerweise alle Daten geschrieben/gelesen werden, die Sie angeben. Seien Sie darauf vorbereitet, dass Sie möglicherweise nur ein einziges Byte schreiben/lesen können.

  • Fast allen Socket-Implementierungen ist gemeinsam, dass sie nur eine einzige Ausnahme in dem except Array auffangen können. Dies ist, wenn mehr Daten ankommen, als der Socket lesen kann.

See also
socket_read(),
socket_write(),
socket_last_error() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_recvmsg | Nach oben | socket_send


socket_send

(PHP 4 >= 4.1.0, PHP 5)

socket_send -- Sendet Daten an einen verbundenen Socket

Beschreibung

int socket_send ( resource socket, string buf, int len, int flags)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_select | Nach oben | socket_sendmsg


socket_sendmsg

(PHP 4 >= 4.1.0)

socket_sendmsg -- Sendet eine Nachricht an einen Socket, egal ob dieser verbindungsorientiert ist oder nicht.

Beschreibung

bool socket_sendmsg ( resource socket, resource iovec, int flags, string addr [, int port])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_send | Nach oben | socket_sendto


socket_sendto

(PHP 4 >= 4.1.0, PHP 5)

socket_sendto -- Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht.

Beschreibung

int socket_sendto ( resource socket, string buf, int len, int flags, string addr [, int port])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_sendmsg | Nach oben | socket_set_block


socket_set_block

(PHP 4 >= 4.2.0, PHP 5)

socket_set_block -- Sets blocking mode on a socket resource

Description

bool socket_set_block ( resource socket)

The socket_set_block() function removes the O_NONBLOCK flag on the socket specified by the socket parameter.

Beispiel 1. socket_set_block() example

<?php

$port = 9090;
if (!$socket = socket_create_listen($port)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_nonblock($socket)) { // $socket is now nonblocking
    echo socket_strerror(socket_last_error());
}

if (!socket_set_block($socket)) {     // $socket is now blocking
    echo socket_strerror(socket_last_error());
}

?>

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also socket_set_nonblock() and socket_set_option()

Zurück | Zum Anfang | Nach vorne
socket_sendto | Nach oben | socket_set_nonblock


socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5)

socket_set_nonblock -- Setzt den nonblocking-Modus für den Datei-Deskriptor fd.

Beschreibung

bool socket_set_nonblock ( resource socket)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_set_block | Nach oben | socket_set_option


socket_set_option

(PHP 4 >= 4.3.0, PHP 5)

socket_set_option -- Setzt die Socket-Optionen für einen Socket

Beschreibung

bool socket_set_option ( resource socket, int level, int optname, int )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: Diese Funktion entspricht socket_setopt() in den PHP Versionen vor PHP 4.3.0.

Zurück | Zum Anfang | Nach vorne
socket_set_nonblock | Nach oben | socket_shutdown


socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdown -- Fährt einen Socket zum Empfangen oder zum Senden oder zu beidem, herunter.

Beschreibung

bool socket_shutdown ( resource socket [, int how])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_set_option | Nach oben | socket_strerror


socket_strerror

(PHP 4 >= 4.1.0, PHP 5)

socket_strerror -- Gibt einen String zurück, der einen socket-Fehler beschreibt.

Beschreibung

string socket_strerror ( int errno)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

socket_strerror() nimmt als Parameter errno den Rückgabewert von socket_last_error() entgegen und gibt seinerseits den entsprechenden Erklärungstext aus. Das macht die Fehlersuche ein wenig einfacher. Zum Beispiel, anstatt eine Include-Datei des Systems zu durchsuchen, was der Fehlercode -111 bedeutet, kann man den Code an die Funktion socket_strerror() übergeben und erhält Aufschluss über die internen Abläufe.

Beispiel 1. socket_strerror() example

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, 0))) {
   echo "socket_create() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error()) . "\n";
}

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>

Die erwartete Ausgabe des obigen Beispiels (vorausgesetzt, das Skript wird nicht mit root- Benutzerrrechten ausgeführt) ist:
socket_bind() fehlgeschlagen: Grund: Permission denied

Siehe auch
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen() und
socket_create().

Zurück | Zum Anfang | Nach vorne
socket_shutdown | Nach oben | socket_write


socket_write

(PHP 4 >= 4.1.0, PHP 5)

socket_write -- Schreibt in den Socket

Beschreibung

int socket_write ( resource socket, string buffer [, int length])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Die Funktion socket_write() schreibt aus dem Puffer buffer in den Socket socket.

Mit dem optionalen Parameter length kann man alternativ eine Anzahl von Bytes angeben, die in den Socket geschrieben wrden sollen. Falls diese Anzahl größer ist, als der Puffer, wird sie stillschweigend auf die Puffergröße gekürzt.

Gibt die Anzahl der erfolgreich in den Socket geschriebenen Bytes zurück oder FALSE, falls ein Fehler aufgetreten ist. Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Anmerkung: socket_write() schreibt nicht notwendigerweise alle Bytes aus dem angegebenen Puffer. Es ist auch möglich, dass, abhängig von den Puffern im Netzwerk usw., nur eine bestimmte Datenmenge, sogar auch nur ein Byte, geschrieben wird, obwohl der Puffer größer ist. Dies müssen Sie beobachten, nicht dass Sie unabsichtlich vergessen, den Rest Ihrer Daten zu senden.

Anmerkung: Es durchaus möglich, dass socket_write() 0 zurückgibt, was bedeutet, dass kein einziges Byte geschrieben wurde. Vergewissern Sie sich, dass Sie den === Operator benutzen, um im Falle eines Fehlers auf FALSE zu testen.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_read() und
socket_strerror().

Zurück | Zum Anfang | Nach vorne
socket_strerror | Nach oben | socket_writev


socket_writev

(PHP 4 >= 4.1.0)

socket_writev -- Schreibt in einen Datei-Deskriptor fd, unter Benutzung des scatter-gather Arrays, das von iovec_id definiert wird.

Beschreibung

bool socket_writev ( resource socket, resource iovec_id)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
socket_write | Nach oben | Standard PHP Library (SPL) Functions


Standard PHP Library (SPL) Functions

PHP Handbuch
Zurück Nach vorne

CIV. Standard PHP Library (SPL) Functions

Einführung

SPL is a collection of interfaces and classes that are meant to solve standard problems.

Installation

This extension is available and compiled by default in PHP 5.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

RIT_LEAVES_ONLY (integer)

RIT_SELF_FIRST (integer)

RIT_CHILD_FIRST (integer)

CIT_CALL_TOSTRING (integer)

CIT_CATCH_GET_CHILD (integer)

Inhaltsverzeichnis
ArrayIterator::current -- Return current array entry
ArrayIterator::key -- Return current array key
ArrayIterator::next -- Move to next entry
ArrayIterator::rewind -- Rewind array back to the start
ArrayIterator::seek -- Seek to position
ArrayIterator::valid -- Check whether array contains more entries
ArrayObject::append -- Appends the value
ArrayObject::__construct -- Construct a new array object
ArrayObject::getIterator -- Create a new iterator from an ArrayObject instance
DirectoryIterator::__construct -- Constructs a new dir iterator from a path.
DirectoryIterator::current -- Return this (needed for Iterator interface)
DirectoryIterator::fileATime -- Get last access time of file
DirectoryIterator::fileCTime -- Get inode modification time of file
DirectoryIterator::fileGroup -- Get file group
DirectoryIterator::fileInode -- Get file inode
DirectoryIterator::fileMTime -- Get last modification time of file
DirectoryIterator::fileOwner -- Get file owner
DirectoryIterator::filePerms -- Get file permissions
DirectoryIterator::fileSize -- Get file size
DirectoryIterator::fileType -- Get file type
DirectoryIterator::getFilename -- Return filename of current dir entry
DirectoryIterator::getPath -- Return directory path
DirectoryIterator::getPathname -- Return path and filename of current dir entry
DirectoryIterator::hasMore -- Check whether dir contains more entries
DirectoryIterator::isDir -- Returns true if file is directory
DirectoryIterator::isDot -- Returns true if current entry is '.' or '..'
DirectoryIterator::isExecutable -- Returns true if file is executable
DirectoryIterator::isFile -- Returns true if file is a regular file
DirectoryIterator::isLink -- Returns true if file is symbolic link
DirectoryIterator::isReadable -- Returns true if file can be read
DirectoryIterator::isWritable -- Returns true if file can be written
DirectoryIterator::key -- Return current dir entry
DirectoryIterator::next -- Move to next entry
DirectoryIterator::rewind -- Rewind dir back to the start
RecursiveDirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory
RecursiveDirectoryIterator::hasChildren -- Returns whether current entry is a directory and not '.' or '..'
RecursiveDirectoryIterator::key -- Return path and filename of current dir entry
RecursiveDirectoryIterator::next -- Move to next entry
RecursiveDirectoryIterator::rewind -- Rewind dir back to the start
SimpleXMLIterator::current -- Return current SimpleXML entry
SimpleXMLIterator::getChildren -- Returns an iterator for the current entry if it is a SimpleXML object
SimpleXMLIterator::hasChildren -- Returns whether current entry is a SimpleXML object
SimpleXMLIterator::key -- Return current SimpleXML key
SimpleXMLIterator::next -- Move to next entry
SimpleXMLIterator::rewind -- Rewind SimpleXML back to the start
SimpleXMLIterator::valid -- Check whether SimpleXML contains more entries

Zurück | Zum Anfang | Nach vorne
socket_writev | Nach oben | ArrayIterator::current


ArrayIterator::current

(no version information, might be only in CVS)

ArrayIterator::current -- Return current array entry

Description

mixed ArrayIterator::current ( void )

This function returns the current array entry

Beispiel 1. ArrayIterator::current() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

for($iterator = $arrayobject->getIterator();
    $iterator->valid();
    $iterator->next()) {

    echo $iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>

The above example will output:

1 => one
2 => two
3 => three

Zurück | Zum Anfang | Nach vorne
Standard PHP Library (SPL) Functions | Nach oben | ArrayIterator::key


ArrayIterator::key

(no version information, might be only in CVS)

ArrayIterator::key -- Return current array key

Description

mixed ArrayIterator::key ( void )

This function returns the current array key

Beispiel 1. ArrayIterator::key() example

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>

Zurück | Zum Anfang | Nach vorne
ArrayIterator::current | Nach oben | ArrayIterator::next


ArrayIterator::next

(no version information, might be only in CVS)

ArrayIterator::next -- Move to next entry

Description

void ArrayIterator::next ( void )

This function moves the iterator to the next entry.

Beispiel 1. ArrayIterator::next() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

The above example will output:

0 => zero
1 => one

Zurück | Zum Anfang | Nach vorne
ArrayIterator::key | Nach oben | ArrayIterator::rewind


ArrayIterator::rewind

(no version information, might be only in CVS)

ArrayIterator::rewind -- Rewind array back to the start

Description

void ArrayIterator::rewind ( void )

This function rewinds the iterator to the begining.

Beispiel 1. ArrayObject::rewind() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';
$arrayobject[] = 'two';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //rewinding to the begining
echo $iterator->key(); //0
?>

Zurück | Zum Anfang | Nach vorne
ArrayIterator::next | Nach oben | ArrayIterator::seek


ArrayIterator::seek

(no version information, might be only in CVS)

ArrayIterator::seek -- Seek to position

Description

bool ArrayIterator::seek ( int position)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ArrayIterator::rewind | Nach oben | ArrayIterator::valid


ArrayIterator::valid

(no version information, might be only in CVS)

ArrayIterator::valid -- Check whether array contains more entries

Description

bool ArrayIterator::valid ( void )

This function checks if the array contains any more entries.

Beispiel 1. ArrayIterator::valid() example

<?php
$array = array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // advance to the next item

//bool(false) because there is only one array element
var_dump($iterator->valid());
?>

Zurück | Zum Anfang | Nach vorne
ArrayIterator::seek | Nach oben | ArrayObject::append


ArrayObject::append

(no version information, might be only in CVS)

ArrayObject::append -- Appends the value

Description

bool ArrayObject::append ( mixed newval)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ArrayIterator::valid | Nach oben | ArrayObject::__construct


ArrayObject::__construct

(no version information, might be only in CVS)

ArrayObject::__construct -- Construct a new array object

Description

void ArrayObject::__construct ( mixed input)

This constructs a new array object. The input parameter accepts an array or another ArrayObject.

Beispiel 1. ArrayObject::__construct() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

The above example will output:

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

Zurück | Zum Anfang | Nach vorne
ArrayObject::append | Nach oben | ArrayObject::getIterator


ArrayObject::getIterator

(no version information, might be only in CVS)

ArrayObject::getIterator -- Create a new iterator from an ArrayObject instance

Description

ArrayIterator ArrayObject::getIterator ( void )

This function will return an iterator from an ArrayObject.

Beispiel 1. ArrayObject::getIterator() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

The above example will output:

1 => one
2 => two
3 => three

Zurück | Zum Anfang | Nach vorne
ArrayObject::__construct | Nach oben | DirectoryIterator::__construct


DirectoryIterator::__construct

(no version information, might be only in CVS)

DirectoryIterator::__construct -- Constructs a new dir iterator from a path.

Description

void DirectoryIterator::__construct ( string path)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ArrayObject::getIterator | Nach oben | DirectoryIterator::current


DirectoryIterator::current

(no version information, might be only in CVS)

DirectoryIterator::current -- Return this (needed for Iterator interface)

Description

DirectoryIterator DirectoryIterator::current ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::__construct | Nach oben | DirectoryIterator::fileATime


DirectoryIterator::fileATime

(no version information, might be only in CVS)

DirectoryIterator::fileATime -- Get last access time of file

Description

int DirectoryIterator::fileATime ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::current | Nach oben | DirectoryIterator::fileCTime


DirectoryIterator::fileCTime

(no version information, might be only in CVS)

DirectoryIterator::fileCTime -- Get inode modification time of file

Description

int DirectoryIterator::fileCTime ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::fileATime | Nach oben | DirectoryIterator::fileGroup


DirectoryIterator::fileGroup

(no version information, might be only in CVS)

DirectoryIterator::fileGroup -- Get file group

Description

int DirectoryIterator::fileGroup ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::fileCTime | Nach oben | DirectoryIterator::fileInode


DirectoryIterator::fileInode

(no version information, might be only in CVS)

DirectoryIterator::fileInode -- Get file inode

Description

int DirectoryIterator::fileInode ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::fileGroup | Nach oben | DirectoryIterator::fileMTime


DirectoryIterator::fileMTime

(no version information, might be only in CVS)

DirectoryIterator::fileMTime -- Get last modification time of file

Description

int DirectoryIterator::fileMTime ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::fileInode | Nach oben | DirectoryIterator::fileOwner


DirectoryIterator::fileOwner

(no version information, might be only in CVS)

DirectoryIterator::fileOwner -- Get file owner

Description

int DirectoryIterator::fileOwner ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::fileMTime | Nach oben | DirectoryIterator::filePerms


DirectoryIterator::filePerms

(no version information, might be only in CVS)

DirectoryIterator::filePerms -- Get file permissions

Description

int DirectoryIterator::filePerms ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::fileOwner | Nach oben | DirectoryIterator::fileSize


DirectoryIterator::fileSize

(no version information, might be only in CVS)

DirectoryIterator::fileSize -- Get file size

Description

int DirectoryIterator::fileSize ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::filePerms | Nach oben | DirectoryIterator::fileType


DirectoryIterator::fileType

(no version information, might be only in CVS)

DirectoryIterator::fileType -- Get file type

Description

string DirectoryIterator::fileType ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::fileSize | Nach oben | DirectoryIterator::getFilename


DirectoryIterator::getFilename

(no version information, might be only in CVS)

DirectoryIterator::getFilename -- Return filename of current dir entry

Description

string DirectoryIterator::getFilename ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::fileType | Nach oben | DirectoryIterator::getPath


DirectoryIterator::getPath

(no version information, might be only in CVS)

DirectoryIterator::getPath -- Return directory path

Description

string DirectoryIterator::getPath ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::getFilename | Nach oben | DirectoryIterator::getPathname


DirectoryIterator::getPathname

(no version information, might be only in CVS)

DirectoryIterator::getPathname -- Return path and filename of current dir entry

Description

string DirectoryIterator::getPathname ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::getPath | Nach oben | DirectoryIterator::hasMore


DirectoryIterator::hasMore

(no version information, might be only in CVS)

DirectoryIterator::hasMore -- Check whether dir contains more entries

Description

string DirectoryIterator::hasMore ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::getPathname | Nach oben | DirectoryIterator::isDir


DirectoryIterator::isDir

(no version information, might be only in CVS)

DirectoryIterator::isDir -- Returns true if file is directory

Description

bool DirectoryIterator::isDir ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::hasMore | Nach oben | DirectoryIterator::isDot


DirectoryIterator::isDot

(no version information, might be only in CVS)

DirectoryIterator::isDot -- Returns true if current entry is '.' or '..'

Description

bool DirectoryIterator::isDot ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::isDir | Nach oben | DirectoryIterator::isExecutable


DirectoryIterator::isExecutable

(no version information, might be only in CVS)

DirectoryIterator::isExecutable -- Returns true if file is executable

Description

bool DirectoryIterator::isExecutable ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::isDot | Nach oben | DirectoryIterator::isFile


DirectoryIterator::isFile

(no version information, might be only in CVS)

DirectoryIterator::isFile -- Returns true if file is a regular file

Description

bool DirectoryIterator::isFile ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::isExecutable | Nach oben | DirectoryIterator::isLink


DirectoryIterator::isLink

(no version information, might be only in CVS)

DirectoryIterator::isLink -- Returns true if file is symbolic link

Description

bool DirectoryIterator::isLink ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::isFile | Nach oben | DirectoryIterator::isReadable


DirectoryIterator::isReadable

(no version information, might be only in CVS)

DirectoryIterator::isReadable -- Returns true if file can be read

Description

bool DirectoryIterator::isReadable ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::isLink | Nach oben | DirectoryIterator::isWritable


DirectoryIterator::isWritable

(no version information, might be only in CVS)

DirectoryIterator::isWritable -- Returns true if file can be written

Description

bool DirectoryIterator::isWritable ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::isReadable | Nach oben | DirectoryIterator::key


DirectoryIterator::key

(no version information, might be only in CVS)

DirectoryIterator::key -- Return current dir entry

Description

string DirectoryIterator::key ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::isWritable | Nach oben | DirectoryIterator::next


DirectoryIterator::next

(no version information, might be only in CVS)

DirectoryIterator::next -- Move to next entry

Description

void DirectoryIterator::next ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::key | Nach oben | DirectoryIterator::rewind


DirectoryIterator::rewind

(no version information, might be only in CVS)

DirectoryIterator::rewind -- Rewind dir back to the start

Description

void DirectoryIterator::rewind ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::next | Nach oben | RecursiveDirectoryIterator::getChildren


RecursiveDirectoryIterator::getChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory

Description

object RecursiveDirectoryIterator::getChildren ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
DirectoryIterator::rewind | Nach oben | RecursiveDirectoryIterator::hasChildren


RecursiveDirectoryIterator::hasChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::hasChildren -- Returns whether current entry is a directory and not '.' or '..'

Description

bool RecursiveDirectoryIterator::hasChildren ( [bool $allow_links [, = false]])

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
RecursiveDirectoryIterator::getChildren | Nach oben | RecursiveDirectoryIterator::key


RecursiveDirectoryIterator::key

(no version information, might be only in CVS)

RecursiveDirectoryIterator::key -- Return path and filename of current dir entry

Description

string RecursiveDirectoryIterator::key ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
RecursiveDirectoryIterator::hasChildren | Nach oben | RecursiveDirectoryIterator::next


RecursiveDirectoryIterator::next

(no version information, might be only in CVS)

RecursiveDirectoryIterator::next -- Move to next entry

Description

void RecursiveDirectoryIterator::next ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
RecursiveDirectoryIterator::key | Nach oben | RecursiveDirectoryIterator::rewind


RecursiveDirectoryIterator::rewind

(no version information, might be only in CVS)

RecursiveDirectoryIterator::rewind -- Rewind dir back to the start

Description

void RecursiveDirectoryIterator::rewind ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
RecursiveDirectoryIterator::next | Nach oben | SimpleXMLIterator::current


SimpleXMLIterator::current

(no version information, might be only in CVS)

SimpleXMLIterator::current -- Return current SimpleXML entry

Description

mixed SimpleXMLIterator::current ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
RecursiveDirectoryIterator::rewind | Nach oben | SimpleXMLIterator::getChildren


SimpleXMLIterator::getChildren

(no version information, might be only in CVS)

SimpleXMLIterator::getChildren -- Returns an iterator for the current entry if it is a SimpleXML object

Description

object SimpleXMLIterator::getChildren ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
SimpleXMLIterator::current | Nach oben | SimpleXMLIterator::hasChildren


SimpleXMLIterator::hasChildren

(no version information, might be only in CVS)

SimpleXMLIterator::hasChildren -- Returns whether current entry is a SimpleXML object

Description

bool SimpleXMLIterator::hasChildren ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
SimpleXMLIterator::getChildren | Nach oben | SimpleXMLIterator::key


SimpleXMLIterator::key

(no version information, might be only in CVS)

SimpleXMLIterator::key -- Return current SimpleXML key

Description

mixed SimpleXMLIterator::key ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
SimpleXMLIterator::hasChildren | Nach oben | SimpleXMLIterator::next


SimpleXMLIterator::next

(no version information, might be only in CVS)

SimpleXMLIterator::next -- Move to next entry

Description

void SimpleXMLIterator::next ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
SimpleXMLIterator::key | Nach oben | SimpleXMLIterator::rewind


SimpleXMLIterator::rewind

(no version information, might be only in CVS)

SimpleXMLIterator::rewind -- Rewind SimpleXML back to the start

Description

void SimpleXMLIterator::rewind ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
SimpleXMLIterator::next | Nach oben | SimpleXMLIterator::valid


SimpleXMLIterator::valid

(no version information, might be only in CVS)

SimpleXMLIterator::valid -- Check whether SimpleXML contains more entries

Description

bool SimpleXMLIterator::valid ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
SimpleXMLIterator::rewind | Nach oben | Stream Functions


Stream Functions

PHP Handbuch
Zurück Nach vorne

CV. Stream Functions

Einführung

Streams were introduced with PHP 4.3.0 as a way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary locations within the stream.

A wrapper is additional code which tells the stream how to handle specific protocols/encodings. For example, the http wrapper knows how to translate a URL into an HTTP/1.0 request for a file on a remote server. There are many wrappers built into PHP by default (See Anhang J), and additional, custom wrappers may be added either within a PHP script using stream_wrapper_register(), or directly from an extension using the API Reference in Kapitel 43. Because any variety of wrapper may be added to PHP, there is no set limit on what can be done with them. To access the list of currently registered wrappers, use stream_get_wrappers().

A stream is referenced as: scheme://target

  • scheme(string) - The name of the wrapper to be used. Examples include: file, http, https, ftp, ftps, compress.zlib, compress.bz2, and php. See Anhang J for a list of PHP builtin wrappers. If no wrapper is specified, the function default is used (typically file://).

  • target - Depends on the wrapper used. For filesystem related streams this is typically a path and filename of the desired file. For network related streams this is typically a hostname, often with a path appended. Again, see Anhang J for a description of targets for builtin streams.

Stream Filters

A filter is a final piece of code which may perform operations on data as it is being read from or written to a stream. Any number of filters may be stacked onto a stream. Custom filters can be defined in a PHP script using stream_filter_register() or in an extension using the API Reference in Kapitel 43. To access the list of currently registered filters, use stream_get_filters().

Stream Contexts

A context is a set of parameters and wrapper specific options which modify or enhance the behavior of a stream. Contexts are created using stream_context_create() and can be passed to most filesystem related stream creation functions (i.e. fopen(), file(), file_get_contents(), etc...).

Options can be specified when calling stream_context_create(), or later using stream_context_set_option(). A list of wrapper specific options can be found with the list of built-in wrappers (See Anhang J).

In addition, parameters may be set on a context using stream_context_set_params(). Currently the only context parameter supported by PHP is notification. The value of this parameter must be the name of a function to be called when an event occurs on a stream. The notification function called during an event should accept the following six parameters:

void my_notifier ( int notification_code, int severity, string message, int message_code, int bytes_transferred, int bytes_max)

notification_code and severity are numerical values which correspond to the STREAM_NOTIFY_* constants listed below. If a descriptive message is available from the stream, message and message_code will be populated with the appropriate values. The meaning of these values is dependent on the specific wrapper in use. bytes_transferred and bytes_max will be populated when applicable.

Installation

Streams are an integral part of PHP as of version 4.3.0. No steps are required to enable them.

Stream Classes

User designed wrappers can be registered via stream_wrapper_register(), using the class definition shown on that manual page.

class php_user_filter is predefined and is an abstract baseclass for use with user defined filters. See the manual page for stream_filter_register() for details on implementing user defined filters.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Constant | Description
STREAM_FILTER_READ | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when reading
STREAM_FILTER_WRITE | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when writing
STREAM_FILTER_ALL | This constant is equivalent to STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON | Return Code indicating that the userspace filter returned buckets in $out.
PSFS_FEED_ME | Return Code indicating that the userspace filter did not return buckets in $out (i.e. No data available).
PSFS_ERR_FATAL | Return Code indicating that the userspace filter encountered an unrecoverable error (i.e. Invalid data received).
STREAM_USE_PATH | Flag indicating if the stream used the include path.
STREAM_REPORT_ERRORS | Flag indicating if the wrapper is responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.
STREAM_CLIENT_ASYNC_CONNECT | Open client socket asynchronously. Used with stream_socket_client().
STREAM_CLIENT_PERSISTENT | Client socket opened with stream_socket_client() should remain persistent between page loads.
STREAM_SERVER_BIND | Tells a stream created with stream_socket_server() to bind to the specified target. Server sockets should always include this flag.
STREAM_SERVER_LISTEN | Tells a stream created with stream_socket_server() and bound using the STREAM_SERVER_BIND flag to start listening on the socket. Server sockets should always include this flag.
STREAM_NOTIFY_RESOLVE | A remote address required for this stream has been resolved, or the resolution failed. See severity for an indication of which happened.
STREAM_NOTIFY_CONNECT | A connection with an external resource has been established.
STREAM_NOTIFY_AUTH_REQUIRED | Additional authorization is required to access the specified resource. Typical issued with severity level of STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | The mime-type of resource has been identified, refer to message for a description of the discovered type.
STREAM_NOTIFY_FILE_SIZE_IS | The size of the resource has been discovered.
STREAM_NOTIFY_REDIRECTED | The external resource has redirected the stream to an alternate location. Refer to message.
STREAM_NOTIFY_PROGRESS | Indicates current progress of the stream transfer in bytes_transferred and possibly bytes_max as well.
STREAM_NOTIFY_COMPLETED | There is no more data available on the stream.
STREAM_NOTIFY_FAILURE | A generic error occurred on the stream, consult message and message_code for details.
STREAM_NOTIFY_AUTH_RESULT | Authorization has been completed (with or without success).
STREAM_NOTIFY_SEVERITY_INFO | Normal, non-error related, notification.
STREAM_NOTIFY_SEVERITY_WARN | Non critical error condition. Processing may continue.
STREAM_NOTIFY_SEVERITY_ERR | A critical error occurred. Processing cannot continue.

Stream Errors

As with any file or socket related function, an operation on a stream may fail for a variety of normal reasons (i.e.: Unable to connect to remote host, file not found, etc...). A stream related call may also fail because the desired stream is not registered on the running system. See the array returned by stream_get_wrappers() for a list of streams supported by your installation of PHP. As with most PHP internal functions if a failure occurs an E_WARNING message will be generated describing the nature of the error.

Beispiele

Beispiel 1. Using file_get_contents() to retrieve data from multiple sources

<?php
/* Read local file from /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* Identical to above, explicitly naming FILE scheme */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Read remote file from www.example.com using HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Read remote file from www.example.com using HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Beispiel 2. Making a POST request to an https server

<?php
/* Send POST request to https://secure.example.com/form_action.php
* Include form elements named "foo" and "bar" with dummy values
*/

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");

fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, "$data\r\n");
fwrite($sock, "\r\n");

$headers = "";
while ($str = trim(fgets($sock, 4096)))
  $headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
  $body .= fgets($sock, 4096);

fclose($sock);
?>

Beispiel 3. Writing data to a compressed file

<?php
/* Create a compressed file containing an arbitrarty string
* File can be read back using compress.zlib stream or just
* decompressed from the command line using 'gzip -d foo-bar.txt.gz'
*/
$fp = fopen("compress.zlib://foo-bar.txt.gz", "wb");
if (!$fp) die("Unable to create file.");

fwrite($fp, "This is a test.\n");

fclose($fp);
?>

Inhaltsverzeichnis
stream_context_create -- Create a streams context
stream_context_get_options -- Retrieve options for a stream/wrapper/context
stream_context_set_option -- Sets an option for a stream/wrapper/context
stream_context_set_params -- Set parameters for a stream/wrapper/context
stream_copy_to_stream -- Copies data from one stream to another
stream_filter_append -- Attach a filter to a stream.
stream_filter_prepend -- Attach a filter to a stream.
stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter
stream_get_contents -- Reads remainder of a stream into a string
stream_get_filters -- Retrieve list of registered filters
stream_get_line -- Gets line from stream resource up to a given delimiter
stream_get_meta_data -- Retrieves header/meta data from streams/file pointers
stream_get_transports -- Retrieve list of registered socket transports
stream_get_wrappers -- Retrieve list of registered streams
stream_register_wrapper -- Alias of stream_wrapper_register()
stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
stream_set_blocking -- Set blocking/non-blocking mode on a stream
stream_set_timeout -- Set timeout period on a stream
stream_set_write_buffer -- Sets file buffering on the given stream
stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()
stream_socket_client -- Open Internet or Unix domain socket connection
stream_socket_get_name -- Retrieve the name of the local or remote sockets
stream_socket_recvfrom -- Receives data from a socket, connected or not
stream_socket_sendto -- Sends a message to a socket, whether it is connected or not
stream_socket_server -- Create an Internet or Unix domain server socket
stream_wrapper_register -- Register a URL wrapper implemented as a PHP class

Zurück | Zum Anfang | Nach vorne
SimpleXMLIterator::valid | Nach oben | stream_context_create


stream_context_create

(PHP 4 >= 4.3.0, PHP 5)

stream_context_create -- Create a streams context

Description

resource stream_context_create ( array options)

Creates and returns a stream context with any options supplied in options preset.

options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Beispiel 1. Using stream_context_create()

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Sends an http request to www.example.com
   with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

See Also: stream_context_set_option(), and Listing of supported wrappers with context options (Anhang J)

Zurück | Zum Anfang | Nach vorne
Stream Functions | Nach oben | stream_context_get_options


stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5)

stream_context_get_options -- Retrieve options for a stream/wrapper/context

Description

array stream_context_get_options ( resource stream|context)

Returns an array of options on the specified stream or context.

Zurück | Zum Anfang | Nach vorne
stream_context_create | Nach oben | stream_context_set_option


stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_option -- Sets an option for a stream/wrapper/context

Description

bool stream_context_set_option ( resource context|stream, string wrapper, string option, mixed value)

Sets an option on the specified context. value is set to option for wrapper

Zurück | Zum Anfang | Nach vorne
stream_context_get_options | Nach oben | stream_context_set_params


stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_params -- Set parameters for a stream/wrapper/context

Description

bool stream_context_set_params ( resource stream|context, array params)

params should be an associative array of the structure: $params['paramname'] = "paramvalue";.

Tabelle 1. Parameters

Parameters | Purpose
notification | Name of user-defined callback function to be called whenever a stream triggers a notification.

Zurück | Zum Anfang | Nach vorne
stream_context_set_option | Nach oben | stream_copy_to_stream


stream_copy_to_stream

(PHP 5)

stream_copy_to_stream -- Copies data from one stream to another

Description

int stream_copy_to_stream ( resource source, resource dest [, int maxlength])

Makes a copy of up to maxlength bytes of data from the current position in source to dest. If maxlength is not specified, all remaining content in source will be copied. Returns the total count of bytes copied.

Beispiel 1. stream_copy_to_stream() example

<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');

echo stream_copy_to_stream($src, $dest1, 1024) . " bytes copied to first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " bytes copied to remainder.txt\n";

?>

See also copy().

Zurück | Zum Anfang | Nach vorne
stream_context_set_params | Nach oben | stream_filter_append


stream_filter_append

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_append -- Attach a filter to a stream.

Description

bool stream_filter_append ( resource stream, string filtername [, int read_write [, mixed params]])

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the end of the list and will therefore be called last during stream operations. To add a filter to the beginning of the list, use stream_filter_prepend().

By default, stream_filter_append() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior.

Beispiel 1. Controlling where filters are applied

<?php
/* Open a test file for reading and writing */
$fp = fopen("test.txt", "rw");

/* Apply the ROT13 filter to the
* write filter chain, but not the
* read filter chain */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Write a simple string to the file
* it will be ROT13 transformed on the
* way out */
fwrite($fp, "This is a test\n");

/* Back up to the beginning of the file */
rewind($fp);

/* Read the contents of the file back out.
* Had the filter been applied to the
* read filter chain as well, we would see
* the text ROT13ed back to its original state */
fpassthru($fp);

fclose($fp);

/* Expected Output
   ---------------

Guvf vf n grfg

*/
?>

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

Anmerkung: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is appended to a stream, data in the internal buffers is processed through the new filter at that time. This differs from the behavior of stream_filter_prepend().

See also stream_filter_register(), and stream_filter_prepend()

Zurück | Zum Anfang | Nach vorne
stream_copy_to_stream | Nach oben | stream_filter_prepend


stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_prepend -- Attach a filter to a stream.

Description

bool stream_filter_prepend ( resource stream, string filtername [, int read_write [, mixed params]])

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the beginning of the list and will therefore be called first during stream operations. To add a filter to the end of the list, use stream_filter_append().

By default, stream_filter_prepend() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior. See stream_filter_append() for an example of using this parameter.

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

Anmerkung: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is prepended to a stream, data in the internal buffers, which has already been processed through other filters will not be reprocessed through the new filter at that time. This differs from the behavior of stream_filter_append().

See also stream_filter_register(), and stream_filter_append()

Zurück | Zum Anfang | Nach vorne
stream_filter_append | Nach oben | stream_filter_register


stream_filter_register

(PHP 5)

stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter

Description

bool stream_filter_register ( string filtername, string classname)

stream_filter_register() allows you to implement your own filter on any registered stream used with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a filter, you need to define a class as an extension of php_user_filter with a number of member functions as defined below. When performing read/write operations on the stream to which your filter is attached, PHP will pass the data through your filter (and any other filters attached to that stream) so that the data may be modified as desired. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

stream_filter_register() will return FALSE if the filtername is already defined.

int filter ( resource in, resource out, int &consumed, bool closing)

This method is called whenever data is read from or written to the attached stream (such as with fread() or fwrite()). in is a resource pointing to a bucket brigade which contains one or more bucket objects containing data to be filtered. out is a resource pointing to a second bucket brigade into which your modified buckets should be placed. consumed, which must always be declared by reference, should be incremented by the length of the data which your filter reads in and alters. In most cases this means you will increment consumed by $bucket->datalen for each $bucket. If the stream is in the process of closing (and therefore this is the last pass through the filterchain), the closing parameter will be set to TRUE The filter method must return one of three values upon completion.

Return Value | Meaning
PSFS_PASS_ON | Filter processed successfully with data available in the out bucket brigade.
PSFS_FEED_ME | Filter processed successfully, however no data was available to return. More data is required from the stream or prior filter.
PSFS_ERR_FATAL (default) | The filter experienced an unrecoverable error and cannot continue.

void onCreate ( void )

This method is called during instantiation of the filter class object. If your filter allocates or initializes any other resources (such as a buffer), this is the place to do it. Your implementation of this method should return FALSE on failure, or TRUE on success.

When your filter is first instantiated, and yourfilter->onCreate() is called, a number of properties will be available as shown in the table below.

Property | Contents
FilterClass->filtername | A string containing the name the filter was instantiated with. Filters may be registered under multiple names or under wildcards. Use this property to determine which name was used.
FilterClass->params | The contents of the params parameter passed to stream_filter_append() or stream_filter_prepend().

void onClose ( void )

This method is called upon filter shutdown (typically, this is also during stream shutdown), and is executed after the flush method is called. If any resources were allocated or initialzed during onCreate this would be the time to destroy or dispose of them.

The example below implements a filter named strtoupper on the foo-bar.txt stream which will capitalize all letter characters written to/read from that stream.

Beispiel 1. Filter for capitalizing characters on foo-bar.txt stream

<?php

/* Define our filter class */
class strtoupper_filter extends php_user_filter {
  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $bucket->data = strtoupper($bucket->data);
      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }
}

/* Register our filter with PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
*/
readfile("foo-bar.txt");

?>

Output

LINE1
WORD - 2
EASY AS 123

Beispiel 2. Registering a generic filter class to match multiple filter names.

<?php

/* Define our filter class */
class string_filter extends php_user_filter {
  var $mode;

  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      if ($this->mode == 1) {
        $bucket->data = strtoupper($bucket->data);
      } elseif ($this->mode == 0) {
        $bucket->data = strtolower($bucket->data);
      }

      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }

  function onCreate()
  {
    if ($this->filtername == 'str.toupper') {
      $this->mode = 1;
    } elseif ($this->filtername == 'str.tolower') {
      $this->mode = 0;
    } else {
      /* Some other str.* filter was asked for,
         report failure so that PHP will keep looking */
      return false;
    }

    return true;
  }
}

/* Register our filter with PHP */
stream_filter_register("str.*", "string_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened
   We could alternately bind to str.tolower here */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
*/
readfile("foo-bar.txt");

/* Output
* ------

LINE1
WORD - 2
EASY AS 123

*/

?>

See Also:
stream_wrapper_register(),
stream_filter_prepend(), and
stream_filter_append()

Zurück | Zum Anfang | Nach vorne
stream_filter_prepend | Nach oben | stream_get_contents


stream_get_contents

(PHP 5)

stream_get_contents -- Reads remainder of a stream into a string

Description

string stream_get_contents ( resource handle [, int maxlength])

Identical to file_get_contents(), except that stream_get_contents() operates on an already open file resource and returns the remaining contents, up to maxlength bytes, in a string.

Anmerkung: Diese Funktion ist binary safe.

See also:
fgets(),
fread(), and
fpassthru().

Zurück | Zum Anfang | Nach vorne
stream_filter_register | Nach oben | stream_get_filters


stream_get_filters

(PHP 5)

stream_get_filters -- Retrieve list of registered filters

Description

array stream_get_filters ( void )

Returns an indexed array containing the name of all stream filters available on the running system.

Beispiel 1. Using stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

Output will be similar to the following Note: there may be more or fewer filters in your version of PHP.

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

See also stream_filter_register(), and stream_get_wrappers()

Zurück | Zum Anfang | Nach vorne
stream_get_contents | Nach oben | stream_get_line


stream_get_line

(PHP 5)

stream_get_line -- Gets line from stream resource up to a given delimiter

Description

string stream_get_line ( resource handle, int length, string ending)

Returns a string of up to length bytes read from the file pointed to by handle. Reading ends when length bytes have been read, when the string specified by ending is found (which is not included in the return value), or on EOF (whichever comes first).

If an error occurs, returns FALSE.

This function is nearly identical to fgets() except in that it allows end of line delimiters other than the standard \n, \r, and \r\n, and does not return the delimiter itself.

See also fread(),
fgets(), and
fgetc(),

Zurück | Zum Anfang | Nach vorne
stream_get_filters | Nach oben | stream_get_meta_data


stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5)

stream_get_meta_data -- Retrieves header/meta data from streams/file pointers

Description

array stream_get_meta_data ( resource stream)

Returns information about an existing stream. The stream can be any stream created by fopen(), fsockopen() and pfsockopen(). The result array contains the following items:

  • timed_out (bool) - TRUE if the stream timed out while waiting for data on the last call to fread() or fgets().

  • blocked (bool) - TRUE if the stream is in blocking IO mode. See stream_set_blocking().

  • eof (bool) - TRUE if the stream has reached end-of-file. Note that for socket streams this member can be TRUE even when unread_bytes is non-zero. To determine if there is more data to be read, use feof() instead of reading this item.

  • unread_bytes (int) - the number of bytes currently contained in the read buffer.

The following items were added in PHP 4.3:

  • stream_type (string) - a label describing the underlying implementation of the stream.

  • wrapper_type (string) - a label describing the protocol wrapper implementation layered over the stream. See Anhang J for more information about wrappers.

  • wrapper_data (mixed) - wrapper specific data attached to this stream. See Anhang J for more information about wrappers and their wrapper data.

  • filters (array) - and array containing the names of any filters that have been stacked onto this stream. Filters are currently undocumented.

Anmerkung: This function was introduced in PHP 4.3, but prior to this version, socket_get_status() could be used to retrieve the first four items, for socket based streams only.

In PHP 4.3 and later, socket_get_status() is an alias for this function.

Anmerkung: This function does NOT work on sockets created by the Socket extension.

The following items were added in PHP 5.0:

  • mode (string) - the mode (or permissions) of the URI associated with this stream.

  • seakable (bool) - whether the current stream can be seeked in.

  • uri (string) - the URI/filename associated with this stream.

Zurück | Zum Anfang | Nach vorne
stream_get_line | Nach oben | stream_get_transports


stream_get_transports

(PHP 5)

stream_get_transports -- Retrieve list of registered socket transports

Description

array stream_get_transports ( void )

Returns an indexed array containing the name of all socket transports available on the running system.

Beispiel 1. Using stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

Output will be similar to the following Note: there may be more or fewer transports in your version of PHP

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)

See also stream_get_filters(), and stream_get_wrappers()

Zurück | Zum Anfang | Nach vorne
stream_get_meta_data | Nach oben | stream_get_wrappers


stream_get_wrappers

(PHP 5)

stream_get_wrappers -- Retrieve list of registered streams

Description

array stream_get_wrappers ( void )

Returns an indexed array containing the name of all stream wrappers available on the running system.

See also stream_wrapper_register()

Zurück | Zum Anfang | Nach vorne
stream_get_transports | Nach oben | stream_register_wrapper


stream_register_wrapper

stream_register_wrapper -- Alias of stream_wrapper_register()

Description

This function is an alias of stream_wrapper_register(). This function is included for compatability with PHP 4.3.0 and PHP 4.3.1 only. stream_wrapper_register() should be used instead.

Zurück | Zum Anfang | Nach vorne
stream_get_wrappers | Nach oben | stream_select


stream_select

(PHP 4 >= 4.3.0, PHP 5)

stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

Description

int stream_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec])

The stream_select() function accepts arrays of streams and waits for them to change status. Its operation is equivalent to that of the socket_select() function except in that it acts on streams.

The streams listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a stream resource is also ready on end-of-file, in which case an fread() will return a zero length string).

The streams listed in the write array will be watched to see if a write will not block.

The streams listed in the except array will be watched for high priority exceptional ("out-of-band") data arriving.

Anmerkung: When stream_select() returns, the arrays read, write and except are modified to indicate which stream resource(s) actually changed status.

The tv_sec and tv_usec together form the timeout parameter, tv_sec specifies the number of seconds while tv_usec the number of microseconds. The timeout is an upper bound on the amount of time that stream_select() will wait before it returns. If tv_sec and tv_usec are both set to 0, stream_select() will not wait for data - instead it will return immediately, indicating the current status of the streams. If tv_sec is NULL stream_select() can block indefinitely, returning only when an event on one of the watched streams occurs (or if a signal interrupts the system call).

On success stream_select() returns the number of stream resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned and a warning raised (this can happen if the system call is interrupted by an incoming signal).

Warnung

Using a timeout value of 0 allows you to instantaneously poll the status of the streams, however, it is NOT a good idea to use a 0 timeout value in a loop as it will cause your script to consume too much CPU time.

It is much better to specify a timeout value of a few seconds, although if you need to be checking and running other code concurrently, using a timeout value of at least 200000 microseconds will help reduce the CPU usage of your script.

Remember that the timeout value is the maximum time that will elapse; stream_select() will return as soon as the requested streams are ready for use.

You do not need to pass every array to stream_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after stream_select() returns.

This example checks to see if data has arrived for reading on either $stream1 or $stream2. Since the timeout value is 0 it will return immediately:
<?php
/* Prepare the read array */
$read = array($stream1, $stream2);

if (false === ($num_changed_streams = stream_select($read, $write = NULL, $except = NULL, 0))) {
    /* Error handling */
} elseif ($num_changed_streams > 0) {
    /* At least on one of the streams something interesting happened */
}
?>

Anmerkung: Due to a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:
<?php
stream_select($r, $w, $e = NULL, 0);
?>

Anmerkung: Be sure to use the === operator when checking for an error. Since the stream_select() may return 0 the comparison with == would evaluate to TRUE:
<?php
if (false === stream_select($r, $w, $e = NULL, 0)) {
    echo "stream_select() failed\n";
}
?>

Anmerkung: If you read/write to a stream returned in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

Windows 98 Note: stream_select() used on a pipe returned from proc_open() may cause data loss under Windows 98.

See also stream_set_blocking()

Zurück | Zum Anfang | Nach vorne
stream_register_wrapper | Nach oben | stream_set_blocking


stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5)

stream_set_blocking -- Set blocking/non-blocking mode on a stream

Description

bool stream_set_blocking ( resource stream, int mode)

If mode is FALSE, the given stream will be switched to non-blocking mode, and if TRUE, it will be switched to blocking mode. This affects calls like fgets() and fread() that read from the stream. In non-blocking mode an fgets() call will always return right away while in blocking mode it will wait for data to become available on the stream.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

This function was previously called as set_socket_blocking() and later socket_set_blocking() but this usage is deprecated.

Anmerkung: Prior to PHP 4.3, this function only worked on socket based streams. Since PHP 4.3, this function works for any stream that supports non-blocking mode (currently, regular files and socket streams).

See also stream_select().

Zurück | Zum Anfang | Nach vorne
stream_select | Nach oben | stream_set_timeout


stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5)

stream_set_timeout -- Set timeout period on a stream

Description

bool stream_set_timeout ( resource stream, int seconds [, int microseconds])

Sets the timeout value on stream, expressed in the sum of seconds and microseconds. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Beispiel 1. stream_set_timeout() example

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
    echo "Unable to open\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\n\n");
    stream_set_timeout($fp, 2);
    $res = fread($fp, 2000);
    var_dump(stream_get_meta_data($fp));
    fclose($fp);
    echo $res;
}
?>

Anmerkung: As of PHP 4.3, this function can (potentially) work on any kind of stream. In PHP 4.3, socket based streams are still the only kind supported in the PHP core, although streams from other extensions may support this function.

This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.

See also: fsockopen() and fopen().

Zurück | Zum Anfang | Nach vorne
stream_set_blocking | Nach oben | stream_set_write_buffer


stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5)

stream_set_write_buffer -- Sets file buffering on the given stream

Description

int stream_set_write_buffer ( resource stream, int buffer)

Output using fwrite() is normally buffered at 8K. This means that if there are two processes wanting to write to the same output stream (a file), each is paused after 8K of data to allow the other to write. stream_set_write_buffer() sets the buffering for write operations on the given filepointer stream to buffer bytes. If buffer is 0 then write operations are unbuffered. This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.

The function returns 0 on success, or EOF if the request cannot be honored.

The following example demonstrates how to use stream_set_write_buffer() to create an unbuffered stream.

Beispiel 1. stream_set_write_buffer() example

<?php
$fp = fopen($file, "w");
if ($fp) {
  stream_set_write_buffer($fp, 0);
  fwrite($fp, $output);
  fclose($fp);
}
?>

See also fopen() and fwrite().

Zurück | Zum Anfang | Nach vorne
stream_set_timeout | Nach oben | stream_socket_accept


stream_socket_accept

(PHP 5)

stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()

Description

resource stream_socket_accept ( resource server_socket [, int timeout [, string &peername]])

Accept a connection on a socket previously created by stream_socket_server(). If timeout is specified, the default socket accept timeout will be overridden with the time specified in seconds. The name (address) of the client which connected will be passed back in peername if included and available from the selected transport.

peername can also be determined later using stream_socket_get_name().

If the call fails, it will return FALSE.

See also stream_socket_server(),
stream_socket_get_name(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

Zurück | Zum Anfang | Nach vorne
stream_set_write_buffer | Nach oben | stream_socket_client


stream_socket_client

(PHP 5)

stream_socket_client -- Open Internet or Unix domain socket connection

Description

resource stream_socket_client ( string remote_socket [, int &errno [, string &errstr [, float timeout [, int flags [, resource context]]]]])

Initiates a stream or datagram connection to the destination specified by remote_socket. The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem. The optional timeout can be used to set a timeout in seconds for the connect system call. flags is a bitmask field which may be set to any combination of connection flags. Currently the selection of connection flags is limited to STREAM_CLIENT_ASYNC_CONNECT and STREAM_CLIENT_PERSISTENT.

Anmerkung: If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to stream_socket_client() only applies while connecting the socket.

stream_socket_client() returns a
stream resource which may
be used together with the other file functions (such as
fgets(), fgetss(),
fwrite(), fclose(), and
feof()).

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, the Unix domain or the optional connect timeout may not be available. A list of available transports can be retrieved using stream_get_transports(). See Anhang L for a list of built in transports.

The stream will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

Beispiel 1. stream_socket_client() Example

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}
?>
The example below shows how to retrieve the day and time from the UDP service "daytime" (port 13) in your own machine.

Beispiel 2. Using UDP connection

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Warnung

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Anmerkung: When specifying a numerical IPv6 address (e.g. fe80::1) you must enclose the IP in square brackets. For example, tcp://[fe80::1]:80.

See also stream_socket_server(), stream_set_blocking(), stream_set_timeout(), stream_select(), fgets(), fgetss(), fwrite(), fclose(), feof(), and the Curl extension.

Zurück | Zum Anfang | Nach vorne
stream_socket_accept | Nach oben | stream_socket_get_name


stream_socket_get_name

(PHP 5)

stream_socket_get_name -- Retrieve the name of the local or remote sockets

Description

string stream_socket_get_name ( resource handle, bool want_peer)

Returns the local or remote name of a given socket connection. If want_peer is set to TRUE the remote socket name will be returned, if it is set to FALSE the local socket name will be returned.

See also stream_socket_accept()

Zurück | Zum Anfang | Nach vorne
stream_socket_client | Nach oben | stream_socket_recvfrom


stream_socket_recvfrom

(PHP 5)

stream_socket_recvfrom -- Receives data from a socket, connected or not

Description

string stream_socket_recvfrom ( resource socket, int length [, int flags [, string &address]])

The function stream_socket_recvfrom() accepts data from a remote socket up to length bytes. If address is provided it will be populated with the address of the remote socket.

The value of flags can be any combination of the following:

Tabelle 1. possible values for flags

STREAM_OOB | Process OOB (out-of-band) data.
STREAM_PEEK | Retrieve data from the socket, but do not consume the buffer. Subsequent calls to fread() or stream_socket_recvfrom() will see the same data.

Beispiel 1. stream_socket_recvfrom() Example

<?php
/* Open a server socket to port 1234 on localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Accept a connection */
$socket = stream_socket_accept($server);

/* Grab a packet (1500 is a typical MTU size) of OOB data */
echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Take a peek at the normal in-band data, but don't comsume it. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Get the exact same packet again, but remove it from the buffer this time. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Close it up */
fclose($socket);
fclose($server);
?>

See also
stream_socket_sendto(),
stream_socket_client(), and
stream_socket_server().

Zurück | Zum Anfang | Nach vorne
stream_socket_get_name | Nach oben | stream_socket_sendto


stream_socket_sendto

(PHP 5)

stream_socket_sendto -- Sends a message to a socket, whether it is connected or not

Description

int stream_socket_sendto ( resource socket, string data [, int flags [, string address]])

The function stream_socket_sendto() sends the data specified by data through the socket specified by socket. The address specified when the socket stream was created will be used unless an alternate address is specified in address.

The value of flags can be any combination of the following:

Tabelle 1. possible values for flags

STREAM_OOB Process OOB (out-of-band) data.

Beispiel 1. stream_socket_sendto() Example

<?php
/* Open a socket to port 1234 on localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Send ordinary data via ordinary channels. */
fwrite($socket, "Normal data transmit.");

/* Send more data out of band. */
stream_socket_sendto($socket, "Out of Band data.", STREAM_OOB);

/* Close it up */
fclose($socket);
?>

See also
stream_socket_recvfrom(),
stream_socket_client(), and
stream_socket_server().

Zurück | Zum Anfang | Nach vorne
stream_socket_recvfrom | Nach oben | stream_socket_server


stream_socket_server

(PHP 5)

stream_socket_server -- Create an Internet or Unix domain server socket

Description

resource stream_socket_server ( string local_socket [, int &errno [, string &errstr [, int flags [, resource context]]]])

Creates a stream or datagram socket on the specified local_socket. The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem. flags is a bitmask field which may be set to any combination of socket creation flags. The default value of flags is STREAM_SERVER_BIND | STREAM_SERVER_LISTEN.

This function only creates a socket, to begin accepting connections use stream_socket_accept().

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level socket(), bind(), and listen() calls. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the bind() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, Unix domain sockets may not be available. A list of available transports can be retrieved using stream_get_transports(). See Anhang L for a list of bulitin transports.

Beispiel 1. stream_socket_server() Example

<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

The example below shows how to act as a time server which can respond to time queries as shown in an example on stream_socket_client().

Anmerkung: Most systems require root access to create a server socket on a port below 1024.

Beispiel 2. Using UDP server sockets

<?php
$socket = stream_socket_server("udp://0.0.0.0:13", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, date("D M j H:i:s Y\r\n"));
    fclose($conn);
  }
  fclose($socket);
}
?>

Anmerkung: When specifying a numerical IPv6 address (e.g. fe80::1) you must enclose the IP in square brackets. For example, tcp://[fe80::1]:80.

See also stream_socket_client(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

Zurück | Zum Anfang | Nach vorne
stream_socket_sendto | Nach oben | stream_wrapper_register


stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5)

stream_wrapper_register -- Register a URL wrapper implemented as a PHP class

Description

bool stream_wrapper_register ( string protocol, string classname)

stream_wrapper_register() allows you to implement your own protocol handlers and streams for use with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a wrapper, you need to define a class with a number of member functions, as defined below. When someone fopens your stream, PHP will create an instance of classname and then call methods on that instance. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

Anmerkung: As of PHP 5.0.0 the instance of classname will be populated with a context property referencing a Context Resource which may be accessed with stream_context_get_options(). If no context was passed to the stream creation function, context will be set to NULL.

stream_wrapper_register() will return FALSE if the protocol already has a handler.

bool stream_open ( string path, string mode, int options, string opened_path)

This method is called immediately after your stream object is created. path specifies the URL that was passed to fopen() and that this object is expected to retrieve. You can use parse_url() to break it apart.

mode is the mode used to open the file, as detailed for fopen(). You are responsible for checking that mode is valid for the path requested.

options holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_USE_PATH | If path is relative, search for the resource using the include_path.
STREAM_REPORT_ERRORS | If this flag is set, you are responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.

If the path is opened successfully, and STREAM_USE_PATH is set in options, you should set opened_path to the full path of the file/resource that was actually opened.

If the requested resource was opened successfully, you should return TRUE, otherwise you should return FALSE

void stream_close ( void )

This method is called when the stream is closed, using fclose(). You must release any resources that were locked or allocated by the stream.

string stream_read ( int count)

This method is called in response to fread() and fgets() calls on the stream. You must return up-to count bytes of data from the current read/write position as a string. If there are less than count bytes available, return as many as are available. If no more data is available, return either FALSE or an empty string. You must also update the read/write position of the stream by the number of bytes that were successfully read.

int stream_write ( string data)

This method is called in response to fwrite() calls on the stream. You should store data into the underlying storage used by your stream. If there is not enough room, try to store as many bytes as possible. You should return the number of bytes that were successfully stored in the stream, or 0 if none could be stored. You must also update the read/write position of the stream by the number of bytes that were successfully written.

bool stream_eof ( void )

This method is called in response to feof() calls on the stream. You should return TRUE if the read/write position is at the end of the stream and if no more data is available to be read, or FALSE otherwise.

int stream_tell ( void )

This method is called in response to ftell() calls on the stream. You should return the current read/write position of the stream.

bool stream_seek ( int offset, int whence)

This method is called in response to fseek() calls on the stream. You should update the read/write position of the stream according to offset and whence. See fseek() for more information about these parameters. Return TRUE if the position was updated, FALSE otherwise.

bool stream_flush ( void )

This method is called in response to fflush() calls on the stream. If you have cached data in your stream but not yet stored it into the underlying storage, you should do so now. Return TRUE if the cached data was successfully stored (or if there was no data to store), or FALSE if the data could not be stored.

array stream_stat ( void )

This method is called in response to fstat() calls on the stream and should return an array containing the same values as appropriate for the stream.

bool unlink ( string path)

This method is called in response to unlink() calls on URL paths associated with the wrapper and should attempt to delete the item specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support unlinking.

Anmerkung: Userspace wrapper unlink method is not supported prior to PHP 5.0.0.

bool rename ( string path_from, string path_to)

This method is called in response to rename() calls on URL paths associated with the wrapper and should attempt to rename the item specified by path_from to the specification given by path_to. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support renaming.

Anmerkung: Userspace wrapper rename method is not supported prior to PHP 5.0.0.

bool mkdir ( string path, int mode, int options)

This method is called in response to mkdir() calls on URL paths associated with the wrapper and should attempt to create the directory specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support creating directories. Posible values for options include STREAM_REPORT_ERRORS and STREAM_MKDIR_RECURSIVE.

Anmerkung: Userspace wrapper mkdir method is not supported prior to PHP 5.0.0.

bool rmdir ( string path, int options)

This method is called in response to rmdir() calls on URL paths associated with the wrapper and should attempt to remove the directory specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support removing directories. Possible values for options include STREAM_REPORT_ERRORS.

Anmerkung: Userspace wrapper rmdir method is not supported prior to PHP 5.0.0.

bool dir_opendir ( string path, int options)

This method is called immediately when your stream object is created for examining directory contents with opendir(). path specifies the URL that was passed to opendir() and that this object is expected to explore. You can use parse_url() to break it apart.

array url_stat ( string path, int flags)

This method is called in response to stat() calls on the URL paths associated with the wrapper and should return as many elements in common with the system function as possible. Unknown or unavailable values should be set to a rational value (usually 0).

flags holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_URL_STAT_LINK | For resources with the ability to link to other resource (such as an HTTP Location: forward, or a filesystem symlink). This flag specified that only information about the link itself should be returned, not the resource pointed to by the link. This flag is set in response to calls to lstat(), is_link(), or filetype().
STREAM_URL_STAT_QUIET | If this flag is set, your wrapper should not raise any errors. If this flag is not set, you are responsible for reporting errors using the trigger_error() function during stating of the path.

string dir_readdir ( void )

This method is called in response to readdir() and should return a string representing the next filename in the location opened by dir_opendir().

bool dir_rewinddir ( void )

This method is called in response to rewinddir() and should reset the output generated by dir_readdir(). i.e.: The next call to dir_readdir() should return the first entry in the location returned by dir_opendir().

bool dir_closedir ( void )

This method is called in response to closedir(). You should release any resources which were locked or allocated during the opening and use of the directory stream.

The example below implements a var:// protocol handler that allows read/write access to a named global variable using standard filesystem stream functions such as fread(). The var:// protocol implemented below, given the URL "var://foo" will read/write data to/from $GLOBALS["foo"].

Beispiel 1. A Stream for reading/writing global variables

<?php

class VariableStream {
    var $position;
    var $varname;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $url = parse_url($path);
        $this->varname = $url["host"];
        $this->position = 0;

        return true;
    }

    function stream_read($count)
    {
        $ret = substr($GLOBALS[$this->varname], $this->position, $count);
        $this->position += strlen($ret);
        return $ret;
    }

    function stream_write($data)
    {
        $left = substr($GLOBALS[$this->varname], 0, $this->position);
        $right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
        $GLOBALS[$this->varname] = $left . $data . $right;
        $this->position += strlen($data);
        return strlen($data);
    }

    function stream_tell()
    {
        return $this->position;
    }

    function stream_eof()
    {
        return $this->position >= strlen($GLOBALS[$this->varname]);
    }

    function stream_seek($offset, $whence)
    {
        switch ($whence) {
            case SEEK_SET:
                if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     $this->position = $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_CUR:
                if ($offset >= 0) {
                     $this->position += $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_END:
                if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     $this->position = strlen($GLOBALS[$this->varname]) + $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            default:
                return false;
        }
    }
}

stream_wrapper_register("var", "VariableStream")
    or die("Failed to register protocol");

$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

?>

Zurück | Zum Anfang | Nach vorne
stream_socket_server | Nach oben | String-Funktionen


String-Funktionen

PHP Handbuch
Zurück Nach vorne

CVI. String-Funktionen

Einführung

Mit diesen Funktionen werden Strings (Zeichenketten) auf verschiedene Arten verändert. Spezielle Anwendungen können in den Abschnitten zu regulären Ausdrücken (regular expression) und der URL-Handhabung gefunden werden.

Informationen zur Funktionsweise von Strings (insbesondere beim Gebrauch von einfachen bzw. doppelten Anführungszeichen und Escape-Sequenzen) erhalten Sie unter dem Strings-Eintrag im Kapitel Typen des Manuals.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Siehe auch

Schauen Sie sich die POSIX-Funktionen und die Perl-kompatiblen Funktionen für reguläre Ausdrücke an, wenn Sie noch mächtigere Funktionen zur String-Verarbeitung nutzen möchten.

Inhaltsverzeichnis
addcslashes -- Stellt Zeichen eines Strings ein "\" voran (wie in C)
addslashes -- Stellt bestimmten Zeichen eines Strings einen Backslash "\" (Rückstrich) voran
bin2hex -- Wandelt Binär-Daten in ihre hexadezimale Entsprechung um
chop -- Entfernt Leerzeichen, Tabulatoren und Zeilenvorschübe am String-Ende
chr -- Gibt ein einzelnes Zeichen zurück
chunk_split -- Zerlegt einen String in Teile gleicher Länge
convert_cyr_string -- Setzt Strings von einem kyrillischen Zeichensatz in einen anderen um
count_chars -- Gibt Informationen über die in einem String enthaltenen Zeichen zurück
crc32 -- Berechnet den polynomischen CRC32-Wert eines Strings
crypt -- DES-Verschlüsselung eines Strings
echo -- Gibt einen oder mehrere Strings aus
explode -- Zerteilt einen String anhand eines Trennzeichens
fprintf -- Write a formatted string to a stream
get_html_translation_table -- Gibt die Übersetzungs-Tabelle zurück, die von htmlspecialchars() und htmlentities() benutzt wird
hebrev -- Konvertiert (natürlichen) hebräischen Text in sichtbaren Text
hebrevc -- Konvertiert (natürlichen) hebräischen Text in sichtbaren Text incl. Anpassung von Zeilenumbrüchen
html_entity_decode -- Convert all HTML entities to their applicable characters
htmlentities -- Wandelt alle Sonderzeichen in entsprechende HTML-Codes um
htmlspecialchars -- Wandelt Sonderzeichen in HTML-Codes um
implode -- Verbindet Array-Elemente zu einem String
join -- Join verbindet Array-Elemente zu einem String
levenshtein -- Berechnet den Levenshtein-Unterschied zweier Strings
localeconv -- Get numeric formatting information
ltrim -- Entfernt führende Leerraum eines Strings
md5_file -- Calculates the md5 hash of a given filename
md5 -- Errechnet den MD5-Code eines Strings
metaphone -- Berechnet den metaphone-Schlüssel eines Strings
money_format -- Formats a number as a currency string
nl_langinfo -- Query language and locale information
nl2br -- Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
number_format -- Format a number with grouped thousands
ord -- Gibt den ASCII-Wert eines Zeichens zurück
parse_str -- Überträgt einen String in Variable
print -- Ausgabe eines Strings
printf -- Gibt einen formatierten String aus
quoted_printable_decode -- Konvertiert einen "quoted-printable"-String in einen 8-Bit-String
quotemeta -- Quoten von Meta-Zeichen
rtrim -- Entfernt Leerzeichen am String-Ende
setlocale -- Setzt lokale Informationen
sha1_file -- Calculate the sha1 hash of a file
sha1 -- Calculate the sha1 hash of a string
similar_text -- Berechnet die Ähnlichkeit zweier Zeichenketten
soundex -- Berechnet die Laut-Ähnlichkeit eines Strings
sprintf -- Gibt einen formatierten String zurück
sscanf -- Überträgt einen String in ein angegebenes Format
str_ireplace -- Case-insensitive version of str_replace().
str_pad -- Erweitert einen String auf eine bestimmte Länge unter Verwendung eines anderen Strings
str_repeat -- Wiederholt eine String-Ausgabe
str_replace -- Ersetzt alle Vorkommen eines Strings in einem anderen String
str_rot13 -- Perform the rot13 transform on a string
str_shuffle -- Randomly shuffles a string
str_split -- Convert a string to an array
str_word_count -- Gibt Informationen über Worte in einem String zurück
strcasecmp -- Binärer Vergleich von Zeichenketten
strchr -- Sucht erstes Vorkommen des gesuchten Zeichens und liefert den Reststring
strcmp -- Binärer Vergleich zweier Strings
strcoll -- Locale based string comparison
strcspn -- Ermittelt die Anzahl der nicht übereinstimmenden Zeichen
strip_tags -- Entfernt HTML- und PHP-Tags aus einem String
stripcslashes -- Umkehrung / Gegenstück zu addcslashes
stripos -- Find position of first occurrence of a case-insensitive string
stripslashes -- Umkehrung / Gegenstück zu addslashes
stristr -- Wie strstr(), aber ohne Rücksicht auf Groß- bzw. Kleinschreibung
strlen -- Ermitteln der String-Länge
strnatcasecmp -- String-Vergleich "natürlicher Ordnung" ohne Unterscheidung der Schreibweise
strnatcmp -- String-Vergleich unter Verwendung einer "natürlichen Ordnung"
strncasecmp -- Binary safe case-insensitive string comparison of the first n characters
strncmp -- Binary safe string comparison of the first n characters
strpos -- Sucht erstes Vorkommen des Suchstrings und liefert die Position
strrchr -- Sucht letztes Vorkommen des gesuchten Zeichens und liefert den Reststring
strrev -- Umdrehen eines Strings
strripos -- Find position of last occurrence of a case-insensitive string in a string
strrpos -- Sucht letztes Vorkommen des gesuchten Zeichens und liefert die Position
strspn -- Ermittelt die Länge der übereinstimmenden Zeichen
strstr -- Sucht erstes Vorkommen des Suchstrings und liefert den Reststring
strtok -- Zerlegt einen String
strtolower -- Setzt einen String in Kleinbuchstaben um
strtoupper -- Setzt einen String in Großbuchstaben um
strtr -- Tauscht bestimmte Zeichen aus
substr_compare -- Binary safe optionally case insensitive comparison of 2 strings from an offset, up to length characters
substr_count -- Ermittelt, wie oft eine Zeichenkette in einem String vorkommt
substr_replace -- Ersetzt Text in einer Zeichenkette
substr -- Gibt einen Teil eines Strings zurück
trim -- Entfernt überflüssige Zeichen ("whitespace") am Anfang und Ende eines Strings
ucfirst -- Setzt das erste Zeichen eines Strings als Großbuchstabe um
ucwords -- Setzt die ersten Buchstaben aller Wörter eines Strings in die entsprechenden Großbuchstaben um
vprintf -- Output a formatted string
vsprintf -- Return a formatted string
wordwrap -- Bricht die Zeilen eines Strings nach einer bestimmten Anzahl Zeichen mittels des angegebenen Trennzeichens um.

Zurück | Zum Anfang | Nach vorne
stream_wrapper_register | Nach oben | addcslashes


addcslashes

(PHP 4 , PHP 5)

addcslashes -- Stellt Zeichen eines Strings ein "\" voran (wie in C)

Beschreibung:

string addcslashes ( string str, string charlist)

Es wird ein String zurück gegeben, in dem jedem Zeichen, das in charlist steht, ein "\" voran gestellt wurde. Teile wie \n, \r etc. werden wie in C übergangen, ASCII-Zeichen kleiner als 32 und grösser als 126 werden in ihren oktal-Wert umgesetzt. Seien Sie bei der Umsetzung von alphanumerischen Zeichen vorsichtig. Sie können in charlist einen Bereich wie "\0..\37" angeben. Dadurch wird allen ASCII-Zeichen von 0 bis 31 ein "\" voran gestellt.

Beispiel 1. addcslashes() Beispiel:

$escaped = addcslashes ($not_escaped, "\0..\37!@\177..\377");

Anmerkung: Diese Funktion ist ab Version PHP4b3-dev verfügbar.

Siehe auch stripcslashes(),
stripslashes(),
htmlspecialchars(),
htmlspecialchars() und
quotemeta().

Zurück | Zum Anfang | Nach vorne
String-Funktionen | Nach oben | addslashes


addslashes

(PHP 3, PHP 4 , PHP 5)

addslashes -- Stellt bestimmten Zeichen eines Strings einen Backslash "\" (Rückstrich) voran

Beschreibung:

string addslashes ( string str)

Gibt einen String (Zeichenkette) zurück, in dem bestimmten Zeichen ein Backslash "\" voran gestellt wurde. Diese Funktion ist z.B. für Datenbankabfragen wichtig. Die behandelten Zeichen sind der einfache und der doppelte Anführungsstrich (' und "), der Rückstrich (\) selbst sowie NUL (das Null-Byte).

Siehe auch stripslashes(),
htmlspecialchars() und
quotemeta().

Zurück | Zum Anfang | Nach vorne
addcslashes | Nach oben | bin2hex


bin2hex

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

bin2hex -- Wandelt Binär-Daten in ihre hexadezimale Entsprechung um

Beschreibung:

string bin2hex ( string str)

Es wird ein ASCII-String mit der hexadezimalen Wiedergabe des Parameters str zurück gegeben. Die Umwandlung geschieht byteweise mit dem höchsten Anteil (4 Bit, "high-nibble") zuerst.

Zurück | Zum Anfang | Nach vorne
addslashes | Nach oben | chop


chop

(PHP 3, PHP 4 , PHP 5)

chop -- Entfernt Leerzeichen, Tabulatoren und Zeilenvorschübe am String-Ende

Beschreibung:

string chop ( string str)

Gibt die in str enthaltene Zeichenkette ohne evtl. vorhandene Leerzeichen, Tabulatoren oder Zeilenvorschübe am String-Ende zurück.

Beispiel 1. chop()-Beispiel:

$string = "10 Leerzeichen am String-Ende          ";
echo chop($string)."?";

// Die Ausgabe lautet:
10 Leerzeichen am String-Ende?

Anmerkung: chop() unterscheidet sich von der Perl-Funktion chop(), die das letzte Zeichen eines Strings entfernt.

Siehe auch trim(), ltrim() und rtrim().

Zurück | Zum Anfang | Nach vorne
bin2hex | Nach oben | chr


chr

(PHP 3, PHP 4 , PHP 5)

chr -- Gibt ein einzelnes Zeichen zurück

Beschreibung:

string chr ( int ascii)

Gibt einen 1-Zeichen-String zurück, der dem mit ascii angegebenem Zeichen entspricht.

Beispiel 1. chr() Beispiel:

$str .= chr (27); /* fügt an das Ende von $str ein Escape-Zeichen an */

/* Oft wird diese Funktionalität gebraucht */

$str = sprintf ("Dieser String endet mit einem Escape: %c", 27);
Diese Funktion ergänzt ord(). Siehe auch sprintf() mit dem Formatierungs-String %c.

Zurück | Zum Anfang | Nach vorne
chop | Nach oben | chunk_split


chunk_split

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

chunk_split -- Zerlegt einen String in Teile gleicher Länge

Beschreibung

string chunk_split ( string body [, int chunklen [, string end]])

Kann für die Aufteilung eines Strings in kleinere Stücke verwendet werden. Dies ist z.B. hilfreich bei der Umwandlung von base64_encode-Ausgaben, die der RFC 2045 entsprechen müssen. Diese Funktion fügt nach per chunklen angegebene Zeichen (Vorgabe: alle 76 Zeichen) den mittels end angegebenen String (Vorgabe ist hierfür "\r\n") ein. Die Funktion gibt den neuen String zurück. Die Original-Zeichenkette bleibt unverändert.

Beispiel 1. chunk_split() Beispiel:

# Formatiere den String $daten in die RFC 2045 Schreibweise

$neuer_string = chunk_split(base64_encode($daten));

Siehe auch explode(), split() wordwrap() und RFC 2045.

Zurück | Zum Anfang | Nach vorne
chr | Nach oben | convert_cyr_string


convert_cyr_string

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

convert_cyr_string -- Setzt Strings von einem kyrillischen Zeichensatz in einen anderen um

Beschreibung:

string convert_cyr_string ( string str, string from, string to)

Diese Funktion konvertiert den angegebenen String von einem kyrillischen Zeichensatz in einen anderen. Die Argumente from und to sind einzelne Zeichen die den Ausgangs- und Zielzeichensatz definieren. Die unterstützten Zeichensätze sind:

  • k - koi8-r

  • w - windows-1251

  • i - iso8859-5

  • a - x-cp866

  • d - x-cp866

  • m - x-mac-cyrillic

Zurück | Zum Anfang | Nach vorne
chunk_split | Nach oben | count_chars


count_chars

(PHP 4 , PHP 5)

count_chars -- Gibt Informationen über die in einem String enthaltenen Zeichen zurück

Beschreibung

mixed count_chars ( string string [, int mode])

Zählt die Häufigkeit des Vorkommens jedes einzelnen Byte-Wertes (0..255) in string und gibt sie auf verschiedene Arten zurück. Der optionale Parameter mode ist auf 0 voreingestellt. Abhängig von mode gibt count_chars() folgendes zurück:

  • 0 - ein Array mit den Byte-Werten als Schlüssel und deren Häufigkeit jedes Bytes als Wert.

  • 1 - wie 0, allerdings werden nur Byte-Werte mit einer Häufigkeit grösser 0 aufgelistet.

  • 2 - wie 0, allerdings werden nur Byte-Werte mit einer Häufigkeit von 0 aufgelistet.

  • 3 - einen String der alle vorkommenden Zeichen enthält.

  • 4 - einen String der alle nicht vorkommenden Zeichen enthält.

Siehe auch strpos() und substr_count().

Zurück | Zum Anfang | Nach vorne
convert_cyr_string | Nach oben | crc32


crc32

(PHP 4 >= 4.0.1, PHP 5)

crc32 -- Berechnet den polynomischen CRC32-Wert eines Strings

Beschreibung

int crc32 ( string str)

Berechnet die zyklisch redundante polynomische Prüfsumme mit einer Länge von 32-Bit für str. Dies wird gewöhnlich für die Integritätsprüfung übermittelter Daten verwendet.

Anmerkung: Da der Datentyp Integer von PHP vorzeichenbehaftet ('signed') ist und viele Prüfsummen negative Interger-Werte ergeben, müssen Sie die Formatierungsanweisung "%u" von sprintf() oder printf() verwenden, um die String-Repräsentation der nicht vorzeichenbehafteten ('unsigned') crc32 Prüfsumme zu erhalten.

Das folgende Beispiel zeigt, wie eine konvertierte Prüfsumme mittels der Funktion printf() ausgegeben wird:

Beispiel 1. Anzeigen einer crc32 Prüfsumme

<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog.");
printf("%u\n", $checksum);
?>

Siehe auch md5().

Zurück | Zum Anfang | Nach vorne
count_chars | Nach oben | crypt


crypt

(PHP 3, PHP 4 , PHP 5)

crypt -- DES-Verschlüsselung eines Strings

Beschreibung:

string crypt ( string str [, string salt])

crypt() verschlüsselt einen String unter Verwendung der Standard-DES-Verschlüsselungs-Methode von Unix. Die zu übergebenden Argumente sind der zu verschlüsselnde String und optional ein 2-Zeichen-Salt-String, der die Schlüsselbasis bildet. Lesen Sie die Man-Pages ihres Unix-Systems für mehr Informationen zu den Crypt-Funktionen.

Ist kein Salt-Argument angegeben, wird es von PHP nach dem Zufalls-Prinzip erzeugt.

Einige Betriebssystem unterstützen mehr als eine Methode zur Verschlüsselung. So wird manchmal der DES- durch einen MD5-Algorithmus ersetzt. Der verwendete Schlüssel wird durch das Salt-Argument bestimmt. Zur Installations-Zeit untersucht PHP die vorhandenen Möglichkeiten und wird, abhängig vom Ergebnis dieser Prüfung, auch andere Schlüssel-Typen zulassen. Wird kein Salt unterstützt, erzeugt PHP per Voreinstellung einen 2-Zeichen DES-Salt, es sei denn auf ihrem System existiert MD5. Dann wird PHP einen zufälligen MD5-Salt generieren. PHP erzeugt eine Konstante namens CRYPT_SALT_LENGTH. Diese besagt, ob ihr System ein reguläres 2-Zeichen Salt oder das längere 12-Zeichen MD5-Salt unterstützt.

Wenn Sie das gegebene Salt benutzen, sollten Sie beachten, dass dieser Wert nur einmal bestimmt wird. Rufen Sie diese Funktion nun rekursiv auf, beeinflusst das nicht nur das Ergebnis, sondern unter Umständen auch die Sicherheit.

Die Standard-DES-Verschlüsselung crypt() enthält das Salt als erste 2 Zeichen der Ausgabe.

Auf Systemen, wo die crypt()-Funktion meherere Verschlüsselungen unterstützt, werden die folgenden Konstanten auf 0 oder 1 gesetzt, je nachdem, ob der entsprechende Typ verfügbar ist:

  • CRYPT_STD_DES - Standard DES-Schlüssel mit 2-Zeichen Salt

  • CRYPT_EXT_DES - Erweiterter DES-Schlüssel mit einem 9-Zeichen Salt

  • CRYPT_MD5 - MD5-Schlüssel mit 12-Zeichen Salt, beginnend mit $1$

  • CRYPT_BLOWFISH - Erweiterter DES-Schlüssel, 16-Zeichen Salt, beginnend mit $2$

Der veschlüsselte String kann nicht entschlüsselt werden, da crypt() eine Einweg-Verschlüsselung ist.

Siehe auch: md5().

Zurück | Zum Anfang | Nach vorne
crc32 | Nach oben | echo


echo

(PHP 3, PHP 4, PHP 5 )

echo -- Gibt einen oder mehrere Strings aus

Beschreibung

echo ( string arg1 [, string argn...])

Gibt alle als Parameter angegebenen Strings aus.

echo() ist keine Funktion, sondern ein Sprach-Konstrukt. Deshalb brauchen Sie keine Klammern zu verwenden. Wenn Sie echo mehr als einen Parameter übergeben wollen, dürfen Sie diese nicht mit Klammern umgeben. Es ist nicht möglich, echo() in einem Variablen-Funktionen Kontext zu nutzen.

Beispiel 1. echo() examples

<?php
echo "Hallo Welt";

echo "Dies umfasst
mehrere Zeilen. Die Zeilenumbrüche werden
ebenfalls ausgegeben.";

echo "Dies umfasst\nmehrere Zeilen. Die Zeilenumbrüche werden\nebenfalls ausgegeben.";

echo "Escape Zeichen werden \"so realisiert\".";

// Sie können Variablen innerhalb eines echo Statements verwenden
$foo = "foobar";
$bar = "barbaz";

echo "foo ist $foo"; // foo ist foobar

// Einfache Anführungszeichen geben den Variablennamen aus, nicht den Inhalt
echo 'foo is $foo'; // foo is $foo

// Wenn Sie nicht auch andere Zeichen ausgeben,
// können Sie auch nur Variablen verwenden
echo $foo;          // foobar
echo $foo,$bar;     // foobarbarbaz

echo <<<END
Dies verwendet die "here document" Syntax, um mehrere
Zeilen mit $variablen Interpolation auszugeben. Beachten Sie,
dass das sich das here document Endezeichen in einer Zeile
mit nur einem Strichpunkt ohne extra Leerzeichen befinden muss!
END;
// echo ist keine Funktion, weshalb der folgende Code ungültig ist.
($some_var) ? echo('true'): echo('false');

// Aber folgende Beispiele funktionieren:
($some_var) ? print('true'): print('false'); // print ist eine Funktion
echo $some_var ? 'true': 'false'; // Das Statement herumgedreht
?>

echo() kann auch in einer Kurzform verwendet werden, indem Sie unmittelbar nach dem öffnenden Tag ein Gleichheitszeichen setzen.

I have <?=$foo?> foo.

Anmerkung: Diese Kurzform funktioniert nur, wenn die Konfigurationsoption short_open_tag aktiviert ist.

Siehe auch
print(),
printf() und
flush().

Zurück | Zum Anfang | Nach vorne
crypt | Nach oben | explode


explode

(PHP 3, PHP 4 , PHP 5)

explode -- Zerteilt einen String anhand eines Trennzeichens

Beschreibung:

array explode ( string separator, string string [, int limit])

Gibt ein Array aus Strings zurück. Jeder String ist ein Teil von string. Die Trennung erfolgt an der mit separator angegebenen Zeichenkette (ein oder mehrere Zeichen). Ist der Parameter limit angegeben, werden maximal limit Teile zurück gegeben. Das letzte Element enthält dann den ganzen Rest von string.

Beispiel 1. explode()-Beispiel:

$pizza = "Teil1 Teil2 Teil3 Teil4 Teil5 Teil6";
$pieces = explode (" ", $pizza);

Siehe auch split() und implode().

Zurück | Zum Anfang | Nach vorne
echo | Nach oben | fprintf


fprintf

(PHP 5)

fprintf -- Write a formatted string to a stream

Description

int fprintf ( resource handle, string format [, mixed args])

Write a string produced according to the formatting string format to the stream resource specified by handle..

The format string is composed of zero or more directives: ordinary characters (excluding %) that are copied directly to the result, and conversion specifications, each of which results in fetching its own parameter. This applies to fprintf(), sprintf(), and printf().

Each conversion specification consists of a percent sign (%), followed by one or more of these elements, in order:

  1. An optional padding specifier that says what character will be used for padding the results to the right string size. This may be a space character or a 0 (zero character). The default is to pad with spaces. An alternate padding character can be specified by prefixing it with a single quote ('). See the examples below.

  2. An optional alignment specifier that says if the result should be left-justified or right-justified. The default is right-justified; a - character here will make it left-justified.

  3. An optional number, a width specifier that says how many characters (minimum) this conversion should result in.

  4. An optional precision specifier that says how many decimal digits should be displayed for floating-point numbers. This option has no effect for other types than float. (Another function useful for formatting numbers is number_format().)

  5. A type specifier that says what type the argument data should be treated as. Possible types:

    % - a literal percent character. No argument is required.
    b - the argument is treated as an integer, and presented as a binary number.
    c - the argument is treated as an integer, and presented as the character with that ASCII value.
    d - the argument is treated as an integer, and presented as a (signed) decimal number.
    u - the argument is treated as an integer, and presented as an unsigned decimal number.
    f - the argument is treated as a float, and presented as a floating-point number.
    o - the argument is treated as an integer, and presented as an octal number.
    s - the argument is treated as and presented as a string.
    x - the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters).
    X - the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters).

See also: printf(),
sprintf(),
sscanf(), fscanf(),
vsprintf(), and
number_format().

Examples

Beispiel 1. sprintf(): zero-padded integers

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Beispiel 2. sprintf(): formatting currency

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted will output "123.10"
?>

Zurück | Zum Anfang | Nach vorne
explode | Nach oben | get_html_translation_table


get_html_translation_table

(PHP 4 , PHP 5)

get_html_translation_table -- Gibt die Übersetzungs-Tabelle zurück, die von htmlspecialchars() und htmlentities() benutzt wird

Beschreibung

string get_html_translation_table ( int table [, int quote_style])

get_html_translation_table() ermittelt die intern benutzte Übersetzungs-Tabelle, die von den Funktionen htmlspecialchars() und htmlentities() benutzt wird. Es gibt zwei neue Definitionen (HTML_ENTITIES und HTML_SPECIALCHARS), mit denen Sie die gewünschte Tabelle auswählen können. Weiters können Sie wie bei den Funktionen htmlspecialchars() bzw. htmlentities() optional den gewünschten Quote-Stil (die Art, wie mit Anführungszeichen umgegangen wird) angeben. Voreingestellt ist der ENT_COMPAT-Modus. Vergleichen Sie dazu die Modus-Beschreibung unter htmlspecialchars().

Beispiel 1. Beispiel zur Übersetzungs-Tabelle

$trans = get_html_translation_table(HTML_ENTITIES);
$str = "Hallo & <Frau> & Krämer";
$encoded = strtr($str, $trans);
Die Variable $encoded enthält nun: "Hallo &amp; &lt;Frau&gt; &amp; Kr&auml;mer".

Mittels array_flip() können Sie die Richtung der Übersetzung umkehren.

$trans = array_flip($trans);
$original = strtr($encoded, $trans);

Der Inhalt von $original wird "Hallo & <Frau> & Krämer" sein.

Siehe auch htmlspecialchars(),
htmlentities(), strtr()
und array_flip().

Zurück | Zum Anfang | Nach vorne
fprintf | Nach oben | hebrev


hebrev

(PHP 3, PHP 4 , PHP 5)

hebrev -- Konvertiert (natürlichen) hebräischen Text in sichtbaren Text

Beschreibung:

string hebrev ( string hebrew_text [, int max_chars_per_line])

Der optionale Parameter max_chars_per_line entspricht der Zeichenzahl pro Ausgabe-Zeile. Wortbrüche werden, soweit möglich, vermieden.

Siehe auch: hebrevc().

Zurück | Zum Anfang | Nach vorne
get_html_translation_table | Nach oben | hebrevc


hebrevc

(PHP 3, PHP 4 , PHP 5)

hebrevc -- Konvertiert (natürlichen) hebräischen Text in sichtbaren Text incl. Anpassung von Zeilenumbrüchen

Beschreibung:

string hebrevc ( string hebrew_text [, int max_chars_per_line])

Diese Funktion ist gleich hebrev(), mit dem Unterschied, dass Zeilenumbrüche (\n) zu "<br>\n" umgewandelt werden. Der optionale Parameter max_chars_per_line entspricht der Zeichenzahl pro Ausgabe-Zeile. Wortbrüche werden, soweit möglich, vermieden.

Siehe auch: hebrev().

Zurück | Zum Anfang | Nach vorne
hebrev | Nach oben | html_entity_decode


html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode -- Convert all HTML entities to their applicable characters

Description

string html_entity_decode ( string string [, int quote_style [, string charset]])

html_entity_decode() is the opposite of htmlentities() in that it converts all HTML entities to their applicable characters from string.

The optional second quote_style parameter lets you define what will be done with 'single' and "double" quotes. It takes on one of three constants with the default being ENT_COMPAT:

Tabelle 1. Available quote_style constants

Constant Name | Description
ENT_COMPAT | Will convert double-quotes and leave single-quotes alone.
ENT_QUOTES | Will convert both double and single quotes.
ENT_NOQUOTES | Will leave both double and single quotes unconverted.

The ISO-8859-1 character set is used as default for the optional third charset. This defines the character set used in conversion.

Following character sets are supported in PHP 4.3.0 and later.

Tabelle 2. Supported charsets

Charset | Aliases | Description
ISO-8859-1 | ISO8859-1 | Western European, Latin-1
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Adds the Euro sign, French and Finnish letters missing in Latin-1(ISO-8859-1).
UTF-8 |  | ASCII compatible multi-byte 8-bit Unicode.
cp866 | ibm866, 866 | DOS-specific Cyrillic charset. This charset is supported in 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Windows-specific Cyrillic charset. This charset is supported in 4.3.2.
cp1252 | Windows-1252, 1252 | Windows specific charset for Western European.
KOI8-R | koi8-ru, koi8r | Russian. This charset is supported in 4.3.2.
BIG5 | 950 | Traditional Chinese, mainly used in Taiwan.
GB2312 | 936 | Simplified Chinese, national standard character set.
BIG5-HKSCS |  | Big5 with Hong Kong extensions, Traditional Chinese.
Shift_JIS | SJIS, 932 | Japanese
EUC-JP | EUCJP | Japanese

Anmerkung: Any other character sets are not recognized and ISO-8859-1 will be used instead.

Beispiel 1. Decoding HTML entities

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now

// For users prior to PHP 4.3.0 you may do this:
function unhtmlentities($string)
{
    $trans_tbl = get_html_translation_table(HTML_ENTITIES);
    $trans_tbl = array_flip($trans_tbl);
    return strtr($string, $trans_tbl);
}

$c = unhtmlentities($a);

echo $c; // I'll "walk" the <b>dog</b> now

?>

Anmerkung: You might wonder why trim(html_entity_decode('&nbsp;')); doesn't reduce the string to an empty string, that's because the '&nbsp;' entity is not ASCII code 32 (which is stripped by trim()) but ASCII code 160 (0xa0) in the default ISO 8859-1 characterset.

See also htmlentities(),
htmlspecialchars(),
get_html_translation_table(),
and urldecode().

Zurück | Zum Anfang | Nach vorne
hebrevc | Nach oben | htmlentities


htmlentities

(PHP 3, PHP 4 , PHP 5)

htmlentities -- Wandelt alle Sonderzeichen in entsprechende HTML-Codes um

Beschreibung

string htmlentities ( string string [, int quote_style [, string charset]])

Diese Funktion ist mit htmlspecialchars() identisch, ausser dass alle Zeichen, die HTML-Code-Entsprechungen haben, in diese Codes umgewandelt werden.

Wie bei htmlspecialchars() können Sie mit dem optionalen zweiten Parameter quote_style definieren, wie die 'einfachen' und "doppelten" Anführungszeichen behandelt werden. Es gibt drei Konstanten, wobei ENT_COMPAT voreingestellt ist:

Tabelle 1. Verfügbare quote_style Konstanten

Konstante | Beschreibung
ENT_COMPAT | Konvertiert nur doppelte Anführungszeichen.
ENT_QUOTES | Konvertiert doppelte und einfache Anführungszeichen.
ENT_NOQUOTES | Lässt doppelte und einfache Anführungszeichen unverändert.

Die Unterstützung für den optionalen Parameter quote wurde in PHP 4.0.3. eingeführt.

Wie auch bei htmlspecialchars(), kann man als dritten optionalen Parameter den Zeichensatz angeben, der zur Konvertierung verwendet wird. Diese Feature wurde in PHP 4.1.0 eingeführt. Gegenwärtig wird standardmäßig der ISO-8859-1 Zeichensatz verwendet.

Möchten Sie stattdessen die HTML Entities dekodieren, verwenden Sie bitte die Funktion html_entity_decode().

Siehe auch html_entity_decode(),
get_html_translation_table(),
htmlspecialchars(), nl2br()
und urlencode().

Zurück | Zum Anfang | Nach vorne
html_entity_decode | Nach oben | htmlspecialchars


htmlspecialchars

(PHP 3, PHP 4 , PHP 5)

htmlspecialchars -- Wandelt Sonderzeichen in HTML-Codes um

Beschreibung

string htmlspecialchars ( string string [, int quote_style [, string charset]])

Bestimmte Zeichen haben in HTML eine spezielle Bedeutung und sollten in HTML-Code dargestellt werden, um ihre Bedeutung zu behalten. Diese Funktion liefert einen String zurück, in dem manche dieser Konvertierungen durchgeführt wurden. Die hier vorgenommenen Umwandlungen sind die nützlichsten für die alltägliche Web-Programmierung. Sofern Sie eine vollständige Konvertierung der HTML-Zeichen benötigen, sollten Sie stattdessen htmlentities() verwenden.

Diese Funktion ist nützlich, um vom Benutzer gelieferten Text frei von HTML-Code zu halten, wie z.B. in Forums- oder Gästebuch- Applikationen. Das optionale 2. Argument (Quote-Stil) legt fest, wie die einfachen und doppelten Anführungsstriche behandelt werden sollen. Der Modus ENT_COMPAT (default) ist abwärtskompatibel und behandelt nur die doppelten, nicht aber die einfachen Anführungsstriche. ENT_QUOTES behandelt beide und ENT_NOQUOTES keine Art(en) von Anführungszeichen.

Folgende Umwandlungen werden vorgenommen:

  • '&' (kaufmännisches und) wird zu '&amp;'

  • '"' (doppelte Anführungszeichen) wird zu '&quot;', wenn ENT_NOQUOTES nicht gesetzt ist

  • ''' (einfaches Anführungszeichen) wird zu '&#039;', wenn ENT_QUOTES gesetzt ist

  • '<' (kleiner als) wird zu '&lt;'

  • '>' (grösser als) wird zu '&gt;'

Beispiel 1. htmlspecialchars() Beispiel

$neu = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);

Beachten Sie, dass diese Funktion nur die o.a. Umwandlungen durchführt. Zur vollständigen Code-Umwandlung siehe htmlentities(). Das optionale 2. Argument ist seit PHP 3.0.17 bzw. PHP 4.0.3. verfügbar.

Das dritte Argument definiert den während der Konvertierung verwendeten Zeichensatz. Der standardmäßige Zeichensatz ist ISO-8859-1. Das dritte Argument wurde in PHP 4.1.0 eingeführt.

Siehe auch get_html_translation_table(), htmlentities() und nl2br().

Zurück | Zum Anfang | Nach vorne
htmlentities | Nach oben | implode


implode

(PHP 3, PHP 4 , PHP 5)

implode -- Verbindet Array-Elemente zu einem String

Beschreibung

string implode ( string glue, array pieces)

Gibt einen String mit einer String-Repräsentation aller Array-Elemente in der gleichen Reihenfolge wie in dem Array zurück, bei dem die einzelnen Array-Elemente mit dem im Parameter glue angegebenen String verbunden werden.

Beispiel 1. implode() Beispiel

<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

print $comma_separated; // lastname,email,phone

?>

Anmerkung: implode() aktzeptiert die Parameter aus historischen Gründen in beiden Reihenfolgen. Dennoch sollten Sie schon wegen der Übereinstimmung mit explode() die dokumentierte und wahrscheinlich weniger verwirrende Reihenfolge der Argumente verwenden.

Siehe auch explode() und split().

Zurück | Zum Anfang | Nach vorne
htmlspecialchars | Nach oben | join


join

(PHP 3, PHP 4 , PHP 5)

join -- Join verbindet Array-Elemente zu einem String

Beschreibung:

string join ( string glue, array pieces)

join() ist ein Alias von implode() (die Funktionalität ist also vollkommen identisch).

Siehe auch explode(), implode() und split().

Zurück | Zum Anfang | Nach vorne
implode | Nach oben | levenshtein


levenshtein

(PHP 3>= 3.0.17, PHP 4 >= 4.0.1, PHP 5)

levenshtein -- Berechnet den Levenshtein-Unterschied zweier Strings

Beschreibung:

int levenshtein ( string str1, string str2)

int levenshtein ( string str1, string str2, int cost_ins, int cost_rep, int cost_del)

int levenshtein ( string str1, string str2, function cost)

Diese Funktion errechnet die Differenz zwischen den als Argumente übergebenen zwei Strings. Ist einer der Strings länger als die zulässigen 255 Zeichen, wird -1 zurück gegeben.

Die Levenshtein-Differenz ist definiert als die minimale Anzahl an Zeichen, die ersetzt, eingefügt oder gelöscht werden müssen um den str1 nach str2 umzusetzen. Die Komplexität des Algorithmus ist O(m*n), wobei n und m der Länge der Strings str1 und str2 (viel besser als bei der Funktion similar_text(), wo sie O(max(n,m)**3) beträgt).

Siehe auch soundex(),
similar_text() und
metaphone().

Zurück | Zum Anfang | Nach vorne
join | Nach oben | localeconv


localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconv -- Get numeric formatting information

Description

array localeconv ( void )

Returns an associative array containing localized numeric and monetary formatting information.

localeconv() returns data based upon the current locale as set by setlocale(). The associative array that is returned contains the following fields:

Array element | Description
decimal_point | Decimal point character
thousands_sep | Thousands separator
grouping | Array containing numeric groupings
int_curr_symbol | International currency symbol (i.e. USD)
currency_symbol | Local currency symbol (i.e. $)
mon_decimal_point | Monetary decimal point character
mon_thousands_sep | Monetary thousands separator
mon_grouping | Array containing monetary groupings
positive_sign | Sign for positive values
negative_sign | Sign for negative values
int_frac_digits | International fractional digits
frac_digits | Local fractional digits
p_cs_precedes | TRUE if currency_symbol precedes a positive value, FALSE if it succeeds one
p_sep_by_space | TRUE if a space separates currency_symbol from a positive value, FALSE otherwise
n_cs_precedes | TRUE if currency_symbol precedes a negative value, FALSE if it succeeds one
n_sep_by_space | TRUE if a space separates currency_symbol from a negative value, FALSE otherwise
p_sign_posn

0 | Parentheses surround the quantity and currency_symbol
1 | The sign string precedes the quantity and currency_symbol
2 | The sign string succeeds the quantity and currency_symbol
3 | The sign string immediately precedes the currency_symbol
4 | The sign string immediately succeeds the currency_symbol

n_sign_posn

0 | Parentheses surround the quantity and currency_symbol
1 | The sign string precedes the quantity and currency_symbol
2 | The sign string succeeds the quantity and currency_symbol
3 | The sign string immediately precedes the currency_symbol
4 | The sign string immediately succeeds the currency_symbol

The grouping fields contain arrays that define the way numbers should be grouped. For example, the grouping field for the en_US locale, would contain a 2 item array with the values 3 and 3. The higher the index in the array, the farther left the grouping is. If an array element is equal to CHAR_MAX, no further grouping is done. If an array element is equal to 0, the previous element should be used.

Beispiel 1. localeconv() example

<?php
setlocale(LC_ALL, "en_US");

$locale_info = localeconv();

echo "<pre>\n";
echo "--------------------------------------------\n";
echo "  Monetary information for current locale:  \n";
echo "--------------------------------------------\n\n";

echo "int_curr_symbol:   {$locale_info["int_curr_symbol"]}\n";
echo "currency_symbol:   {$locale_info["currency_symbol"]}\n";
echo "mon_decimal_point: {$locale_info["mon_decimal_point"]}\n";
echo "mon_thousands_sep: {$locale_info["mon_thousands_sep"]}\n";
echo "positive_sign:     {$locale_info["positive_sign"]}\n";
echo "negative_sign:     {$locale_info["negative_sign"]}\n";
echo "int_frac_digits:   {$locale_info["int_frac_digits"]}\n";
echo "frac_digits:       {$locale_info["frac_digits"]}\n";
echo "p_cs_precedes:     {$locale_info["p_cs_precedes"]}\n";
echo "p_sep_by_space:    {$locale_info["p_sep_by_space"]}\n";
echo "n_cs_precedes:     {$locale_info["n_cs_precedes"]}\n";
echo "n_sep_by_space:    {$locale_info["n_sep_by_space"]}\n";
echo "p_sign_posn:       {$locale_info["p_sign_posn"]}\n";
echo "n_sign_posn:       {$locale_info["n_sign_posn"]}\n";
echo "</pre>\n";
?>

The constant CHAR_MAX is also defined for the use mentioned above.

See also setlocale().

Zurück | Zum Anfang | Nach vorne
levenshtein | Nach oben | ltrim


ltrim

(PHP 3, PHP 4 , PHP 5)

ltrim -- Entfernt führende Leerraum eines Strings

Beschreibung:

string ltrim ( string str)

Es wird Leerraum ab Stringanfang entfernt und der um diesen gekürzte String zurück gegeben. Als Leerraum gelten die Zeichen "\n", "\r", "\t", "\v", "\0" und das Leerzeichen.

Siehe auch chop(), rtrim() und trim().

Zurück | Zum Anfang | Nach vorne
localeconv | Nach oben | md5_file


md5_file

(PHP 4 >= 4.2.0, PHP 5)

md5_file -- Calculates the md5 hash of a given filename

Description

string md5_file ( string filename [, bool raw_output])

Calculates the MD5 hash of the specified filename using the RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash. The hash is a 32-character hexadecimal number. If the optional raw_output is set to TRUE, then the md5 digest is instead returned in raw binary format with a length of 16.

Anmerkung: The optional raw_output parameter was added in PHP 5.0.0 and defaults to FALSE

This function has the same purpose of the command line utility md5sum.

See also md5(), crc32(), and sha1_file().

Zurück | Zum Anfang | Nach vorne
ltrim | Nach oben | md5


md5

(PHP 3, PHP 4 , PHP 5)

md5 -- Errechnet den MD5-Code eines Strings

Beschreibung

string md5 ( string str)

Berechnet den MD5-Code von str unter Verwendung des RSA Data Security, Inc. MD5 Message-Digest Algorithm, und gibt das Ergebnis zurück. Dieser Code ist eine hexadezimale Zahl mit 32 Zeichen Länge.

Siehe auch crc32(), md5_file() und sha1().

Zurück | Zum Anfang | Nach vorne
md5_file | Nach oben | metaphone


metaphone

(PHP 4 , PHP 5)

metaphone -- Berechnet den metaphone-Schlüssel eines Strings

Beschreibung:

string metaphone ( string str)

Errechnet den metaphone-Schlüssel von str.

Genau wie soundex() berechnet metaphone den gleichen Schlüssel für ähnlich klingende Wörter. Die Metaphone-Funktion arbeitet genauer als soundex(), da sie die Grundregeln der englischen Aussprache kennt. Die durch metaphone erzeugten Schlüüsel sind von variabler Länge.

Der Metaphone-Algorithmus wurde entwickelt von Lawrence Philips <lphilips@verity.com> und ist beschrieben in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Anmerkung: Diese Funktion ist ab PHP 4.0 verfügbar.

Zurück | Zum Anfang | Nach vorne
md5 | Nach oben | money_format


money_format

(PHP 4 >= 4.3.0, PHP 5)

money_format -- Formats a number as a currency string

Description

string money_format ( string format, float number)

money_format() returns a formatted version of number. This function wraps the C library function strfmon(), with the difference that this implementation converts only one number at a time.

Anmerkung: The function money_format() is only defined if the system has strfmon capabilities. For example, Windows does not, so money_format() is undefined in Windows.

The format specification consists of the following sequence:

  • a % character

  • optional flags

  • optional field width

  • optional left precision

  • optional right precision

  • a required conversion character

Flags. One or more of the optional flags below can be used:

=f

The character = followed by a a (single byte) character f to be used as the numeric fill character. The default fill character is space.

^

Disable the use of grouping characters (as defined by the current locale).

+ or (

Specify the formatting style for positive and negative numbers. If + is used, the locale's equivalent for + and - will be used. If ( is used, negative amounts are enclosed in parenthesis. If no specification is given, the default is +.

!

Suppress the currency symbol from the output string.

-

If present, it will make all fields left-justified (padded to the right), as opposed to the default which is for the fields to be right-justified (padded to the left).

Field width.

w

A decimal digit string specifying a minimum field width. Field will be right-justified unless the flag - is used. Default value is 0 (zero).

Left precision.

#n

The maximum number of digits (n) expected to the left of the decimal character (e.g. the decimal point). It is used usually to keep formatted output aligned in the same columns, using the fill character if the number of digits is less than n. If the number of actual digits is bigger than n, then this specification is ignored.

If grouping has not been suppressed using the ^ flag, grouping separators will be inserted before the fill characters (if any) are added. Grouping separators will not be applied to fill characters, even if the fill character is a digit.

To ensure alignment, any characters appearing before or after the number in the formatted output such as currency or sign symbols are padded as necessary with space characters to make their positive and negative formats an equal length.

Right precision .

.p

A period followed by the number of digits (p) after the decimal character. If the value of p is 0 (zero), the decimal character and the digits to its right will be omitted. If no right precision is included, the default will dictated by the current local in use. The amount being formatted is rounded to the specified number of digits prior to formatting.

Conversion characters .

i

The number is formatted according to the locale's international currency format (e.g. for the USA locale: USD 1,234.56).

n

The number is formatted according to the locale's national currency format (e.g. for the de_DE locale: DM1.234,56).

%

Returns the % character.

Anmerkung: The LC_MONETARY category of the locale settings, affects the behavior of this function. Use setlocale() to set to the appropriate default locale before using this function.

Characters before and after the formatting string will be returned unchanged.

Beispiel 1. money_format() Example

We will use different locales and format specifications to illustrate the use of this function.

<?php

$number = 1234.56;

// let's print the international format for the en_US locale
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// Italian national format with 2 decimals`
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// L. 1.234,56

// Using a negative number
$number = -1234.5672;

// US national format, using () for negative numbers
// and 10 digits for left precision
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($        1,234.57)

// Similar format as above, adding the use of 2 digits of right
// precision and '*' as a fill character
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)

// Let's justify to the left, with 14 positions of width, 8 digits of
// left precision, 2 of right precision, withouth grouping character
// and using the international format for the de_DE locale.
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// DEM 1234,56****

// Let's add some blurb before and after the conversion specification
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'The final value is %i (after a 10%% discount)';
echo money_format($fmt, 1234.56) . "\n";
// The final value is  GBP 1,234.56 (after a 10% discount)

?>

See also: setlocale(),
number_format(),sprintf(),
printf() and sscanf().

Zurück | Zum Anfang | Nach vorne
metaphone | Nach oben | nl_langinfo


nl_langinfo

(PHP 4 >= 4.1.0, PHP 5)

nl_langinfo -- Query language and locale information

Description

string nl_langinfo ( int item)

nl_langinfo() is used to access individual elements of the locale categories. Unlike localeconv(), which returns all of the elements, nl_langinfo() allows you to select any specific element.

If item is not valid, FALSE will be returned.

item may be an integer value of the element or the constant name of the element. The following is a list of constant names for item that may be used and their description. Some of these constants may not be defined or hold no value for certain locales.

Tabelle 1. nl_langinfo Constants

Constant | Description
LC_TIME Category Constants
ABDAY_(1-7) | Abbreviated name of n-th day of the week.
DAY_(1-7) | Name of the n-th day of the week (DAY_1 = Sunday).
ABMON_(1-12) | Abbreviated name of the n-th month of the year.
MON_(1-12) | Name of the n-th month of the year.
AM_STR | String for Ante meridian.
PM_STR | String for Post meridian.
D_T_FMT | String that can be used as the format string for strftime() to represent time and date.
D_FMT | String that can be used as the format string for strftime() to represent date.
T_FMT | String that can be used as the format string for strftime() to represent time.
T_FMT_AMPM | String that can be used as the format string for strftime() to represent time in 12-hour format with ante/post meridian.
ERA | Alternate era.
ERA_YEAR | Year in alternate era format.
ERA_D_T_FMT | Date and time in alternate era format (string can be used in strftime()).
ERA_D_FMT | Date in alternate era format (string can be used in strftime()).
ERA_T_FMT | Time in alternate era format (string can be used in strftime()).
LC_MONETARY Category Constants
INT_CURR_SYMBOL | International currency symbol.
CURRENCY_SYMBOL | Local currency symbol.
CRNCYSTR | Same value as CURRENCY_SYMBOL.
MON_DECIMAL_POINT | Decimal point character.
MON_THOUSANDS_SEP | Thousands separator (groups of three digits).
MON_GROUPING | Like 'grouping' element.
POSITIVE_SIGN | Sign for positive values.
NEGATIVE_SIGN | Sign for negative values.
INT_FRAC_DIGITS | International fractional digits.
FRAC_DIGITS | Local fractional digits.
P_CS_PRECEDES | Returns 1 if CURRENCY_SYMBOL precedes a positive value.
P_SEP_BY_SPACE | Returns 1 if a space separates CURRENCY_SYMBOL from a positive value.
N_CS_PRECEDES | Returns 1 if CURRENCY_SYMBOL precedes a negative value.
N_SEP_BY_SPACE | Returns 1 if a space separates CURRENCY_SYMBOL from a negative value.
P_SIGN_POSN

  • Returns 0 if parentheses surround the quantity and currency_symbol.

  • Returns 1 if the sign string precedes the quantity and currency_symbol.

  • Returns 2 if the sign string follows the quantity and currency_symbol.

  • Returns 3 if the sign string immediately precedes the currency_symbol.

  • Returns 4 if the sign string immediately follows the currency_symbol.

N_SIGN_POSN
LC_NUMERIC Category Constants
DECIMAL_POINT | Decimal point character.
RADIXCHAR | Same value as DECIMAL_POINT.
THOUSANDS_SEP | Separator character for thousands (groups of three digits).
THOUSEP | Same value as THOUSANDS_SEP.
GROUPING
LC_MESSAGES Category Constants
YESEXPR | Regex string for matching 'yes' input.
NOEXPR | Regex string for matching 'no' input.
YESSTR | Output string for 'yes'.
NOSTR | Output string for 'no'.
LC_CTYPE Category Constants
CODESET | Return a string with the name of the character encoding.

Anmerkung: Diese Funktion ist auf Windows-Plattformen nicht implementiert.

See also setlocale() and localeconv().

Zurück | Zum Anfang | Nach vorne
money_format | Nach oben | nl2br


nl2br

(PHP 3, PHP 4 , PHP 5)

nl2br -- Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein

Beschreibung

string nl2br ( string string)

Gibt den string mit einem vor allen Neue-Zeile-Zeichen eingefügten '<br />' zurück.

Anmerkung: Seit PHP 4.0.5 ist nl2br() XHTML konform. Vor PHP 4.0.5 wird string mit '<br>' vor allen Zeilenumbrüchen eingefügt, anstatt von '<br />'.

Siehe auch htmlspecialchars(),
htmlentities(),
wordwrap(), und
str_replace().

Zurück | Zum Anfang | Nach vorne
nl_langinfo | Nach oben | number_format


number_format

(PHP 3, PHP 4 , PHP 5)

number_format -- Format a number with grouped thousands

Description

string number_format ( float number [, int decimals])

string number_format ( float number, int decimals, string dec_point, string thousands_sep)

number_format() returns a formatted version of number. This function accepts either one, two or four parameters (not three):

If only one parameter is given, number will be formatted without decimals, but with a comma (",") between every group of thousands.

If two parameters are given, number will be formatted with decimals decimals with a dot (".") in front, and a comma (",") between every group of thousands.

If all four parameters are given, number will be formatted with decimals decimals, dec_point instead of a dot (".") before the decimals and thousands_sep instead of a comma (",") between every group of thousands.

Only the first character of thousands_sep is used. For example, if you use foo as thousands_sep on the number 1000, number_format() will return 1f000.

Beispiel 1. number_format() Example

For instance, French notation usually use two decimals, comma (',') as decimal separator, and space (' ') as thousand separator. This is achieved with this line :

<?php

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
// 1,234

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// english notation without thousands seperator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

See also: sprintf(), printf() and sscanf().

Zurück | Zum Anfang | Nach vorne
nl2br | Nach oben | ord


ord

(PHP 3, PHP 4 , PHP 5)

ord -- Gibt den ASCII-Wert eines Zeichens zurück

Beschreibung:

int ord ( string string)

Es wird der ASCII-Wert des ersten Zeichens von string zurück gegeben. Diese Funktion steht in Zusammenhang mit chr().

Beispiel 1. ord()-Beispiel:

if (ord ($str) == 10) {
    echo "Das erste Zeichen von \$str ist ein Zeilenvorschub.\n";
}

Siehe auch chr().

Zurück | Zum Anfang | Nach vorne
number_format | Nach oben | parse_str


parse_str

(PHP 3, PHP 4 , PHP 5)

parse_str -- Überträgt einen String in Variable

Beschreibung

void parse_str ( string str [, array arr])

Durchsucht str als ob er der Query-String einer URL-Übergabe via GET wäre und erstellt Variablen im aktuellen Geltungsbereich. Ist der zweite Parameter arr angegeben, werden die Variablen in diesem Array als dessen Elemente gespeichert.

Anmerkung: Der optionale zweite Parameter wurde in PHP 4.0.3 hinzugefügt.

Anmerkung: Um auf den aktuellen QUERY_STRING zuzugreifen, verwenden Sie am besten die Variable $_SERVER['QUERY_STRING']. Weitere Informationen finden Sie auch im Abschnitt Variablen außerhalb von PHP.

Beispiel 1. Der Gebrauch von parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>

Siehe auch parse_url(), pathinfo(), set_magic_quotes_runtime() und urldecode().

Zurück | Zum Anfang | Nach vorne
ord | Nach oben | print


print

(PHP 3, PHP 4, PHP 5 )

print -- Ausgabe eines Strings

Beschreibung

int print ( string arg)

Gibt arg aus. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

print() ist eigentlich keine wirkliche Funktion (sie ist ein Sprachkonstukt), weshalb Sie beim Aufruf nicht unbedingt Klammern benutzen müssen.

Beispiel 1. print() Beispiele

<?php
print("Hello World");

print "print() funktioniert auch ohne Klammern.";

print "Dies umfasst
mehrere Zeilen. Die Zeilenumbrüche werden
ebenfalls ausgegeben";

print "Dies hat\nmehrere Zeilen. Die Umbrüche werden\nauch ausgegeben.";

print "Escape-Zeichen werden \"so\" geschrieben.";

// Sie können in einer print-Anweisung auch Variablen benutzen
$foo = "foobar";
$bar = "barbaz";

print "foo is $foo"; // foo ist foobar

// Einfache Anführungsstriche geben den Variablennamen aus,
// nicht den Inhalt
print 'foo is $foo'; // foo ist $foo

// Benutzen Sie keine anderen Zeichen, können Sie auch nur
// Variablen ausgeben
print $foo;          // foobar

print <<<END
Dies verwendet die "here document" Syntax zur Ausgabe von
mehreren Zeilen mit $variablen Interpolation. Beachten Sie,
dass das "here document" Endezeichen in einer Zeile nur mit
einem Semikolon ohne Whitespaces stehen muss!
END;?>

Siehe auch echo(), printf() und flush().

Zurück | Zum Anfang | Nach vorne
parse_str | Nach oben | printf


printf

(PHP 3, PHP 4 , PHP 5)

printf -- Gibt einen formatierten String aus

Beschreibung

void printf ( string format [, mixed args])

Erzeugt eine Ausgabe abhängig von format. Format wird in der Dokumentation zu sprintf() näher beschrieben.

Siehe auch print(), sprintf(),
sscanf(), fscanf()
und flush().

Zurück | Zum Anfang | Nach vorne
print | Nach oben | quoted_printable_decode


quoted_printable_decode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

quoted_printable_decode -- Konvertiert einen "quoted-printable"-String in einen 8-Bit-String

Beschreibung:

string quoted_printable_decode ( string str)

Diese Funktion gibt einen 8-Bit-String zurück, der der Konvertierung aus einem "quoted-printable"-String entspricht. Diese Funktion ist ähnlich wie imap_qprint() bis auf die Tatsache, dass sie kein IMAP-Module erfordert.

Zurück | Zum Anfang | Nach vorne
printf | Nach oben | quotemeta


quotemeta

(PHP 3, PHP 4 , PHP 5)

quotemeta -- Quoten von Meta-Zeichen

Beschreibung

string quotemeta ( string str)

Der Inhalt von str wird mit einem Rückstrich ("Backslash", \) vor jedem Vorkommen von
. \\ + * ? [ ^ ] ( $ )
versehen ("quoten") und zurückgegeben.

Siehe auch addslashes(),
htmlentities(),
htmlspecialchars(),
nl2br() und
stripslashes().

Zurück | Zum Anfang | Nach vorne
quoted_printable_decode | Nach oben | rtrim


rtrim

(PHP 3, PHP 4 , PHP 5)

rtrim -- Entfernt Leerzeichen am String-Ende

Beschreibung:

string rtrim ( string str)

Gibt den als Argument übergebenen String ohne abschließende Leerzeichen (auch "Neue-Zeile-"Steuerzeichen werden entfernt). Dies ist ein Alias zu chop().

Beispiel 1. rtrim()-Beispiel:

$getrimmt = rtrim ($line);

Siehe auch chop(), ltrim() und trim().

Zurück | Zum Anfang | Nach vorne
quotemeta | Nach oben | setlocale


setlocale

(PHP 3, PHP 4 , PHP 5)

setlocale -- Setzt lokale Informationen

Beschreibung

string setlocale ( mixed category, string locale [, string ...])

string setlocale ( mixed category, array locale)

Category ist eine benannte Konstante (oder Zeichenkette), welche die Kategorie der von den lokalen Einstellungen betroffenen Funktionen spezifiziert:

  • LC_ALL für alle folgenden Werte

  • LC_COLLATE für String-Vergleiche, siehe strcoll()

  • LC_CTYPE für Klassifizierung und Umwandlung von Zeichen, z.B. strtoupper()

  • LC_MONETARY für localeconv()

  • LC_NUMERIC für das Dezimal-Trennzeichen (Siehe auch localeconv())

  • LC_TIME für Zeit und Datums-Formatierungen mittels strftime()

Ist locale als Leer-String definiert, also "", werden die Werte an Hand der entsprechenden Umgebungsvariablen gleichen Namens wie die obigen Kategorien, oder von "LANG" bestimmt.

Ist locale NULL oder "0", sind keine Einstellungen betroffen, und es wird die aktuelle Einstellung zurückgegeben.

Ist locale ein Array, oder folgen weitere Parameter, dann wird jedes Array Element bzw. jeder Parameter versucht zu stzen, bis es gelingt. Dies ist dann sinnvoll, wenn eine locale auf verschiedenen Systemen unter verschiedenen Namen bekannt ist, oder auch als Fallback für eine eventuell nicht vorhandene locale.

Anmerkung: Das Übergeben von mehreren locales wird erst seit PHP 4.3 unterstützt.

setlocale() gibt die neue Einstellung oder FALSE (wenn die locale-Funktionalität auf der System-Plattform nicht unterstützt wird oder der Kategorie-Wert ungültig ist) zurück. Ein ungültiger Kategorie-Name erzeugt auch noch eine Warnmeldung.

Anmerkung: Der Rückgabewert von setlocale() ist von dem System abhängig, auf dem PHP läuft. Es wird genau das zurückgegeben, was die Systemfunktion setlocale zurückgibt.

Beispiel 1. setlocale() Beispiele

<?php
/* locale auf Holland setzen */
setlocale (LC_ALL, 'nl_NL');

/* Ausgabe: vrijdag 22 december 1978 */
echo strftime ("%A %e %B %Y", mktime (0, 0, 0, 12, 22, 1978));

/* versuche verschiedene mögliche locale Namen für Deutsch ab PHP 4.3.0 */
$loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
?>

Zurück | Zum Anfang | Nach vorne
rtrim | Nach oben | sha1_file


sha1_file

(PHP 4 >= 4.3.0, PHP 5)

sha1_file -- Calculate the sha1 hash of a file

Description

string sha1_file ( string filename [, bool raw_output])

Calculates the sha1 hash of filename using the US Secure Hash Algorithm 1, and returns that hash. The hash is a 40-character hexadecimal number. Upon failure, FALSE is returned. If the optional raw_output is set to TRUE, then the sha1 digest is instead returned in raw binary format with a length of 20.

Anmerkung: The optional raw_output parameter was added in PHP 5.0.0 and defaults to FALSE

See also sha1(), crc32(), and md5_file()

Zurück | Zum Anfang | Nach vorne
setlocale | Nach oben | sha1


sha1

(PHP 4 >= 4.3.0, PHP 5)

sha1 -- Calculate the sha1 hash of a string

Description

string sha1 ( string str [, bool raw_output])

Calculates the sha1 hash of str using the US Secure Hash Algorithm 1, and returns that hash. The hash is a 40-character hexadecimal number. If the optional raw_output is set to TRUE, then the sha1 digest is instead returned in raw binary format with a length of 20.

Anmerkung: The optional raw_output parameter was added in PHP 5.0.0 and defaults to FALSE

Beispiel 1. A sha1() example

<?php
$str = 'apple';

if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') {
    echo "Would you like a green or red apple?";
    exit;
}
?>

See also sha1_file(), crc32(), and md5()

Zurück | Zum Anfang | Nach vorne
sha1_file | Nach oben | similar_text


similar_text

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

similar_text -- Berechnet die Ähnlichkeit zweier Zeichenketten

Beschreibung:

int similar_text ( string first, string second [, double percent])

Die Berechnung der Ähnlichkeit zweier Strings erfolgt nach der in "Oliver" [1993] beschreibenen Methode. Beachten Sie, dass diese Implementierung keinen Stack verwendet wie in Olivers Pseude-Code, dafür aber rekursive Aufrufe, die die Performance erhöhen können (aber nicht müssen). Beachten Sie auch, dass die Komplexität dieses Algorithmus O(N**3) beträgt, wobei N die Länge der längsten Zeichenkette ist.

Falls Sie als Referenz ein drittes Argument angeben, wird similar_text() ihnen die Ähnlichkeit als Prozentwert errechnen. Es wird die Anzahl der in beiden Strings übereinstimmenden Zeichen zurück gegeben.

Zurück | Zum Anfang | Nach vorne
sha1 | Nach oben | soundex


soundex

(PHP 3, PHP 4 , PHP 5)

soundex -- Berechnet die Laut-Ähnlichkeit eines Strings

Beschreibung:

string soundex ( string str)

Errechnet den Wert der Laut-Ähnlichkeit von str.

Soundex-Werte haben die Eigenschaft, dass ähnlich ausgesprochene Wörter den gleichen Soundex-Wert erzeugen. Dies kann zur Suche in Datenbanken verwendet werden, wenn Sie zwar die Aussprache aber nicht die genaue Schreibweise kennen. soundex() liefert einen String aus 4 Zeichen, beginnend mit einem Buchstaben zurück.

Diese besondere soundex()-Funktion ist u.a. beschrieben in "The Art Of Computer Programming, vol. 3: Sorting And Searching", von Donald Knuth, Addison-Wesley-Verlag (1973), Seiten 391 bis 392.

Beispiel 1. Soundex-Beispiel:

soundex ("Euler") == soundex ("Ellery") == 'E460';
soundex ("Gauss") == soundex ("Ghosh") == 'G200';
soundex ("Knuth") == soundex ("Kant") == 'H416';
soundex ("Lloyd") == soundex ("Ladd") == 'L300';
soundex ("Lukasiewicz") == soundex ("Lissajous") == 'L222';

Zurück | Zum Anfang | Nach vorne
similar_text | Nach oben | sprintf


sprintf

(PHP 3, PHP 4 , PHP 5)

sprintf -- Gibt einen formatierten String zurück

Beschreibung:

string sprintf ( string format [, mixed args])

Gibt einen an Hand des Formatierungs-Strings format gebildeten String zurück.

Der Formatierungs-String wird aus keiner oder mehreren Anweisungen gebildet: Gewöhnliche Zeichen (ausser %), die direkt in das Ergebnis übertragen werden und Umsetzungs-Anweisungen. Jede dieser Anweisungen holt sich als Resultat ihre eigenen Parameter. Diese Anweisungen gelten sowohl für die sprintf()- als auch für die printf()-Funktion.

Jede der Formatierugs-Anweisungen besteht aus einem Prozent-Zeichen (%), gefolgt von einem oder mehrereren der folgenden Elemente:

  1. Einem optionalen Füll-Zeichen, das den String bis rechts auffüllt. Dies kann ein Leerzeichen oder eine 0 (das Null-Zeichen) sein. Standardmäßig wird mit dem Leerzeichen gefüllt. Andere Füllzeichen können durch Voranstellen eines einfachen Anführungszeichens (') definiert werden. Beachten Sie die nachstehenden Beispiele.

  2. Einer optionalen Angabe der Ausrichtung, ob die Ausgabe nach links oder nach rechts (default) ausgerichtet werden soll. Standardmäßig ist die Ausrichtung rechtsbündig. Um den Text linksbündig auszurichten müssen Sie das Zeichen - angeben.

  3. Einer optionalen Zahl für die Längen-Angabe, welche die mindestens zurückzugebende Anzahl Zeichen spezifiziert.

  4. Einem optionalen Wert für die Anzahl der auszugebenden Dezimalstellen für Fließkommazahlen. Dieser Wert hat nur Einfluss auf Werte vom Typ float (eine weitere hilfreiche Funktion zur Formatierung von Zahlen ist number_format()).

  5. Einer Typ-Angabe welche den Typ enthält, als der das Argument angesehen werden soll. Mögliche Angaben sind:

    % - ein Prozent-Zeichen ("%"). Es ist kein Argument erforderlich.
    b - das Argument wird als Integer angesehen und als Binär-Wert ausgegeben.
    c - das Argument wird als Integer angesehen und das entsprechende ASCII-Zeichen wird ausgegeben.
    d - das Argument wird als Integer angesehen und ein Dezimalwert (signed) ausgegeben.
    u - das Argument wird als Integer angesehen und ein Dezimalwert (unsigned) ausgegeben.
    f - das Argument wird als float angesehen und eine Fließkomma-Zahl ausgegeben.
    o - das Argument wird als Integer angesehen und und als Oktalzahl ausgegeben.
    s - das Argument wird als String angesehen und auch als solcher ausgegeben.
    x - das Argument wird als Integer angesehen und als Hexadezimal-Wert ausgegeben (mit Kleinbuchstaben).
    X - das Argument wird als Integer angesehen und als Hexadezimal-Wert ausgegeben (mit Großbuchstaben).

Seit PHP 4.0.6 unterstützt der Formatstring auch Argumente zu numerieren/tauschen. Hier ein Beispiel:

Beispiel 1. Argumente tauschen

$format = "There are %d monkeys in the %s";
printf($format,$num,$location);
Dies könnte "There are 5 monkeys in the tree" ausgeben. Aber nehmen wir einmal an, dass wir den Formatstring in einer separaten Datei erstellen, da wir ihn internationalisieren wollen, und deshalb wie folgt umschreiben:

Beispiel 2. Argumente tauschen

$format = "The %s contains %d monkeys";
printf($format,$num,$location);
Nun haben wir ein Problem. Die Reihenfolge der Platzhalter des Formatstrings entspricht nicht mehr der Reihenfolge der Argumente im Code. Wir würden gerne den Code belassen wie er ist, und einfach im Formatstring angeben, welchen Argumenten die Platzhalter entsprechen. Wir würden dann den Formatstring wie folt schreiben:

Beispiel 3. Argumente tauschen

$format = "The %2\$s contains %1\$d monkeys";
printf($format,$num,$location);
Ein weiterer Vorteil ist, dass wir nun die Platzhalter wiederholen können, ohne mehr Argumente im Code hinzufügen zu müssen. Zum Beispiel:

Beispiel 4. Argumente tauschen

$format = "The %2\$s contains %1\$d monkeys.
           That's a nice %2\$s full of %1\$d monkeys.";
printf($format, $num, $location);

Siehe auch: printf(),
sscanf(), fscanf() und
number_format().

Beispiele:

Beispiel 5. sprintf(): Null-gefüllte Integer-Werte

$isodatum = sprintf ("%04d-%02d-%02d", $jahr, $monat, $tag);

Beispiel 6. sprintf(): Währung formatieren

$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money wird ausgeben "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted wird ausgeben "123.10"

Zurück | Zum Anfang | Nach vorne
soundex | Nach oben | sscanf


sscanf

(PHP 4 >= 4.0.1, PHP 5)

sscanf -- Überträgt einen String in ein angegebenes Format

Beschreibung:

mixed sscanf ( string str, string format [, string var1])

Die Funktion sscanf() ist die Eingabe analog zu printf(). sscanf() liest den String str und interpretiert ihn entsprechend dem angegebenen Parameter format. Werden nur 2 Parameter angegeben, werden die analysierten Werte als Array zurückgegeben.

Irgendwelche Whitespaces in dem Formatstring entsprechen auch irgendwelchen Whitespaces in dem übergebenen String. Das heißt, dass auch ein Tabulator \t im Formatstring einem einzelnen Leerzeichen des übergebenen Strings entsprechen kann.

Beispiel 1. sscanf()-Beispiel:

// Ermittlung der Serien-Nr.
$serial = sscanf("SN/2350001","SN/%d");
// und des Herstellungsdatums
$mandate = "Januar 01 2000";
list($monat, $tag, $jahr) = sscanf($mandate,"%s %d %d");
echo "Das Teil $serial wurde hergestellt am: $jahr-".substr($monat,0,3)."-$tag\n";
Werden optionale Parameter übergeben, gibt die Funktion die Anzahl der ermittelten Werte zurück. Die optionalen Parameter müssen refenziert übergeben werden.

Beispiel 2. sscanf() - Gebrauch optionaler Parameter

// Ermittlung der Autoren-Info und Erzeugung eines DocBook-Eintrages
$auth = "24\tLewis Carroll";
$n = sscanf($auth,"%d\t%s %s", &$id, &$first, &$last);
echo "<author id='$id'>
    <firstname>$first</firstname>
    <surname>$last</surname>
</author>\n";

Siehe auch: fscanf(), printf() und sprintf().

Zurück | Zum Anfang | Nach vorne
sprintf | Nach oben | str_ireplace


str_ireplace

(PHP 5)

str_ireplace -- Case-insensitive version of str_replace().

Description

mixed str_ireplace ( mixed search, mixed replace, mixed subject [, int &count])

This function returns a string or an array with all occurrences of search in subject (ignoring case) replaced with the given replace value. If you don't need fancy replacing rules, you should generally use this function instead of eregi_replace() or preg_replace() with the i modifier.

If subject is an array, then the search and replace is performed with every entry of subject, and the return value is an array as well.

If search and replace are arrays, then str_ireplace() takes a value from each array and uses them to do search and replace on subject. If replace has fewer values than search, then an empty string is used for the rest of replacement values. If search is an array and replace is a string; then this replacement string is used for every value of search.

Beispiel 1. str_ireplace() example

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
?>

This function is binary safe.

Anmerkung: As of PHP 5.0.0 the number of matched and replaced needles will be returned in count which is passed by reference. Prior to PHP 5.0.0 this parameter is not available.

See also:
str_replace(),
ereg_replace(),
preg_replace(), and
strtr().

Zurück | Zum Anfang | Nach vorne
sscanf | Nach oben | str_pad


str_pad

(PHP 4 >= 4.0.1, PHP 5)

str_pad -- Erweitert einen String auf eine bestimmte Länge unter Verwendung eines anderen Strings

Beschreibung:

string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]])

Mit dieser Funktion erweitern Sie den String input auf der linken, rechten oder beiden Seiten auf die mit dem optionalen Parameter pad_length angegebene Länge. Wird das optionale Argument pad_string nicht angegeben, erfolgt die Erweiterung mit Leerzeichen, ansonsten wird hierzu der Inhalt von pad_string verwendet.

Das optionale Argument pad_type kann STR_PAD_RIGHT, STR_PAD_LEFT oder STR_PAD_BOTH sein. Wird pad_type nicht angegeben, so wird per default von STR_PAD_RIGHT ausgegangen.

Ist der Wert von pad_length negativ oder kleiner als die Länge des Input-Strings, wird keine Erweiterung vorgenommen.

Beispiel 1. str_pad()-Beispiel:

$input = "Alien";
print str_pad ($input, 10);                     // Ergebnis "Alien     "
print str_pad ($input, 10, "-=", STR_PAD_LEFT); // Ergebnis "-=-=-Alien"
print str_pad ($input, 10, "_", STR_PAD_BOTH);  // Ergebnis "__Alien___"

Zurück | Zum Anfang | Nach vorne
str_ireplace | Nach oben | str_repeat


str_repeat

(PHP 4 , PHP 5)

str_repeat -- Wiederholt eine String-Ausgabe

Beschreibung:

string str_repeat ( string input, int multiplier)

Gibt input_str multiplier mal zurück, wobei multiplier größer als 0 sein muss.

Beispiel 1. str_repeat()-Beispiel:

echo str_repeat ("-=", 10);

Es wird "-=-=-=-=-=-=-=-=-=-=" ausgegeben.

Siehe auch for, str_pad() und substr_count().

Zurück | Zum Anfang | Nach vorne
str_pad | Nach oben | str_replace


str_replace

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

str_replace -- Ersetzt alle Vorkommen eines Strings in einem anderen String

Beschreibung

mixed str_replace ( mixed search, mixed replace, mixed subject)

Diese Funktion ersetzt alle Vorkommen von search innerhalb der Zeichenkette subject durch den String replace. Falls Sie keine ausgefallenen String-Ersetzungen brauchen, sollten Sie immer dieser Funktion den Vorzug vor ereg_replace() oder preg_replace() geben.

Seit PHP 4.0.5 kann jeder Parameter von str_replace() auch ein Array sein.

Ist subject ein Array, erfolgt das Suchen und Ersetzen an jedem Wert von subject, und der Rückgabewert ist ebenfalls ein Array.

Sind search und replace Arrays, nimmt str_replace() einen Wert von jedem Array und verwendet ihn zum Suchen und Ersetzen von subject. Hat replace weniger Werte als search, so wird ein leerer String für den Rest der Werte zum Ersetzen verwendet. Ist search ein Array und replace ein String, dann wird dieser String für jeden Wert von search angewandt.

Beispiel 1. str_replace() Beispiel:

$bodytag = str_replace("%body%", "black", "<body text=%body%>");

Diese Funktion beruht auf einem Binär-Vergleich.

Anmerkung: str_replace() ist seit PHP 3.0.6 verfügbar, war aber bis PHP 3.0.8 fehlerhaft.

Siehe auch str_ireplace(),
ereg_replace(),
preg_replace() und
strtr().

Zurück | Zum Anfang | Nach vorne
str_repeat | Nach oben | str_rot13


str_rot13

(PHP 4 >= 4.2.0, PHP 5)

str_rot13 -- Perform the rot13 transform on a string

Description

string str_rot13 ( string str)

This function performs the ROT13 encoding on the str argument and returns the resulting string. The ROT13 encoding simply shifts every letter by 13 places in the alphabet while leaving non-alpha characters untouched. Encoding and decoding are done by the same function, passing an encoded string as argument will return the original version.

Beispiel 1. str_rot13() example

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

Anmerkung: The behaviour of this function was buggy until PHP 4.3.0. Before this, the str was also modified, as if passed by reference.

Zurück | Zum Anfang | Nach vorne
str_replace | Nach oben | str_shuffle


str_shuffle

(PHP 4 >= 4.3.0, PHP 5)

str_shuffle -- Randomly shuffles a string

Description

string str_shuffle ( string str)

str_shuffle() shuffles a string. One permutation of all possible is created.

Beispiel 1. str_shuffle() example

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// This will echo something like: bfdaec
echo $shuffled;
?>

See also shuffle() and rand().

Zurück | Zum Anfang | Nach vorne
str_rot13 | Nach oben | str_split


str_split

(PHP 5)

str_split -- Convert a string to an array

Description

array str_split ( string string [, int split_length])

Converts a string to an array. If the optional split_length parameter is specified, the returned array will be broken down into chunks with each being split_length in length, otherwise each chunk will be one character in length.

FALSE is returned if split_length is less than 1. If the split_length length exceeds the length of string, the entire string is returned as the first (and only) array element.

Beispiel 1. Example uses of str_split()

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

Output may look like:

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

Beispiel 2. Examples related to str_split()

<?php

$str = "Hello Friend";

echo $str{0};  // H
echo $str{8};  // i

// Creates: array('H','e','l','l','o',' ','F','r','i','e','n','d')
$arr1 = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

?>

See also chunk_split(),
preg_split(),
split(),
count_chars(),
str_word_count(), and
for.

Zurück | Zum Anfang | Nach vorne
str_shuffle | Nach oben | str_word_count


str_word_count

(PHP 4 >= 4.3.0, PHP 5)

str_word_count -- Gibt Informationen über Worte in einem String zurück

Beschreibung

mixed str_word_count ( string string [, int format])

Zählt die Worte in string. Wenn der optionale Parameter format nicht angegeben wird, wird ein Integer mit der Anzahl der Worte zurückgegeben. Andernfalls wird ein Array zurückgegeben, dessen Inhalt von format abhängt. format kann folgende Werte annehmen.

  • 1 - gibt einen Array zurück, der alle Worte innerhalb von string enthält.

  • 2 - gibt einen asoziativen Array zurück, dessen Schlüssel die Position des Wortes innerhalb von string ist und dessen Wert das eigentliche Wort ist.

Für diese Funktion wird 'Wort' als locale abhängige Zeichenfolge definiert, die zusätzlich zu den Zeichen des Alphabets auch "'" and "-" Zeichen Enthalten kann, jedoch nicht damit beginnen darf.

Zurück | Zum Anfang | Nach vorne
str_split | Nach oben | strcasecmp


strcasecmp

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

strcasecmp -- Binärer Vergleich von Zeichenketten

Beschreibung:

int strcasecmp ( string str1, string str2)

Ist str1 kleiner als str2 wird < 0, ist str1 grösser als str2 wird > 0 und bei Gleichheit wird 0 zurück gegeben.

Beispiel 1. strcasecmp()-Beispiel:

$var1 = "Hallo";
$var2 = "hallo";
if (!strcasecmp($var1, $var2) ) {
    echo '$var1 ist wie $var2 bei schreibweise-unabhängigem Vergleich';
}

Beachten Sie, dass nicht zwischen Groß- und Kleinschreibung unterschieden wird.

Siehe auch ereg(), strcmp(),
substr(), stristr() und
strstr().

Zurück | Zum Anfang | Nach vorne
str_word_count | Nach oben | strchr


strchr

(PHP 3, PHP 4 , PHP 5)

strchr -- Sucht erstes Vorkommen des gesuchten Zeichens und liefert den Reststring

Beschreibung:

string strchr ( string haystack, string needle)

Diese Funktion ist ein Alias zu strstr() und funktioniert genau wie dort beschrieben.

Zurück | Zum Anfang | Nach vorne
strcasecmp | Nach oben | strcmp


strcmp

(PHP 3, PHP 4 , PHP 5)

strcmp -- Binärer Vergleich zweier Strings

Beschreibung:

int strcmp ( string str1, string str2)

Ist str1 kleiner als str2 wird < 0, ist str1 grösser als str2 wird > 0 und bei Gleichheit wird 0 zurück gegeben.

Beachten Sie, dass zwischen Groß- und Kleinschreibung unterschieden wird.

Siehe auch ereg(),
strcasecmp(), substr(),
stristr(), strncmp() und
strstr().

Zurück | Zum Anfang | Nach vorne
strchr | Nach oben | strcoll


strcoll

(PHP 4 >= 4.0.5, PHP 5)

strcoll -- Locale based string comparison

Description

int strcoll ( string str1, string str2)

Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal. strcoll() uses the current locale for doing the comparisons. If the current locale is C or POSIX, this function is equivalent to strcmp().

Note that this comparison is case sensitive, and unlike strcmp() this function is not binary safe.

Anmerkung: strcoll() was added in PHP 4.0.5, but was not enabled for win32 until 4.2.3.

See also ereg(), strcmp(),
strcasecmp(), substr(),
stristr(), strncasecmp(),
strncmp(), strstr(), and
setlocale().

Zurück | Zum Anfang | Nach vorne
strcmp | Nach oben | strcspn


strcspn

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

strcspn -- Ermittelt die Anzahl der nicht übereinstimmenden Zeichen

Beschreibung:

int strcspn ( string str1, string str2)

Die Länge des Strings str1 bis zum ersten Erscheinen eines Buchstabens (aus str1) in str2 wird zurück gegeben.

Beispiel 1. strcspn()-Beispiel:

$s1 = "dasrktuvs";
$s2 = "iklp";                  // "k" ist der "Kasus-Knacktus"
$wert = strcspn ($s1, $s2);
echo "<br> $wert <br>";  // gibt also 4 zurück

Siehe auch strspn().

Zurück | Zum Anfang | Nach vorne
strcoll | Nach oben | strip_tags


strip_tags

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

strip_tags -- Entfernt HTML- und PHP-Tags aus einem String

Beschreibung:

string strip_tags ( string str [, string allowable_tags])

Diese Funktion versucht, alle HTML- und PHP-Tags aus str zu entfernen. Bei unvollständigen oder sinnlosen Tags werden Fehler ausgegeben. Es wird die gleiche Art der Tag-Engine wie bei der fgetss()-Funktion benutzt.

Sie können den optionalen Parameter allowable_tags benutzen, um nicht zu entfernende Tags zu definieren.

Anmerkung: Allowable_tags steht ab PHP 3.0.13 bzw. PHP4B3 zur Verfügung.

Zurück | Zum Anfang | Nach vorne
strcspn | Nach oben | stripcslashes


stripcslashes

(PHP 4 , PHP 5)

stripcslashes -- Umkehrung / Gegenstück zu addcslashes

Beschreibung:

string stripcslashes ( string str)

Gibt einen String ohne "\" zurück. Wie in C werden \n, \r ..., oktal- und hexadezimal-Vorkommen erkannt.

Anmerkung: Verfügbar seit PHP4b3-dev.

Siehe auch addcslashes().

Zurück | Zum Anfang | Nach vorne
strip_tags | Nach oben | stripos


stripos

(PHP 5)

stripos -- Find position of first occurrence of a case-insensitive string

Description

int stripos ( string haystack, string needle [, int offset])

Returns the numeric position of the first occurrence of needle in the haystack string. Unlike strpos(), stripos() is case-insensitive.

Note that the needle may be a string of one or more characters.

If needle is not found, stripos() will return boolean FALSE.

Warnung

Diese Funktion kann das Boolsche FALSE zurückliefern, kann aber auch einen nicht-Boolschen Wert zurückgeben, der von einem einfachen if-Statement als FALSE ausgewertet wird, wie zum Beispiel 0 oder "". Weitere Informationen entnehmen Sie bitte dem Abschnitt über Boolsche Typen. Benutzen Sie deshalb bitte den === Operator um den Rückgabewert dieser Funktion zu überprüfen.

Beispiel 1. stripos() examples

<?php
$findme    = 'a';
$mystring1 = 'xyz';
$mystring2 = 'ABC';

$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);

// Nope, 'a' is certainly not in 'xyz'
if ($pos1 === false) {
    echo "The string '$findme' was not found in the string '$mystring1'";
}

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' is the 0th (first) character.
if ($pos2 !== false) {
    echo "We found '$findme' in '$mystring2' at position $pos2";
}
?>

If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

The optional offset parameter allows you to specify which character in haystack to start searching. The position returned is still relative to the the beginning of haystack.

See also strpos(), strrpos(),
strrchr(), substr(),
stristr(), strstr(),
strripos() and str_ireplace().

Zurück | Zum Anfang | Nach vorne
stripcslashes | Nach oben | stripslashes


stripslashes

(PHP 3, PHP 4 , PHP 5)

stripslashes -- Umkehrung / Gegenstück zu addslashes

Beschreibung:

string stripslashes ( string str)

Gibt einen String ohne evtl. vorhandene "\" (Backslash) zurück (\' wird zu ' usw.). Doppelte Rückstriche ("\\") werden zu "\" umgesetzt.

Siehe auch addslashes().

Zurück | Zum Anfang | Nach vorne
stripos | Nach oben | stristr


stristr

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

stristr -- Wie strstr(), aber ohne Rücksicht auf Groß- bzw. Kleinschreibung

Beschreibung

string stristr ( string haystack, string needle)

Findet alle Vorkommen von needle innerhalb von haystack vom Anfang bis zum Ende (ohne Rücksicht auf die Schreibweise beider Parameter).

Wird needle nicht gefunden, wird FALSE zurückgegeben.

Ist needle kein String, wird er in einen Integer-Wert umgesetzt, und die ASCII-Entsprechung dieses Wertes als zu suchendes Zeichen angesehen.

Beispiel 1. stristr() example

<?php
  $email = 'USER@EXAMPLE.com';
  $domain = stristr($email, 'e');
  print $domain;
// Ausgabe: ER@EXAMPLE.com
?>

Siehe auch strchr(),
strrchr(), substr() und
ereg().

Zurück | Zum Anfang | Nach vorne
stripslashes | Nach oben | strlen


strlen

(PHP 3, PHP 4 , PHP 5)

strlen -- Ermitteln der String-Länge

Beschreibung:

int strlen ( string str)

Gibt die Länge der Zeichenkette string zurück.

Zurück | Zum Anfang | Nach vorne
stristr | Nach oben | strnatcasecmp


strnatcasecmp

(PHP 4 , PHP 5)

strnatcasecmp -- String-Vergleich "natürlicher Ordnung" ohne Unterscheidung der Schreibweise

Beschreibung:

int strnatcasecmp ( string str1, string str2)

Diese Funktion implementiert einen String-Vergleich wie unter strnatcmp() mit dem Unterschied, dass hier nicht zwischen Groß- und Kleinschreibung unterschieden wird. Für weitere Infos siehe Martin Pool's Natural Order String Comparison Seite.

Ähnlich anderen String-Vergleichs-Funktionen gibt diese < 0 zurück, wenn str1 kleiner ist als str2 bzw. > 0, wenn str1 größer ist als str2 oder 0, wenn sie gleich sind.

Siehe auch ereg(),
strcasecmp(), substr(),
stristr(), strcmp(),
strncmp(), strnatcmp()
und strstr().

Zurück | Zum Anfang | Nach vorne
strlen | Nach oben | strnatcmp


strnatcmp

(PHP 4 , PHP 5)

strnatcmp -- String-Vergleich unter Verwendung einer "natürlichen Ordnung"

Beschreibung:

int strnatcmp ( string str1, string str2)

Diese Funktion implemetiert einen Vergleichsalgorithmus, der alphanumerische Zeichenketten "menschlich" ordnet (auch "natürliche Ordnung" genannt). Der Unterschied zwischen dieser und der regulären String-Sortierung eines Computers (verwendet in strcmp()) wird in dem folgenden Beispiel gezeigt:

$arr1 = $arr2 = array("img12.png","img10.png","img2.png","img1.png");
echo "Normaler String-Vergleich\n";
usort($arr1,"strcmp");
print_r($arr1);
echo "\nVergleich mittels natürlicher Ordnung\n";
usort($arr2,"strnatcmp");
print_r($arr2);

Der o.a. Code erzeugt die folgende Ausgabe:

Normaler String-Vergleich
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Vergleich mittels natürlicher Ordnung
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

Weitere Informationen finden Sie auf Martin Pool's Natural Order String Comparison Seite.

Ähnlich anderen String-Vergleichs-Funktionen gibt diese < 0 zurück, wenn str1 kleiner ist als str2 bzw. > 0, wenn str1 größer ist als str2 oder 0, wenn sie gleich sind.

Dieser Vergleich unterscheidet Groß- und Kleinschreibung.

Siehe auch ereg(),
strcasecmp(), substr(),
stristr(), strcmp(),
strncmp(), strncasecmp(),
strnatcasecmp(), strstr(),
natsort() und natcasesort().

Zurück | Zum Anfang | Nach vorne
strnatcasecmp | Nach oben | strncasecmp


strncasecmp

(PHP 4 >= 4.0.2, PHP 5)

strncasecmp -- Binary safe case-insensitive string comparison of the first n characters

Description

int strncasecmp ( string str1, string str2, int len)

This function is similar to strcasecmp(), with the difference that you can specify the (upper limit of the) number of characters (len) from each string to be used in the comparison.

Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.

See also ereg(), strcasecmp(),
strcmp(), substr(),
stristr(), and strstr().

Zurück | Zum Anfang | Nach vorne
strnatcmp | Nach oben | strncmp


strncmp

(PHP 4 , PHP 5)

strncmp -- Binary safe string comparison of the first n characters

Beschreibung:

int strncmp ( string str1, string str2, int len)

Diese Funktion ist ähnlich strcmp() nur mit dem Unterschied, dass sie den maximalen Wert der Zeichen (len) angeben können, der verglichen werden soll. Ist einer der Strings kürzer als (len) wird dessen Länge für den Vergleich angewendet.

Gibt < 0 zurück, wenn str1 kleiner ist als str2 bzw. > 0, wenn str1 größer ist als str2 oder 0, wenn sie gleich sind.

Dieser Vergleich unterscheidet Klein- und Großschreibung.

Siehe auch ereg(),
strcasecmp(), substr(),
stristr(), strcmp()
und strstr().

Zurück | Zum Anfang | Nach vorne
strncasecmp | Nach oben | strpos


strpos

(PHP 3, PHP 4 , PHP 5)

strpos -- Sucht erstes Vorkommen des Suchstrings und liefert die Position

Beschreibung:

int strpos ( string haystack, string needle [, int offset])

Gibt als numerischen Wert die Position des ersten Vorkommens von needle innerhalb der Zeichenkette haystack zurück. Anders als bei strrpos() kann diese Funktion eine komplette Zeichenkette unterstützen.

Wurde needle nicht gefunden, wird FALSE zurück gegeben.

Anmerkung: Die Meldungen "Zeichen bei Position 0 gefunden (character found at position 0)" und "Zeichen nicht gefunden (character not found)" werden oft falsch ausgelegt. Hier die Unterscheidung:

// in PHP 4.0b3 und danach:
$pos = strpos ($mystring, "b");
if ($pos === false) { // Achtung: 3 Gleichheits-Zeichen
    // nicht gefunden...
}

// in Versionen vor 4.0b3:
$pos = strpos ($mystring, "b");
if (is_string ($pos) && !$pos) {
    // nicht gefunden...
}

Ist needle kein String, wird er zu einem Integer-Wert umgesetzt und als das diesem Wert entsprechende ASCII-Zeichen angesehen.

Der optionale Parameter offset ermöglicht es, den Startwert für die Suche nach needle innerhalb von haystack anzugeben. Die zurück gegebene Positions-Angabe ist dann relativ zum Anfang von haystack.

Siehe auch strrpos(),
strrchr(), substr(),
stristr() und strstr().

Zurück | Zum Anfang | Nach vorne
strncmp | Nach oben | strrchr


strrchr

(PHP 3, PHP 4 , PHP 5)

strrchr -- Sucht letztes Vorkommen des gesuchten Zeichens und liefert den Reststring

Beschreibung:

string strrchr ( string haystack, string needle)

Diese Funktion gibt den letzten Teil des Strings haystack zurück, der ab dem letzten Vorkommen von needle steht (bis zum Ende).

Wird needle nicht gefunden, wird FALSE zurück gegeben.

Enthält needle mehr als ein Zeichen, wird nur das erste Zeichen genommen.

Ist needle kein String, wird er zu einem Integer-Wert umgesetzt und als das diesem Wert entsprechende ASCII-Zeichen angesehen.

Beispiel 1. strrchr()-Beispiel:

// hole das letzte Verzeichnis aus $PATH
$dir = substr (strrchr ($PATH, ":"), 1);

// hole alles nach dem letzten "Neue-Zeile"
$text = "Zeile 1\nZeile 2\nZeile 3";
$last = substr (strrchr ($text, 10), 1 );

Siehe auch substr(), stristr() und strstr().

Zurück | Zum Anfang | Nach vorne
strpos | Nach oben | strrev


strrev

(PHP 3, PHP 4 , PHP 5)

strrev -- Umdrehen eines Strings

Beschreibung:

string strrev ( string string)

Dreht die Schreibweise von string um.

Zurück | Zum Anfang | Nach vorne
strrchr | Nach oben | strripos


strripos

(PHP 5)

strripos -- Find position of last occurrence of a case-insensitive string in a string

Description

int strripos ( string haystack, string needle [, int offset])

Returns the numeric position of the last occurrence of needle in the haystack string. Unlike strrpos(), strripos() is case-insensitive. Also note that string positions start at 0, and not 1.

Note that the needle may be a string of one or more characters.

If needle is not found, FALSE is returned.

Warnung

Diese Funktion kann das Boolsche FALSE zurückliefern, kann aber auch einen nicht-Boolschen Wert zurückgeben, der von einem einfachen if-Statement als FALSE ausgewertet wird, wie zum Beispiel 0 oder "". Weitere Informationen entnehmen Sie bitte dem Abschnitt über Boolsche Typen. Benutzen Sie deshalb bitte den === Operator um den Rückgabewert dieser Funktion zu überprüfen.

Beispiel 1. A simple strripos() example

<?php
$haystack = 'ababcd';
$needle   = 'aB';

$pos      = strripos($haystack, $needle);

if ($pos === false) {
    echo "Sorry, we did not find ($needle) in ($haystack)";
} else {
    echo "Congratulations!\n";
    echo "We found the last ($needle) in ($haystack) at position ($pos)";
}
?>

Outputs:

Congratulations!
   We found the last (aB) in (ababcd) at position (2)

offset may be specified to begin searching an arbitrary number of characters into the string. Negative values will stop searching at an arbitrary point prior to the end of the string.

See also strrpos(),
strrchr(),
substr(), stripos() and
stristr().

Zurück | Zum Anfang | Nach vorne
strrev | Nach oben | strrpos


strrpos

(PHP 3, PHP 4 , PHP 5)

strrpos -- Sucht letztes Vorkommen des gesuchten Zeichens und liefert die Position

Beschreibung:

int strrpos ( string haystack, char needle)

Der Wert des letzen Vorkommens von needle im String haystack wird ermittelt. Needle darf nur ein einzelnes Zeichen sein. Wird als needle eine Zeichenkette übergeben, wird nur dessen erster Buchstabe ausgewertet.

Wurde needle nicht gefunden, wird FALSE zurück gegeben.

Ist needle kein String, wird er zu einem Integer-Wert umgesetzt und als das diesem Wert entsprechende ASCII-Zeichen angesehen.

Siehe auch strpos(),
strrchr(), substr(),
stristr() und strstr().

Zurück | Zum Anfang | Nach vorne
strripos | Nach oben | strspn


strspn

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

strspn -- Ermittelt die Länge der übereinstimmenden Zeichen

Beschreibung:

int strspn ( string str1, string str2)

Ermittelt die Anzahl der Zeichen am Anfang von str1, die aus dem in str2 übergebenen Zeichenvorrat stammen.

So ergibt z.B.

strspn("42 ist die Antwort, was ist die Frage ...","1234567890");

als Ergebnis 2.

Siehe auch strcspn().

Zurück | Zum Anfang | Nach vorne
strrpos | Nach oben | strstr


strstr

(PHP 3, PHP 4 , PHP 5)

strstr -- Sucht erstes Vorkommen des Suchstrings und liefert den Reststring

Beschreibung

string strstr ( string haystack, string needle)

Gibt den String haystack ab dem ersten Vorkommen von needle bis zum Ende zurück.

Falls needle nicht gefunden wird, ist das Ergebnis FALSE.

Ist needle kein String, wird er zu einem Integer-Wert umgesetzt und als das diesem Wert entsprechende ASCII-Zeichen angesehen.

Anmerkung: Diese Funktion unterscheidet zwischen Groß- und Kleinschreibung. Ist keine Unterscheidung gewünscht / erforderlich, sollten Sie stristr() verwenden.

Beispiel 1. strstr() Beispiel

$email = 'user@example.com';
$domain = strstr($email, '@');
print $domain; // Ausgabe: @example.com

Anmerkung: Wenn Sie nur herausfinden möchten, ob ein bestimmter needle innerhalb von haystack vorkommt, verwenden Sie stattdessen die schnellere und weniger speicherintesive Funktion strpos().

Siehe auch ereg(), preg_match(),
strchr(), stristr(),
strpos(), strrchr() und
substr().

Zurück | Zum Anfang | Nach vorne
strspn | Nach oben | strtok


strtok

(PHP 3, PHP 4 , PHP 5)

strtok -- Zerlegt einen String

Beschreibung:

string strtok ( string arg1, string arg2)

strtok() wird benutzt, um einen String (arg1) zu teilen. Den Satz "Das ist ein Beispiel" können Sie in seine einzelnen Wörter zerlegen, in dem Sie das Leerzeichen als Trennzeichen (arg2) angeben.

Beispiel 1. strtok()-Beispiel:

$string = "Das ist noch ein Beispiel";
$tok = strtok ($string," ");
while ($tok) {
    echo "Wort=$tok<br>";
    $tok = strtok (" ");
}

Beachten Sie, dass der zu zerlegende String nur beim ersten Aufruf von strtok() angegeben werden muss. Die nachfolgenden Aufrufe brauchen nur das Trennzeichen als Parameter. Falls Sie eine neue Zeichenkette zerlegen wollen, rufen Sie strtok() wieder mit dem Parameter arg1 auf. Das initialisiert die Funktion. Sie können auch meherere Trennzeichen in arg2 angeben. Die Trennung erfolgt beim ersten Auftreten eines beliebigen Zeichens aus arg2.

Beachten Sie, dass die Teile auch "0" sein können. Dies entspricht in bedingten Ausdrücken dem Wert FALSE.

Siehe auch split() und explode().

Zurück | Zum Anfang | Nach vorne
strstr | Nach oben | strtolower


strtolower

(PHP 3, PHP 4 , PHP 5)

strtolower -- Setzt einen String in Kleinbuchstaben um

Beschreibung:

string strtolower ( string str)

Gibt string zurück, in dem alle Buchstaben in Kleinbuchstaben umgewandelt wurden.

Beachten Sie, dass 'Buchstaben' vom Wert locale abhängig ist. Ist z.B. die Voreinstellung für locale "C", werden keine Umlaute (Ä, Ü, Ö) umgewandelt.

Beispiel 1. strtolower()-Beispiel:

$str = "Dieter B. (M.T.) Ist Ein Schaf und Er LIEBT Sich So";
$str = strtolower($str);
print $str; // Gibt "dieter b. (m.t.) ist ein schaf und er liebt sich
            // so" aus.

Siehe auch strtoupper() und ucfirst().

Zurück | Zum Anfang | Nach vorne
strtok | Nach oben | strtoupper


strtoupper

(PHP 3, PHP 4 , PHP 5)

strtoupper -- Setzt einen String in Großbuchstaben um

Beschreibung:

string strtoupper ( string string)

Gibt string zurück, in dem alle Buchstaben in Großbuchstaben umgewandelt wurden.

Beachten Sie, dass 'Buchstaben' vom Wert locale abhängig ist. Ist z.B. die Voreinstellung für locale "C", werden keine Umlaute (ä, ü, ö) umgewandelt.

Beispiel 1. strtoupper()-Beispiel:

$str = "Dieter B. (M.T.) Ist Ein Schaf und Er LIEBT Sich So";
$str = strtoupper($str);
print $str; // Gibt "DIETER B. (M.T.) IST EIN SCHAF UND ER LIEBT SICH
            // SO" aus.

Siehe auch strtolower() und ucfirst().

Zurück | Zum Anfang | Nach vorne
strtolower | Nach oben | strtr


strtr

(PHP 3, PHP 4 , PHP 5)

strtr -- Tauscht bestimmte Zeichen aus

Beschreibung:

string strtr ( string str, string from, string to)

Diese Funktion bearbeitet str, in dem alle Vorkommen von Zeichen aus from in die entsprechenden Zeichen aus to umgesetzt werden. Zurück gegeben wird der bearbeitete String.

Sind from und to von unterschiedlicher Länge werden die überzähligen Zeichen ignoriert.

Beispiel 1. strtr()-Beispiel:

$addr = strtr($addr, "äåö", "aao");

strtr() kann auch mit nur 2 Argumenten aufgerufen werden. Die Funktionsweise ist dann anders: From muss dann ein Array sein, welches String -> String Paare enthält, die innerhalb des Quellstrings ausgetauscht werden sollen. Strtr sucht immer erst die längste Entsprechung und wird keine Auswechselungen vornehmen, die bereits bearbeitet wurden.

Beispiele dazu:

$trans = array ("hallo" => "hi", "hi" => "hallo");
echo strtr("hi alle, ich sage hallo", $trans) . "\n";

Die Ausgabe ist: "hallo alle, ich sage hi",

Anmerkung: Die Möglichkeit mit 2 Parametern wurde in PHP 4.0 hinzugefügt.

Siehe auch ereg_replace().

Zurück | Zum Anfang | Nach vorne
strtoupper | Nach oben | substr_compare


substr_compare

(PHP 5)

substr_compare -- Binary safe optionally case insensitive comparison of 2 strings from an offset, up to length characters

Description

int substr_compare ( string main_str, string str, int offset [, int length [, bool case_sensitivity]])

substr_compare() compares main_str from position offset with str up to length characters.

Returns < 0 if main_str from position offset is less than str, > 0 if it is greater than str, and 0 if they are equal. If length is equal or greater than length of main_str and length is set, substr_compare() prints warning and returns FALSE.

If case_sensitivity is TRUE, comparison is case sensitive.

Beispiel 1. A substr_compare() example

<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // warning
?>

Zurück | Zum Anfang | Nach vorne
strtr | Nach oben | substr_count


substr_count

(PHP 4 , PHP 5)

substr_count -- Ermittelt, wie oft eine Zeichenkette in einem String vorkommt

Beschreibung:

int substr_count ( string haystack, string needle)

Die Funktion substr_count() ermittelt, wie oft needle in dem String haystack vorkommt, und gibt die Anzahl der Vorkommen zurück.

Beispiel 1. substr_count()-Beispiel:

<?php
print substr_count("Dieser Test ist Mist", "ist"); // ergibt 2
?>

Siehe auch count_chars(),
strpos(), substr()
und strstr().

Zurück | Zum Anfang | Nach vorne
substr_compare | Nach oben | substr_replace


substr_replace

(PHP 4 , PHP 5)

substr_replace -- Ersetzt Text in einer Zeichenkette

Beschreibung:

string substr_replace ( string string, string replacement, int start [, int length])

substr_replace() ersetzt den Teil von string, der durch die Parameter start und (optional) length begrenzt wird mit der in replacement angegeben Zeichnekette. Das Ergebnis wird zurück gegeben.

Ist start positiv, beginnt der Austausch am Offset start innerhalb von string.

Ist start negativ, wird vom Ende der Zeichenkette string bis zum Wert von start rückwärts gezählt und dort mit dem Austausch begonnen.

Ist length angegeben und positive, stellt dieser Parameter die Länge des auszuwechselnden Teilstrings dar. Ist length angegeben und negativ, gibt er die Zeichenzahl an um die ab Ende von string rückwärts gezählt wird. Bis zu dieser Stelle erfolgt dann der Austausch. Ist length nicht angegeben, wird unterstellt, dass Sie die Ersetzung bis zum String-Ende (strlen(string )) bezwecken.

Beispiel 1. substr_replace()-Beispiel:

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr>\n";

/* Diese 2 Beispiele ersetzen alles in $var mit 'bob'. */
echo substr_replace ($var, 'bob', 0) . "<br>\n";
echo substr_replace ($var, 'bob', 0, strlen ($var)) . "<br>\n";

/* Fügt 'bob' am Anfang von $var ein . */
echo substr_replace ($var, 'bob', 0, 0) . "<br>\n";

/* Die nächsten beiden ersetzen 'MNRPQR' in $var durch 'bob'. */
echo substr_replace ($var, 'bob', 10, -1) . "<br>\n";
echo substr_replace ($var, 'bob', -7, -1) . "<br>\n";

/* Löscht 'MNRPQR' aus $var. */
echo substr_replace ($var, '', 10, -1) . "<br>\n";
?>

Sieehe auch str_replace() und substr().

Anmerkung: substr_replace() existiert ab PHP 4.0.

Zurück | Zum Anfang | Nach vorne
substr_count | Nach oben | substr


substr

(PHP 3, PHP 4 , PHP 5)

substr -- Gibt einen Teil eines Strings zurück

Beschreibung:

string substr ( string string, int start [, int length])

substr() gibt den Teil von string zurück, der durch die Parameter start und length definiert wurde.

Wenn start positiv ist, beginnt der zurück gegebene String an der start-Position von string, angefangen bei NULL. So ist z.B. im String 'abcdef' das Zeichen an der Position 0 gleich 'a', das Zeichen an der Position 2 ist 'c' usw.

Beispiel 1. Generelle Verwendung von substr()

<?php
$rest = substr("abcdef", 1);    // gibt "bcdef" zurück
$rest = substr("abcdef", 1, 3); // gibt "bcd" zurück
$rest = substr("abcdef", 0, 4); // gibt "abcd" zurück
$rest = substr("abcdef", 0, 8); // gibt "abcdef" zurück

// Der Zugriff mittels geschwungenen Klammer ist eine
// weitere Möglickeit
$string = 'abcdef';
echo $string{0};                // gibt a zurück
echo $string{3};                // gibt d zurück
?>

Ist start negativ, beginnt der zurückgegebene String bei dem start'en Zeichen vom Ende von string.

Beispiel 2. Negativen start verwenden

<?php
$rest = substr("abcdef", -1);    // gibt "f" zurück
$rest = substr("abcdef", -2);    // gibt "ef" zurück
$rest = substr("abcdef", -3, 1); // gibt "d" zurück
?>

Ist length angegeben und positiv, enthält der zurückgegebene String höchstens length Zeichen ab start (abhängig von der Länge von string). Ist string kürzer als start Zeichen, wird FALSE zurückgegeben.

Ist length angegeben und negativ, dann werden genauso viele Zeichen vom Ende von string abgeschnitten (nachdem die Starposition ermittelt wurde, sollte start negativ sein). Gibt start eine Position hinter dem abzuschneidenden Teil an, wird ein leerer String zurückgegeben.

Beispiel 3. Negative length verwenden

<?php
$rest = substr("abcdef", 0, -1);  // gibt "abcde" zurück
$rest = substr("abcdef", 2, -1);  // gibt "cde" zurück
$rest = substr("abcdef", 4, -4);  // gibt "" zurück
$rest = substr("abcdef", -3, -1); // gibt "de" zurück
?>

Siehe auch strrchr() und ereg().

Zurück | Zum Anfang | Nach vorne
substr_replace | Nach oben | trim


trim

(PHP 3, PHP 4 , PHP 5)

trim -- Entfernt überflüssige Zeichen ("whitespace") am Anfang und Ende eines Strings

Beschreibung:

string trim ( string str)

Diese Funktion entfernt Leerraum am Anfang und Ende einer Zeichenkette. Der gekürzte String wird zurück gegeben. Als überflüssige Zeichen werden z.Zt. angesehen: "\n", "\r", "\t", "\v", "\0" und normale Leerzeichen.

Siehe auch chop(), ltrim(), und rtrim().

Zurück | Zum Anfang | Nach vorne
substr | Nach oben | ucfirst


ucfirst

(PHP 3, PHP 4 , PHP 5)

ucfirst -- Setzt das erste Zeichen eines Strings als Großbuchstabe um

Beschreibung:

string ucfirst ( string str)

Setzt das erste Zeichen von str in einen Großbuchstaben um, wenn es ein Zeichen des Alphabets ist.

Beachten Sie, dass die Zeichen des Alphabets abhängig sind vom Wert des gesetzten locale. Ist dieser (Voreinstellung) "C", werden die deutschen Umlaute nicht erkannt.

Beispiel 1. ucfirst()-Beispiel:

$text = 'markus ist ein kleines schaf.';
$text = ucfirst ($text); // $text ist nun "Markus ist ein kleines
                         // schaf."

Siehe auch strtoupper() und strtolower().

Zurück | Zum Anfang | Nach vorne
trim | Nach oben | ucwords


ucwords

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ucwords -- Setzt die ersten Buchstaben aller Wörter eines Strings in die entsprechenden Großbuchstaben um

Beschreibung:

string ucwords ( string str)

Setzt die ersten Buchstaben aller Wörter innerhalb von str in die entsprechenden Großbuchstaben um, sofern es sich um alphabetische Zeichen handelt.

Beachten Sie, dass die Zeichen des Alphabets abhängig sind vom Wert des gesetzten locale. Ist dieser (Voreinstellung) "C", werden die deutschen Umlaute nicht erkannt.

Beispiel 1. ucwords()-Beispiel:

$text = "markus ist ein kleines schaf.";
$text = ucwords ($text); // $text ist jetzt: "Markus Ist Ein Kleines
                         // Schaf."

Siehe auch strtoupper(), strtolower() und ucfirst().

Zurück | Zum Anfang | Nach vorne
ucfirst | Nach oben | vprintf


vprintf

(PHP 4 >= 4.1.0, PHP 5)

vprintf -- Output a formatted string

Description

void vprintf ( string format, array args)

Display array values as a formatted string according to format (which is described in the documentation for sprintf()).

Operates as printf() but accepts an array of arguments, rather than a variable number of arguments.

See also printf(), sprintf(), vsprintf()

Zurück | Zum Anfang | Nach vorne
ucwords | Nach oben | vsprintf


vsprintf

(PHP 4 >= 4.1.0, PHP 5)

vsprintf -- Return a formatted string

Description

string vsprintf ( string format, array args)

Return array values as a formatted string according to format (which is described in the documentation for sprintf()).

Operates as sprintf() but accepts an array of arguments, rather than a variable number of arguments.

See also sprintf() and vprintf()

Zurück | Zum Anfang | Nach vorne
vprintf | Nach oben | wordwrap


wordwrap

(PHP 4 >= 4.0.2, PHP 5)

wordwrap -- Bricht die Zeilen eines Strings nach einer bestimmten Anzahl Zeichen mittels des angegebenen Trennzeichens um.

Beschreibung:

string wordwrap ( string str [, int width [, string break [, int cut]]])

Bricht die Zeilen des Strings str an der mittels width angegebenen Position um. Diese Zeilenumbrüche werden mit dem im (optionalen) Parameter break spezifizierten Steuerzeichen durchgeführt.

Die Funktion wordwrap() bricht die Zeilen automatisch an der Spalte 75 unter Verwendung des Steuerzeichens '\n' (neue Zeile) um, wenn die optionalen Parameter width und / oder break nicht angegeben sind.

Steht cut auf 1, wird der String immer an der vorgegebenen Länge umgebrochen. Ist ein Wort also länger als die gegebene Länge, wird der Zeilumbruch auch innerhalb des Wortes eingefügt (siehe zweites Beispiel).

Anmerkung: Der optionale Parameter cut wurde in PHP 4.0.3 eingeführt.

Beispiel 1. wordwrap()-Beispiel:

$text = "Der schnelle braune Fuchs sprang über den faulen Hund.";
$neuertext = wordwrap( $text, 20 );

echo "$neuertext\n";

Dieses Beispiel gibt aus:

Der schnelle braune
Fuchs sprang über
den faulen Hund.

Beispiel 2. wordwrap() example

$text = "Ein sehr langes Wooooooooooort.";
$neuertext = wordwrap( $text, 8, "\n", 1);

echo "$neuertext\n";

Dieses Beispiel gibt aus:

Ein sehr
langes
Wooooooo
oooort.

Siehe auch nl2br().

Zurück | Zum Anfang | Nach vorne
vsprintf | Nach oben | Sybase Funktionen


Sybase Funktionen

PHP Handbuch
Zurück Nach vorne

CVII. Sybase Funktionen

Einführung

Anforderungen

Installation

Um die Sybase-Datenbankunterstützung zu aktivieren, müssen Sie PHP mit der Option --with-sybase[=DIR]konfigurieren. DIR ist das Sybase Wurzelverzeichnis, welches im Normalfall /home/sybase ist. Zur Aktivierung der Sybase-CT Unterstützung, muss als PHP-Konfigurationsparameter --with-sybase-ct[=DIR] angegeben werden. Auch hier ist DIR das Sybase Wurzelverzeichnis, dass normalerweise /home/sybase ist.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Sybase Konfigurationsoptionen

Name | Standardwert | Änderbar
sybase.allow_persistent | "On" | PHP_INI_SYSTEM
sybase.max_persistent | "-1" | PHP_INI_SYSTEM
sybase.max_links | "-1" | PHP_INI_SYSTEM
sybase.interface_file | "/usr/sybase/interfaces" | PHP_INI_SYSTEM
sybase.min_error_severity | "10" | PHP_INI_ALL
sybase.min_message_severity | "10" | PHP_INI_ALL
sybase.compatability_mode | "Off" | PHP_INI_SYSTEM
magic_quotes_sybase | "Off" | PHP_INI_ALL

Hier eine kurze Erklärung der Konfigurationsoptionen:

sybase.allow_persistent boolean

Whether to allow persistent Sybase connections.

sybase.max_persistent integer

The maximum number of persistent Sybase connections per process. -1 means no limit.

sybase.max_links integer

The maximum number of Sybase connections per process, including persistent connections. -1 means no limit.

sybase.min_error_severity integer

Minimum error severity to display.

sybase.min_message_severity integer

Minimum message severity to display.

sybase.compatability_mode boolean

Compatability mode with old versions of PHP 3.0. If on, this will cause PHP to automatically assign types to results according to their Sybase type, instead of treating them all as strings. This compatability mode will probably not stay around forever, so try applying whatever necessary changes to your code, and turn it off.

magic_quotes_sybase boolean

If magic_quotes_sybase is on, a single-quote is escaped with a single-quote instead of a backslash if magic_quotes_gpc or magic_quotes_runtime are enabled.

Anmerkung: Note that when magic_quotes_sybase is ON it completely overrides magic_quotes_gpc . In this case even when magic_quotes_gpc is enabled neither double quotes, backslashes or NUL's will be escaped.

Tabelle 2. Sybase-CT configuration options

Name | Default | Changeable
sybct.allow_persistent | "On" | PHP_INI_SYSTEM
sybct.max_persistent | "-1" | PHP_INI_SYSTEM
sybct.max_links | "-1" | PHP_INI_SYSTEM
sybct.min_server_severity | "10" | PHP_INI_ALL
sybct.min_client_severity | "10" | PHP_INI_ALL
sybct.hostname | NULL | PHP_INI_ALL
sybct.deadlock_retry_count | "-1" | PHP_INI_ALL

Hier eine kurze Erklärung der Konfigurationsoptionen:

sybct.allow_persistent boolean

Whether to allow persistent Sybase-CT connections. The default is on.

sybct.max_persistent integer

The maximum number of persistent Sybase-CT connections per process. The default is -1 meaning unlimited.

sybct.max_links integer

The maximum number of Sybase-CT connections per process, including persistent connections. The default is -1 meaning unlimited.

sybct.min_server_severity integer

Server messages with severity greater than or equal to sybct.min_server_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_server_severity(). The default is 10 which reports errors of information severity or greater.

sybct.min_client_severity integer

Client library messages with severity greater than or equal to sybct.min_client_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_client_severity(). The default is 10 which effectively disables reporting.

sybct.hostname string

The name of the host you claim to be connecting from, for display by sp_who. The default is none.

sybct.deadlock_retry_count int

Allows you to to define how often deadlocks are to be retried. The default is -1, or "forever".

For further details and definition of the PHP_INI_* constants see ini_set().

Resource Typen

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
sybase_affected_rows -- Gets number of affected rows in last query
sybase_close -- Closes a Sybase connection
sybase_connect -- Opens a Sybase server connection
sybase_data_seek -- Moves internal row pointer
sybase_deadlock_retry_count -- Sets the deadlock retry count
sybase_fetch_array -- Fetch row as array
sybase_fetch_assoc -- Fetch a result row as an associative array
sybase_fetch_field -- Get field information from a result
sybase_fetch_object -- Fetch a row as an object
sybase_fetch_row -- Get a result row as an enumerated array
sybase_field_seek -- Sets field offset
sybase_free_result -- Frees result memory
sybase_get_last_message -- Returns the last message from the server
sybase_min_client_severity -- Sets minimum client severity
sybase_min_error_severity -- Sets minimum error severity
sybase_min_message_severity -- Sets minimum message severity
sybase_min_server_severity -- Sets minimum server severity
sybase_num_fields -- Gets the number of fields in a result set
sybase_num_rows -- Get number of rows in a result set
sybase_pconnect -- Open persistent Sybase connection
sybase_query -- Sendet eine Sybase Anfrage
sybase_result -- Get result data
sybase_select_db -- Selects a Sybase database
sybase_set_message_handler -- Sets the handler called when a server message is raised
sybase_unbuffered_query -- Send a Sybase query and do not block

Zurück | Zum Anfang | Nach vorne
wordwrap | Nach oben | sybase_affected_rows


sybase_affected_rows

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sybase_affected_rows -- Gets number of affected rows in last query

Description

int sybase_affected_rows ( [resource link_identifier])

sybase_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query on the server associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Beispiel 1. Delete-Query

<?php
    /* connect to database */
    sybase_connect('SYBASE', '', '') or
        die("Could not connect");
    sybase_select_db("db");

    sybase_query("DELETE FROM sometable WHERE id < 10");
    printf("Records deleted: %d\n", sybase_affected_rows());
?>

The above example would produce the following output:

Records deleted: 10

This command is not effective for SELECT statements, only on statements which modify records. To retrieve the number of rows returned from a SELECT, use sybase_num_rows().

Anmerkung: This function is only available using the CT library interface to Sybase, and not the DB library.

See also sybase_num_rows().

Zurück | Zum Anfang | Nach vorne
Sybase Funktionen | Nach oben | sybase_close


sybase_close

(PHP 3, PHP 4 , PHP 5)

sybase_close -- Closes a Sybase connection

Description

bool sybase_close ( [resource link_identifier])

sybase_close() closes the link to a Sybase database that's associated with the specified link link_identifier. If the link identifier isn't specified, the last opened link is assumed.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

sybase_close() will not close persistent links generated by sybase_pconnect().

See also sybase_connect() and sybase_pconnect().

Zurück | Zum Anfang | Nach vorne
sybase_affected_rows | Nach oben | sybase_connect


sybase_connect

(PHP 3, PHP 4 , PHP 5)

sybase_connect -- Opens a Sybase server connection

Description

resource sybase_connect ( [string servername [, string username [, string password [, string charset [, string appname]]]]])

Returns a positive Sybase link identifier on success, or FALSE on failure.

sybase_connect() establishes a connection to a Sybase server. The servername argument has to be a valid servername that is defined in the 'interfaces' file.

In case a second call is made to sybase_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling sybase_close().

Beispiel 1. sybase_connect() example

<?php
    $link = sybase_connect('SYBASE', '', '')
            or die("Could not connect !");
    echo "Connected successfully";
    sybase_close($link);
?>

See also sybase_pconnect() and sybase_close().

Zurück | Zum Anfang | Nach vorne
sybase_close | Nach oben | sybase_data_seek


sybase_data_seek

(PHP 3, PHP 4 , PHP 5)

sybase_data_seek -- Moves internal row pointer

Description

bool sybase_data_seek ( resource result_identifier, int row_number)

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

sybase_data_seek() moves the internal row pointer of the Sybase result associated with the specified result identifier to pointer to the specified row number. The next call to sybase_fetch_row() would return that row.

See also sybase_fetch_row().

Zurück | Zum Anfang | Nach vorne
sybase_connect | Nach oben | sybase_deadlock_retry_count


sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_count -- Sets the deadlock retry count

Description

void sybase_deadlock_retry_count ( int retry_count)

Using sybase_deadlock_retry_count(), the number of retries can be defined in cases of deadlocks. By default, every deadlock is retried an infinite number of times or until the process is killed by Sybase, the executing script is killed (for instance, by set_time_limit()) or the query succeeds.

Tabelle 1. Values for retry_count

-1 | Retry forever (default)
0 | Do not retry
n | Retry n times

Anmerkung: This function is only available using the CT library interface to Sybase, and not the DB library.

Zurück | Zum Anfang | Nach vorne
sybase_data_seek | Nach oben | sybase_fetch_array


sybase_fetch_array

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_array -- Fetch row as array

Description

array sybase_fetch_array ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_array() is an extended version of sybase_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using sybase_fetch_array() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

Anmerkung: When selecting fields with identical names (for instance, in a join), the associative indices will have a sequential number prepended. See the example for details.

Beispiel 1. Identical fieldnames

<?php
    $dbh = sybase_connect('SYBASE', '', '');
    $q = sybase_query('SELECT * FROM p, a WHERE p.person_id= a.person_id');
    var_dump(sybase_fetch_array($q));
    sybase_close($dbh);
?>

The above example would produce the following output (assuming the two tables only have each one column called "person_id"):

array(4) {
  [0]=>
  int(1)
  ["person_id"]=>
  int(1)
  [1]=>
  int(1)
  ["person_id1"]=>
  int(1)
}

See also
sybase_fetch_row(),
sybase_fetch_assoc() and
sybase_fetch_object().

Zurück | Zum Anfang | Nach vorne
sybase_deadlock_retry_count | Nach oben | sybase_fetch_assoc


sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc -- Fetch a result row as an associative array

Description

array sybase_fetch_assoc ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_assoc() is a version of sybase_fetch_row() that uses column names instead of integers for indices in the result array. Columns from different tables with the same names are returned as name, name1, name2, ..., nameN.

An important thing to note is that using sybase_fetch_assoc() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

See also
sybase_fetch_array(),
sybase_fetch_object() and
sybase_fetch_row().

Zurück | Zum Anfang | Nach vorne
sybase_fetch_array | Nach oben | sybase_fetch_field


sybase_fetch_field

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_field -- Get field information from a result

Description

object sybase_fetch_field ( resource result [, int field_offset])

Returns an object containing field information.

sybase_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by sybase_fetch_field() is retrieved.

The properties of the object are:

  • name - column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.

  • column_source - the table from which the column was taken

  • max_length - maximum length of the column

  • numeric - 1 if the column is numeric

  • type - datatype of the column

See also sybase_field_seek().

Zurück | Zum Anfang | Nach vorne
sybase_fetch_assoc | Nach oben | sybase_fetch_object


sybase_fetch_object

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_object -- Fetch a row as an object

Description

object sybase_fetch_object ( resource result [, mixed object])

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

sybase_fetch_object() is similar to sybase_fetch_assoc(), with one difference - an object is returned, instead of an array.

Use the second object to specify the type of object you want to return. If this parameter is omitted, the object will be of type stdClass.

Anmerkung: As of PHP 4.3.0, this function will no longer return numeric object members.

Old behaviour:
object(stdclass)(3) {
  [0]=>
  string(3) "foo"
  ["foo"]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
}
New behaviour:
object(stdclass)(3) {
  ["foo"]=>
  string(3) "foo"
  ["bar"]=>
  string(3) "bar"
}

Beispiel 1. sybase_fetch_object() return as Foo

<?php
    class Foo {
        var $foo, $bar, $baz;
    }

    // {...]
    $qrh= sybase_query('SELECT foo, bar, baz FROM example');
    $foo= sybase_fetch_object($qrh, 'Foo');
    $bar= sybase_fetch_object($qrh, new Foo());
    // {...]
?>

Speed-wise, the function is identical to sybase_fetch_array(), and almost as quick as sybase_fetch_row() (the difference is insignificant).

See also sybase_fetch_array() and sybase_fetch_row().

Zurück | Zum Anfang | Nach vorne
sybase_fetch_field | Nach oben | sybase_fetch_row


sybase_fetch_row

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_row -- Get a result row as an enumerated array

Description

array sybase_fetch_row ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to sybase_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Tabelle 1. Data types

PHP | Sybase
string | VARCHAR, TEXT, CHAR, IMAGE, BINARY, VARBINARY, DATETIME
int | NUMERIC (w/o precision), DECIMAL (w/o precision), INT, BIT, TINYINT, SMALLINT
float | NUMERIC (w/ precision), DECIMAL (w/ precision), REAL, FLOAT, MONEY
NULL | NULL

See also
sybase_fetch_array(),
sybase_fetch_assoc(),
sybase_fetch_object(),
sybase_data_seek() and
sybase_result().

Zurück | Zum Anfang | Nach vorne
sybase_fetch_object | Nach oben | sybase_field_seek


sybase_field_seek

(PHP 3, PHP 4 , PHP 5)

sybase_field_seek -- Sets field offset

Description

bool sybase_field_seek ( resource result, int field_offset)

Seeks to the specified field offset. If the next call to sybase_fetch_field() won't include a field offset, this field would be returned.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also sybase_fetch_field().

Zurück | Zum Anfang | Nach vorne
sybase_fetch_row | Nach oben | sybase_free_result


sybase_free_result

(PHP 3, PHP 4 , PHP 5)

sybase_free_result -- Frees result memory

Description

bool sybase_free_result ( resource result)

sybase_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call sybase_free_result() with the result identifier as an argument and the associated result memory will be freed.

Zurück | Zum Anfang | Nach vorne
sybase_field_seek | Nach oben | sybase_get_last_message


sybase_get_last_message

(PHP 3, PHP 4 , PHP 5)

sybase_get_last_message -- Returns the last message from the server

Description

string sybase_get_last_message ( void )

sybase_get_last_message() returns the last message reported by the server.

See also sybase_min_message_severity().

Zurück | Zum Anfang | Nach vorne
sybase_free_result | Nach oben | sybase_min_client_severity


sybase_min_client_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_client_severity -- Sets minimum client severity

Description

void sybase_min_client_severity ( int severity)

sybase_min_client_severity() sets the minimum client severity level.

Anmerkung: This function is only available using the CT library interface to Sybase, and not the DB library.

See also sybase_min_server_severity().

Zurück | Zum Anfang | Nach vorne
sybase_get_last_message | Nach oben | sybase_min_error_severity


sybase_min_error_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_error_severity -- Sets minimum error severity

Description

void sybase_min_error_severity ( int severity)

sybase_min_error_severity() sets the minimum error severity level.

See also sybase_min_message_severity().

Zurück | Zum Anfang | Nach vorne
sybase_min_client_severity | Nach oben | sybase_min_message_severity


sybase_min_message_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_message_severity -- Sets minimum message severity

Description

void sybase_min_message_severity ( int severity)

sybase_min_message_severity() sets the minimum message severity level.

See also sybase_min_error_severity().

Zurück | Zum Anfang | Nach vorne
sybase_min_error_severity | Nach oben | sybase_min_server_severity


sybase_min_server_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_server_severity -- Sets minimum server severity

Description

void sybase_min_server_severity ( int severity)

sybase_min_server_severity() sets the minimum server severity level.

Anmerkung: This function is only available using the CT library interface to Sybase, and not the DB library.

See also sybase_min_client_severity().

Zurück | Zum Anfang | Nach vorne
sybase_min_message_severity | Nach oben | sybase_num_fields


sybase_num_fields

(PHP 3, PHP 4 , PHP 5)

sybase_num_fields -- Gets the number of fields in a result set

Description

int sybase_num_fields ( resource result)

sybase_num_fields() returns the number of fields in a result set.

See also
sybase_query(),
sybase_fetch_field() and
sybase_num_rows().

Zurück | Zum Anfang | Nach vorne
sybase_min_server_severity | Nach oben | sybase_num_rows


sybase_num_rows

(PHP 3, PHP 4 , PHP 5)

sybase_num_rows -- Get number of rows in a result set

Description

int sybase_num_rows ( resource result)

sybase_num_rows() returns the number of rows in a result set.

See also
sybase_num_fields(),
sybase_query() and
sybase_fetch_row().

Zurück | Zum Anfang | Nach vorne
sybase_num_fields | Nach oben | sybase_pconnect


sybase_pconnect

(PHP 3, PHP 4 , PHP 5)

sybase_pconnect -- Open persistent Sybase connection

Description

resource sybase_pconnect ( [string servername [, string username [, string password [, string charset [, string appname]]]]])

Returns a positive Sybase persistent link identifier on success, or FALSE on error.

sybase_pconnect() acts very much like sybase_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (sybase_close() will not close links established by sybase_pconnect()()).

This type of links is therefore called 'persistent'.

See also sybase_connect().

Zurück | Zum Anfang | Nach vorne
sybase_num_rows | Nach oben | sybase_query


sybase_query

(PHP 3, PHP 4 , PHP 5)

sybase_query -- Sendet eine Sybase Anfrage

Beschreibung

int sybase_query ( string Anfrage, int Verbindungskennung)

Gibt bei Erfolg eine positive Ergebnis-Kennung oder, bei Auftreten eines Fehlers, FALSE zurück.

sybase_query() sendet eine Anfrage an die gerade aktive Datenbank auf dem Server, die zur angegebenen Verbindungskennung gehört. Wenn keine Verbindungskennung angegeben wird, wird von der zuletzt geöffneten Verbindung ausgegangen. Wenn es keine offene Verbindung gibt, versucht die Funktion eine Verbindung aufzubauen, als wäre sybase_connect() aufgerufen worden, und diese zu benutzen.

Siehe auch:
sybase_db_query(),
sybase_select_db() und
sybase_connect().

Zurück | Zum Anfang | Nach vorne
sybase_pconnect | Nach oben | sybase_result


sybase_result

(PHP 3, PHP 4 , PHP 5)

sybase_result -- Get result data

Description

string sybase_result ( resource result, int row, mixed field)

Returns the contents of the cell at the row and offset in the specified Sybase result set.

sybase_result() returns the contents of one cell from a Sybase result set. The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than sybase_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Recommended high-performance alternatives:
sybase_fetch_row(),
sybase_fetch_array() and
sybase_fetch_object().

Zurück | Zum Anfang | Nach vorne
sybase_query | Nach oben | sybase_select_db


sybase_select_db

(PHP 3, PHP 4 , PHP 5)

sybase_select_db -- Selects a Sybase database

Description

bool sybase_select_db ( string database_name [, resource link_identifier])

sybase_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if sybase_connect() was called, and use it.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Every subsequent call to sybase_query() will be made on the active database.

See also
sybase_connect(),
sybase_pconnect() and
sybase_query()

Zurück | Zum Anfang | Nach vorne
sybase_result | Nach oben | sybase_set_message_handler


sybase_set_message_handler

(PHP 4 >= 4.3.0, PHP 5)

sybase_set_message_handler -- Sets the handler called when a server message is raised

Description

bool sybase_set_message_handler ( callback handler [, resource connection])

sybase_set_message_handler() sets a user function to handle messages generated by the server. You may specify the name of a global function, or use an array to specify an object reference and a method name.

The handler expects five arguments in the following order: message number, severity, state, line number and description. The first four are integers. The last is a string. If the function returns FALSE, PHP generates an ordinary error message.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Anmerkung: The connection parameter was added in PHP 4.3.5.

Beispiel 1. sybase_set_message_handler() callback function

<?php
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Beispiel 2. sybase_set_message_handler() callback to a class

<?php
    class Sybase {
        function handler($msgnumber, $severity, $state, $line, $text)
        {
            var_dump($msgnumber, $severity, $state, $line, $text);
        }
    }

    $sybase= new Sybase();
    sybase_set_message_handler(array($sybase, 'handler'));
?>

Beispiel 3. sybase_set_message_handler() unhandled messages

<?php
    // Return FALSE from this function to indicate you can't handle
    // this. The error is printed out as a warning, the way you're used
    // to it if there is no handler installed.
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        if (257 == $msgnumber) {
            return false;
        }
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Zurück | Zum Anfang | Nach vorne
sybase_select_db | Nach oben | sybase_unbuffered_query


sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query -- Send a Sybase query and do not block

Description

resource sybase_unbuffered_query ( string query, resource link_identifier [, bool store_result])

Returns a positive Sybase result identifier on success, or FALSE on error.

sybase_unbuffered_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

Unlike sybase_query(), sybase_unbuffered_query() reads only the first row of the result set. sybase_fetch_array() and similar function read more rows as needed. sybase_data_seek() reads up to the target row. The behavior may produce better performance for large result sets.

sybase_num_rows() will only return the correct number of rows if all result sets have been read. To Sybase, the number of rows is not known and is therefore computed by the client implementation.

Anmerkung: If you don't read all of the resultsets prior to executing the next query, PHP will raise a warning and cancel all of the pending results. To get rid of this, use sybase_free_result() which will cancel pending results of an unbuffered query.

The optional store_result can be FALSE to indicate the resultsets shouldn't be fetched into memory, thus minimizing memory usage which is particularly interesting with very large resultsets.

Beispiel 1. sybase_unbuffered_query() example

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false);
sybase_data_seek($q, 10000);
$i = 0;

while ($row = sybase_fetch_row($q)) {
    echo $row[0], ' ', $row[1], '<br />';
    if ($i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

Zurück | Zum Anfang | Nach vorne
sybase_set_message_handler | Nach oben | TCP Wrappers Functions


TCP Wrappers Functions

PHP Handbuch
Zurück Nach vorne

CVIII. TCP Wrappers Functions

Einführung

The TCP wrappers provides a classical unix mechanism which has been designed to check if the remote client is able to connect from the given IP address.

Installation

Tcpwrap is currently available through PECL http://pecl.php.net/package/tcpwrap.

If PEAR is available on your *nix-like system you can use the pear installer to install the tcpwrap extension, by the following command: pear -v install tcpwrap.

You can always download the tar.gz package and install tcpwrap by hand:

Beispiel 1. tcpwrap install by hand

gunzip tcpwrap-xxx.tgz
tar -xvf tcpwrap-xxx.tar
cd tcpwrap-xxx
phpize
./configure && make && make install

Inhaltsverzeichnis
tcpwrap_check -- tcpwrap check

Zurück | Zum Anfang | Nach vorne
sybase_unbuffered_query | Nach oben | tcpwrap_check


tcpwrap_check

(no version information, might be only in CVS)

tcpwrap_check -- tcpwrap check

Description

bool tcpwrap_check ( string daemon, string address [, string user [, bool nodns]])

This function consults /etc/hosts.allow and /etc/hosts.deny files to check if access to service daemon should be granted or denied for client with remote address address (and optional username user). address can be either IP address or domain name. user can be NULL.

If address looks like domain name then DNS is used to resolve it to IP address; set nodns to TRUE to avoid this.

For more details please consult hosts_access(3) man page.

This function returns TRUE if access should be granted, FALSE otherwise.

Zurück | Zum Anfang | Nach vorne
TCP Wrappers Functions | Nach oben | Tidy Functions


Tidy Functions

PHP Handbuch
Zurück Nach vorne

CIX. Tidy Functions

Einführung

Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipluate HTML documents, but also traverse the document tree.

Anforderungen

To use Tidy, you will need libtidy installed, available on the tidy homepage http://tidy.sourceforge.net/.

Installation

Tidy is currently available for PHP 4.3.x and PHP 5 as a PECL extension from http://pecl.php.net/package/tidy.

Anmerkung: Tidy 1.0 is just for PHP 4.3.x, while Tidy 2.0 is just for PHP 5.

If PEAR is available on your *nix-like system you can use the pear installer to install the tidy extension, by the following command: pear -v install tidy.

You can always download the tar.gz package and install tidy by hand:

Beispiel 1. tidy install by hand in PHP 4.3.x

gunzip tidy-xxx.tgz
tar -xvf tidy-xxx.tar
cd tidy-xxx
phpize
./configure && make && make install

Windows users can download the extension dll php_tidy.dll from http://snaps.php.net/win32/PECL_STABLE/.

In PHP 5 you need only to compile using the --with-tidy option.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. Tidy Configuration Options

Name | Default | Changeable | Function
tidy.default_config | "" | PHP_INI_SYSTEM | default path for tidy config file
tidy.clean_output | 0 | PHP_INI_PERDIR | turns on/off the output repairing by Tidy
For further details and definition of the PHP_INI_* constants see ini_set().

Warnung

Do not turn on tidy.clean_output if you are generating non-html content such as dynamic images.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

The following constants are defined:

Tabelle 2. tidy tag constants

constant | description
TIDY_TAG_UNKNOWN |
TIDY_TAG_A |
TIDY_TAG_ABBR |
TIDY_TAG_ACRONYM |
TIDY_TAG_ALIGN |
TIDY_TAG_APPLET |
TIDY_TAG_AREA |
TIDY_TAG_B |
TIDY_TAG_BASE |
TIDY_TAG_BASEFONT |
TIDY_TAG_BDO |
TIDY_TAG_BGSOUND |
TIDY_TAG_BIG |
TIDY_TAG_BLINK |
TIDY_TAG_BLOCKQUOTE |
TIDY_TAG_BODY |
TIDY_TAG_BR |
TIDY_TAG_BUTTON |
TIDY_TAG_CAPTION |
TIDY_TAG_CENTER |
TIDY_TAG_CITE |
TIDY_TAG_CODE |
TIDY_TAG_COL |
TIDY_TAG_COLGROUP |
TIDY_TAG_COMMENT |
TIDY_TAG_DD |
TIDY_TAG_DEL |
TIDY_TAG_DFN |
TIDY_TAG_DIR |
TIDY_TAG_DIV |
TIDY_TAG_DL |
TIDY_TAG_DT |
TIDY_TAG_EM |
TIDY_TAG_EMBED |
TIDY_TAG_FIELDSET |
TIDY_TAG_FONT |
TIDY_TAG_FORM |
TIDY_TAG_FRAME |
TIDY_TAG_FRAMESET |
TIDY_TAG_H1 |
TIDY_TAG_H2 |
TIDY_TAG_H3 |
TIDY_TAG_H4 |
TIDY_TAG_H5 |
TIDY_TAG_6 |
TIDY_TAG_HEAD |
TIDY_TAG_HR |
TIDY_TAG_HTML |
TIDY_TAG_I |
TIDY_TAG_IFRAME |
TIDY_TAG_ILAYER |
TIDY_TAG_IMG |
TIDY_TAG_INPUT |
TIDY_TAG_INS |
TIDY_TAG_ISINDEX |
TIDY_TAG_KBD |
TIDY_TAG_KEYGEN |
TIDY_TAG_LABEL |
TIDY_TAG_LAYER |
TIDY_TAG_LEGEND |
TIDY_TAG_LI |
TIDY_TAG_LINK |
TIDY_TAG_LISTING |
TIDY_TAG_MAP |
TIDY_TAG_MARQUEE |
TIDY_TAG_MENU |
TIDY_TAG_META |
TIDY_TAG_MULTICOL |
TIDY_TAG_NOBR |
TIDY_TAG_NOEMBED |
TIDY_TAG_NOFRAMES |
TIDY_TAG_NOLAYER |
TIDY_TAG_NOSAFE |
TIDY_TAG_NOSCRIPT |
TIDY_TAG_OBJECT |
TIDY_TAG_OL |
TIDY_TAG_OPTGROUP |
TIDY_TAG_OPTION |
TIDY_TAG_P |
TIDY_TAG_PARAM |
TIDY_TAG_PLAINTEXT |
TIDY_TAG_PRE |
TIDY_TAG_Q |
TIDY_TAG_RP |
TIDY_TAG_RT |
TIDY_TAG_RTC |
TIDY_TAG_RUBY |
TIDY_TAG_S |
TIDY_TAG_SAMP |
TIDY_TAG_SCRIPT |
TIDY_TAG_SELECT |
TIDY_TAG_SERVER |
TIDY_TAG_SERVLET |
TIDY_TAG_SMALL |
TIDY_TAG_SPACER |
TIDY_TAG_SPAN |
TIDY_TAG_STRIKE |
TIDY_TAG_STRONG |
TIDY_TAG_STYLE |
TIDY_TAG_SUB |
TIDY_TAG_TABLE |
TIDY_TAG_TBODY |
TIDY_TAG_TD |
TIDY_TAG_TEXTAREA |
TIDY_TAG_TFOOT |
TIDY_TAG_TH |
TIDY_TAG_THEAD |
TIDY_TAG_TITLE |
TIDY_TAG_TR |
TIDY_TAG_TR |
TIDY_TAG_TT |
TIDY_TAG_U |
TIDY_TAG_UL |
TIDY_TAG_VAR |
TIDY_TAG_WBR |
TIDY_TAG_XMP |

Tabelle 3. tidy attribute constants

constant | description
TIDY_ATTR_UNKNOWN |
TIDY_ATTR_ABBR |
TIDY_ATTR_ACCEPT |
TIDY_ATTR_ACCEPT_CHARSET |
TIDY_ATTR_ACCESSKEY |
TIDY_ATTR_ACTION |
TIDY_ATTR_ADD_DATE |
TIDY_ATTR_ALIGN |
TIDY_ATTR_ALINK |
TIDY_ATTR_ALT |
TIDY_ATTR_ARCHIVE |
TIDY_ATTR_AXIS |
TIDY_ATTR_BACKGROUND |
TIDY_ATTR_BGCOLOR |
TIDY_ATTR_BGPROPERTIES |
TIDY_ATTR_BORDER |
TIDY_ATTR_BORDERCOLOR |
TIDY_ATTR_BOTTOMMARGIN |
TIDY_ATTR_CELLPADDING |
TIDY_ATTR_CELLSPACING |
TIDY_ATTR_CHAR |
TIDY_ATTR_CHAROFF |
TIDY_ATTR_CHARSET |
TIDY_ATTR_CHECKED |
TIDY_ATTR_CITE |
TIDY_ATTR_CLASS |
TIDY_ATTR_CLASSID |
TIDY_ATTR_CLEAR |
TIDY_ATTR_CODE |
TIDY_ATTR_CODEBASE |
TIDY_ATTR_CODETYPE |
TIDY_ATTR_COLOR |
TIDY_ATTR_COLS |
TIDY_ATTR_COLSPAN |
TIDY_ATTR_COMPACT |
TIDY_ATTR_CONTENT |
TIDY_ATTR_COORDS |
TIDY_ATTR_DATA |
TIDY_ATTR_DATAFLD |
TIDY_ATTR_DATAPAGESIZE |
TIDY_ATTR_DATASRC |
TIDY_ATTR_DATETIME |
TIDY_ATTR_DECLARE |
TIDY_ATTR_DEFER |
TIDY_ATTR_DIR |
TIDY_ATTR_DISABLED |
TIDY_ATTR_ENCODING |
TIDY_ATTR_ENCTYPE |
TIDY_ATTR_FACE |
TIDY_ATTR_FOR |
TIDY_ATTR_FRAME |
TIDY_ATTR_FRAMEBORDER |
TIDY_ATTR_FRAMESPACING |
TIDY_ATTR_GRIDX |
TIDY_ATTR_GRIDY |
TIDY_ATTR_HEADERS |
TIDY_ATTR_HEIGHT |
TIDY_ATTR_HREF |
TIDY_ATTR_HREFLANG |
TIDY_ATTR_HSPACE |
TIDY_ATTR_HTTP_EQUIV |
TIDY_ATTR_ID |
TIDY_ATTR_ISMAP |
TIDY_ATTR_LABEL |
TIDY_ATTR_LANG |
TIDY_ATTR_LANGUAGE |
TIDY_ATTR_LAST_MODIFIED |
TIDY_ATTR_LAST_VISIT |
TIDY_ATTR_LEFTMARGIN |
TIDY_ATTR_LINK |
TIDY_ATTR_LONGDESC |
TIDY_ATTR_LOWSRC |
TIDY_ATTR_MARGINHEIGHT |
TIDY_ATTR_MARGINWIDTH |
TIDY_ATTR_MAXLENGTH |
TIDY_ATTR_MEDIA |
TIDY_ATTR_METHOD |
TIDY_ATTR_MULTIPLE |
TIDY_ATTR_NAME |
TIDY_ATTR_NOHREF |
TIDY_ATTR_NORESIZE |
TIDY_ATTR_NOSHADE |
TIDY_ATTR_NOWRAP |
TIDY_ATTR_OBJECT |
TIDY_ATTR_OnAFTERUPDATE |
TIDY_ATTR_OnBEFOREUNLOAD |
TIDY_ATTR_OnBEFOREUPDATE |
TIDY_ATTR_OnBLUR |
TIDY_ATTR_OnCHANGE |
TIDY_ATTR_OnCLICK |
TIDY_ATTR_OnDATAAVAILABLE |
TIDY_ATTR_OnDATASETCHANGED |
TIDY_ATTR_OnDATASETCOMPLETE |
TIDY_ATTR_OnDBLCLICK |
TIDY_ATTR_OnERRORUPDATE |
TIDY_ATTR_OnFOCUS |
TIDY_ATTR_OnKEYDOWN |
TIDY_ATTR_OnKEYPRESS |
TIDY_ATTR_OnKEYUP |
TIDY_ATTR_OnLOAD |
TIDY_ATTR_OnMOUSEDOWN |
TIDY_ATTR_OnMOUSEMOVE |
TIDY_ATTR_OnMOUSEOUT |
TIDY_ATTR_OnMOUSEOVER |
TIDY_ATTR_OnMOUSEUP |
TIDY_ATTR_OnRESET |
TIDY_ATTR_OnROWENTER |
TIDY_ATTR_OnROWEXIT |
TIDY_ATTR_OnSELECT |
TIDY_ATTR_OnSUBMIT |
TIDY_ATTR_OnUNLOAD |
TIDY_ATTR_PROFILE |
TIDY_ATTR_PROMPT |
TIDY_ATTR_RBSPAN |
TIDY_ATTR_READONLY |
TIDY_ATTR_REL |
TIDY_ATTR_REV |
TIDY_ATTR_RIGHTMARGIN |
TIDY_ATTR_ROWS |
TIDY_ATTR_ROWSPAN |
TIDY_ATTR_RULES |
TIDY_ATTR_SCHEME |
TIDY_ATTR_SCOPE |
TIDY_ATTR_SCROLLING |
TIDY_ATTR_SELECTED |
TIDY_ATTR_SHAPE |
TIDY_ATTR_SHOWGRID |
TIDY_ATTR_SHOWGRIDX |
TIDY_ATTR_SHOWGRIDY |
TIDY_ATTR_SIZE |
TIDY_ATTR_SPAN |
TIDY_ATTR_SRC |
TIDY_ATTR_STANDBY |
TIDY_ATTR_START |
TIDY_ATTR_STYLE |
TIDY_ATTR_SUMMARY |
TIDY_ATTR_TABINDEX |
TIDY_ATTR_TARGET |
TIDY_ATTR_TEXT |
TIDY_ATTR_TITLE |
TIDY_ATTR_TOPMARGIN |
TIDY_ATTR_TYPE |
TIDY_ATTR_USEMAP |
TIDY_ATTR_VALIGN |
TIDY_ATTR_VALUE |
TIDY_ATTR_VALUETYPE |
TIDY_ATTR_VERSION |
TIDY_ATTR_VLINK |
TIDY_ATTR_VSPACE |
TIDY_ATTR_WIDTH |
TIDY_ATTR_WRAP |
TIDY_ATTR_XML_LANG |
TIDY_ATTR_XML_SPACE |
TIDY_ATTR_XMLNS |

Tabelle 4. tidy nodetype constants

constant | description
TIDY_NODETYPE_ROOT |
TIDY_NODETYPE_DOCTYPE |
TIDY_NODETYPE_COMMENT |
TIDY_NODETYPE_PROCINS |
TIDY_NODETYPE_TEXT |
TIDY_NODETYPE_START |
TIDY_NODETYPE_END |
TIDY_NODETYPE_STARTEND |
TIDY_NODETYPE_CDATA |
TIDY_NODETYPE_SECTION |
TIDY_NODETYPE_ASP |
TIDY_NODETYPE_JSTE |
TIDY_NODETYPE_PHP |
TIDY_NODETYPE_XMLDECL |

Inhaltsverzeichnis
ob_tidyhandler -- ob_start callback function to repair the buffer
tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document.
tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup
tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document.
tidy_diagnose -- Run configured diagnostics on parsed and repaired markup.
tidy_error_count -- Returns the Number of Tidy errors encountered for specified document.
tidy_get_body -- Returns a TidyNode Object starting from the <body> tag of the tidy parse tree
tidy_get_config -- Get current Tidy configuration
tidy_get_error_buffer -- Return warnings and errors which occurred parsing the specified document
tidy_get_head -- Returns a TidyNode Object starting from the <head> tag of the tidy parse tree
tidy_get_html_ver -- Get the Detected HTML version for the specified document.
tidy_get_html -- Returns a TidyNode Object starting from the <html> tag of the tidy parse tree
tidy_get_output -- Return a string representing the parsed tidy markup
tidy_get_release -- Get release date (version) for Tidy library
tidy_get_root -- Returns a TidyNode Object representing the root of the tidy parse tree
tidy_get_status -- Get status of specified document.
tidy_getopt -- Returns the value of the specified configuration option for the tidy document.
tidy_is_xhtml -- Indicates if the document is a XHTML document.
tidy_is_xml -- Indicates if the document is a generic (non HTML/XHTML) XML document.
tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding
tidy_node->attributes -- Returns an array of attribute objects for node
tidy_node->children -- Returns an array of child nodes
tidy_node->get_attr -- Return the attribute with the provided attribute id
tidy_node->get_nodes -- Return an array of nodes under this node with the specified id
tidy_node->hasChildren -- Returns true if this node has children
tidy_node->hasSiblings -- Returns true if this node has siblings
tidy_node->isAsp -- Returns true if this node is ASP
tidy_node->isComment -- Returns true if this node represents a comment
tidy_node->isHtml -- Returns true if this node is part of a HTML document
tidy_node->isJste -- Returns true if this node is JSTE
tidy_node->isPhp -- Returns true if this node is PHP
tidy_node->isText -- Returns true if this node represents text (no markup)
tidy_node->isXhtml -- Returns true if this node is part of a XHTML document
tidy_node->isXml -- Returns true if this node is part of a XML document
tidy_node->next -- Returns the next sibling to this node
tidy_node->prev -- Returns the previous sibling to this node
tidy_node->tidy_node -- Constructor.
tidy_parse_file -- Parse markup in file or URI
tidy_parse_string -- Parse a document stored in a string
tidy_repair_file -- Repair a file and return it as a string
tidy_repair_string -- Repair a string using an optionally provided configuration file
tidy_reset_config -- Restore Tidy configuration to default values
tidy_save_config -- Save current settings to named file. Only non-default values are written.
tidy_set_encoding -- Set the input/output character encoding for parsing markup.
tidy_setopt -- Updates the configuration settings for the specified tidy document.
tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document.

Zurück | Zum Anfang | Nach vorne
tcpwrap_check | Nach oben | ob_tidyhandler


ob_tidyhandler

(PHP 5)

ob_tidyhandler -- ob_start callback function to repair the buffer

Description

string ob_tidyhandler ( string input [, int mode])

ob_tidyhandler() is intended to be used as a callback function for ob_start() to repair the buffer.

Beispiel 1. ob_tidyhandler() example

<?php
ob_start('ob_tidyhandler');

echo '<p>test</i>';
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See also ob_start().

Zurück | Zum Anfang | Nach vorne
Tidy Functions | Nach oben | tidy_access_count


tidy_access_count

(PHP 5)

tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document.

Description

int tidy_access_count ( resource tidy)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
ob_tidyhandler | Nach oben | tidy_clean_repair


tidy_clean_repair

(PHP 5)

tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup

Description

bool tidy_clean_repair ( resource tidy)

This function cleans and repairs the given tidy resource.

Beispiel 1. tidy_clean_repair() example

<?php
$html = '<p>test</I>';

$tidy = tidy_parse_string($html);
tidy_clean_repair($tidy);

echo $tidy;
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See also tidy_repair_file() and tidy_repair_string().

Zurück | Zum Anfang | Nach vorne
tidy_access_count | Nach oben | tidy_config_count


tidy_config_count

(PHP 5)

tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document.

Description

int tidy_config_count ( resource tidy)

tidy_config_count() returns the number of errors encountered in the given configuration.

Beispiel 1. tidy_config_count() example

<?php
$html = '<p>test</I>';

$config = array('foo' => 'bar');

$tidy = tidy_parse_string($html, $config);

echo tidy_config_count($tidy); //1
?>

Zurück | Zum Anfang | Nach vorne
tidy_clean_repair | Nach oben | tidy_diagnose


tidy_diagnose

(PHP 5)

tidy_diagnose -- Run configured diagnostics on parsed and repaired markup.

Description

bool tidy_diagnose ( resource tidy)

tidy_diagnose() runs diagnostic tests on the given resource.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
tidy_config_count | Nach oben | tidy_error_count


tidy_error_count

(PHP 5)

tidy_error_count -- Returns the Number of Tidy errors encountered for specified document.

Description

int tidy_error_count ( resource tidy)

tidy_error_count() returns the number of Tidy errors encountered for the specified document.

Beispiel 1. tidy_error_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1

echo $tidy->ErrorBuffer;
?>

The above example will output:

1
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 8 - Warning: discarding unexpected </i>
line 2 column 1 - Error: <bogustag> is not recognized!
line 2 column 1 - Warning: discarding unexpected <bogustag>
line 2 column 16 - Warning: discarding unexpected </bogustag>
line 1 column 1 - Warning: inserting missing 'title' element

See also tidy_access_count() and tidy_warning_count().

Zurück | Zum Anfang | Nach vorne
tidy_diagnose | Nach oben | tidy_get_body


tidy_get_body

(PHP 5)

tidy_get_body -- Returns a TidyNode Object starting from the <body> tag of the tidy parse tree

Description

object tidy_get_body ( resource tidy)

This function returns a TidyNode object starting from the <body> tag of the tidy parse tree.

Beispiel 1. tidy_get_body() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$body = tidy_get_body($tidy);
echo $body->value;
?>

The above example will output:

<body>
<p>paragraph</p>
</body>

Anmerkung: This function is only available with Zend Engine 2, this means PHP >= 5.0.0.

See also tidy_get_head() and tidy_get_html().

Zurück | Zum Anfang | Nach vorne
tidy_error_count | Nach oben | tidy_get_config


tidy_get_config

(PHP 5)

tidy_get_config -- Get current Tidy configuration

Description

array tidy_get_config ( resource tidy)

tidy_get_config() returns an array with the configuration options in use by the given resource.

For a explanation about each option, visit http://tidy.sourceforge.net/docs/quickref.html.

Beispiel 1. tidy_get_config() example

<?php
$html = '<p>test</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap', 200);

$tidy = tidy_parse_string($html, $config);

print_r(tidy_get_config($tidy));
?>

The above example will output:

Array
(
    [indent-spaces] => 2
    [wrap] => 68
    [tab-size] => 8
    [char-encoding] => 1
    [input-encoding] => 3
    [output-encoding] => 1
    [newline] => 1
    [doctype-mode] => 1
    [doctype] =>
    [repeated-attributes] => 1
    [alt-text] =>
    [slide-style] =>
    [error-file] =>
    [output-file] =>
    [write-back] =>
    [markup] => 1
    [show-warnings] => 1
    [quiet] =>
    [indent] => 1
    [hide-endtags] =>
    [input-xml] =>
    [output-xml] => 1
    [output-xhtml] => 1
    [output-html] =>
    [add-xml-decl] =>
    [uppercase-tags] =>
    [uppercase-attributes] =>
    [bare] =>
    [clean] =>
    [logical-emphasis] =>
    [drop-proprietary-attributes] =>
    [drop-font-tags] =>
    [drop-empty-paras] => 1
    [fix-bad-comments] => 1
    [break-before-br] =>
    [split] =>
    [numeric-entities] =>
    [quote-marks] =>
    [quote-nbsp] => 1
    [quote-ampersand] => 1
    [wrap-attributes] =>
    [wrap-script-literals] =>
    [wrap-sections] => 1
    [wrap-asp] => 1
    [wrap-jste] => 1
    [wrap-php] => 1
    [fix-backslash] => 1
    [indent-attributes] =>
    [assume-xml-procins] =>
    [add-xml-space] =>
    [enclose-text] =>
    [enclose-block-text] =>
    [keep-time] =>
    [word-2000] =>
    [tidy-mark] =>
    [gnu-emacs] =>
    [gnu-emacs-file] =>
    [literal-attributes] =>
    [show-body-only] =>
    [fix-uri] => 1
    [lower-literals] => 1
    [hide-comments] =>
    [indent-cdata] =>
    [force-output] => 1
    [show-errors] => 6
    [ascii-chars] => 1
    [join-classes] =>
    [join-styles] => 1
    [escape-cdata] =>
    [language] =>
    [ncr] => 1
    [output-bom] => 2
    [replace-color] =>
    [css-prefix] =>
    [new-inline-tags] =>
    [new-blocklevel-tags] =>
    [new-empty-tags] =>
    [new-pre-tags] =>
    [accessibility-check] => 0
    [vertical-space] =>
    [punctuation-wrap] =>
)

See also tidy_reset_config() and tidy_save_config().

Zurück | Zum Anfang | Nach vorne
tidy_get_body | Nach oben | tidy_get_error_buffer


tidy_get_error_buffer

(PHP 5)

tidy_get_error_buffer -- Return warnings and errors which occurred parsing the specified document

Description

string tidy_get_error_buffer ( resource tidy)

tidy_get_error_buffer() returns warnings and errors which occurred parsing the specified document.

Beispiel 1. tidy_get_error_buffer() example

<?php
$html = '<p>paragraph</p>';

$tidy = tidy_parse_string($html);
echo tidy_get_error_buffer($tidy);
?>

The above example will output:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

See also tidy_access_count(),
tidy_error_count() and
tidy_warning_count().

Zurück | Zum Anfang | Nach vorne
tidy_get_config | Nach oben | tidy_get_head


tidy_get_head

(PHP 5)

tidy_get_head -- Returns a TidyNode Object starting from the <head> tag of the tidy parse tree

Description

object tidy_get_head ( resource tidy)

This function returns a TidyNode object starting from the <head> tag of the tidy parse tree.

Beispiel 1. tidy_get_head() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$head = tidy_get_head($tidy);
echo $head->value;
?>

The above example will output:

<head>
<title>test</title>
</head>

Anmerkung: This function is only available with Zend Engine 2, this means PHP >= 5.0.0.

See also tidy_get_body() and tidy_get_html().

Zurück | Zum Anfang | Nach vorne
tidy_get_error_buffer | Nach oben | tidy_get_html_ver


tidy_get_html_ver

(PHP 5)

tidy_get_html_ver -- Get the Detected HTML version for the specified document.

Description

int tidy_get_html_ver ( resource tidy)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_get_head | Nach oben | tidy_get_html


tidy_get_html

(PHP 5)

tidy_get_html -- Returns a TidyNode Object starting from the <html> tag of the tidy parse tree

Description

object tidy_get_html ( resource tidy)

This function returns a TidyNode object starting from the <html> tag of the tidy parse tree.

Beispiel 1. tidy_get_html() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$html = tidy_get_html($tidy);
echo $html->value;
?>

The above example will output:

<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Anmerkung: This function is only available with Zend Engine 2, this means PHP >= 5.0.0.

See also tidy_get_body() and tidy_get_head().

Zurück | Zum Anfang | Nach vorne
tidy_get_html_ver | Nach oben | tidy_get_output


tidy_get_output

(PHP 5)

tidy_get_output -- Return a string representing the parsed tidy markup

Description

string tidy_get_output ( resource tidy)

tidy_get_output() returns a string with the repaired html.

Beispiel 1. tidy_get_output() example

<?php

$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$tidy->CleanRepair();

echo tidy_get_output($tidy);
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Zurück | Zum Anfang | Nach vorne
tidy_get_html | Nach oben | tidy_get_release


tidy_get_release

(PHP 5)

tidy_get_release -- Get release date (version) for Tidy library

Description

string tidy_get_release ( void )

This function returns a string with the release date of the Tidy library.

Zurück | Zum Anfang | Nach vorne
tidy_get_output | Nach oben | tidy_get_root


tidy_get_root

(PHP 5)

tidy_get_root -- Returns a TidyNode Object representing the root of the tidy parse tree

Description

object tidy_get_root ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This function is only available with Zend Engine 2, this means PHP >= 5.0.0.

Zurück | Zum Anfang | Nach vorne
tidy_get_release | Nach oben | tidy_get_status


tidy_get_status

(PHP 5)

tidy_get_status -- Get status of specified document.

Description

int tidy_get_status ( resource tidy)

tidy_get_status() returns the status for the specified tidy resource. It returns 0 if no error/warning was raised, 1 for warnings or accessibility errors, or 2 for errors.

Beispiel 1. tidy_get_status() example

<?php
$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$html2 = '<bogus>test</bogus>';
$tidy2 = tidy_parse_string($html2);

echo tidy_get_status($tidy); //1

echo tidy_get_status($tidy2); //2
?>

Zurück | Zum Anfang | Nach vorne
tidy_get_root | Nach oben | tidy_getopt


tidy_getopt

(PHP 5)

tidy_getopt -- Returns the value of the specified configuration option for the tidy document.

Description

mixed tidy_getopt ( string option)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_get_status | Nach oben | tidy_is_xhtml


tidy_is_xhtml

(PHP 5)

tidy_is_xhtml -- Indicates if the document is a XHTML document.

Description

bool tidy_is_xhtml ( resource tidy)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_getopt | Nach oben | tidy_is_xml


tidy_is_xml

(PHP 5)

tidy_is_xml -- Indicates if the document is a generic (non HTML/XHTML) XML document.

Description

bool tidy_is_xml ( resource tidy)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_is_xhtml | Nach oben | tidy_load_config


tidy_load_config

(no version information, might be only in CVS)

tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding

Description

void tidy_load_config ( string filename, string encoding)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This function is only avaliable in Tidy 1.0. It became obsolete in Tidy 2.0 and thus has been removed.

Zurück | Zum Anfang | Nach vorne
tidy_is_xml | Nach oben | tidy_node->attributes


tidy_node->attributes

(no version information, might be only in CVS)

tidy_node->attributes -- Returns an array of attribute objects for node

Description

array tidy_node->attributes ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_load_config | Nach oben | tidy_node->children


tidy_node->children

(no version information, might be only in CVS)

tidy_node->children -- Returns an array of child nodes

Description

array tidy_node->children ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_node->attributes | Nach oben | tidy_node->get_attr


tidy_node->get_attr

(no version information, might be only in CVS)

tidy_node->get_attr -- Return the attribute with the provided attribute id

Description

tidy_attr tidy_node->get_attr ( int attrib_id)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_node->children | Nach oben | tidy_node->get_nodes


tidy_node->get_nodes

(no version information, might be only in CVS)

tidy_node->get_nodes -- Return an array of nodes under this node with the specified id

Description

array tidy_node->get_nodes ( int node_id)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_node->get_attr | Nach oben | tidy_node->hasChildren


tidy_node->hasChildren

(no version information, might be only in CVS)

tidy_node->hasChildren -- Returns true if this node has children

Description

bool tidy_node->hasChildren ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->has_children() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->get_nodes | Nach oben | tidy_node->hasSiblings


tidy_node->hasSiblings

(no version information, might be only in CVS)

tidy_node->hasSiblings -- Returns true if this node has siblings

Description

bool tidy_node->hasSiblings ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->has_siblings() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->hasChildren | Nach oben | tidy_node->isAsp


tidy_node->isAsp

(no version information, might be only in CVS)

tidy_node->isAsp -- Returns true if this node is ASP

Description

bool tidy_node->isAsp ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->is_asp() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->hasSiblings | Nach oben | tidy_node->isComment


tidy_node->isComment

(no version information, might be only in CVS)

tidy_node->isComment -- Returns true if this node represents a comment

Description

bool tidy_node->isComment ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->is_comment() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->isAsp | Nach oben | tidy_node->isHtml


tidy_node->isHtml

(no version information, might be only in CVS)

tidy_node->isHtml -- Returns true if this node is part of a HTML document

Description

bool tidy_node->isHtml ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->is_html() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->isComment | Nach oben | tidy_node->isJste


tidy_node->isJste

(no version information, might be only in CVS)

tidy_node->isJste -- Returns true if this node is JSTE

Description

bool tidy_node->isJste ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->is_jste() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->isHtml | Nach oben | tidy_node->isPhp


tidy_node->isPhp

(no version information, might be only in CVS)

tidy_node->isPhp -- Returns true if this node is PHP

Description

bool tidy_node->isPhp ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->is_php() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->isJste | Nach oben | tidy_node->isText


tidy_node->isText

(no version information, might be only in CVS)

tidy_node->isText -- Returns true if this node represents text (no markup)

Description

bool tidy_node->isText ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->is_text() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->isPhp | Nach oben | tidy_node->isXhtml


tidy_node->isXhtml

(no version information, might be only in CVS)

tidy_node->isXhtml -- Returns true if this node is part of a XHTML document

Description

bool tidy_node->isXhtml ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->is_xhtml() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->isText | Nach oben | tidy_node->isXml


tidy_node->isXml

(no version information, might be only in CVS)

tidy_node->isXml -- Returns true if this node is part of a XML document

Description

bool tidy_node->isXml ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This functions was named tidy_node->is_xml() in PHP 4/Tidy 1.

Zurück | Zum Anfang | Nach vorne
tidy_node->isXhtml | Nach oben | tidy_node->next


tidy_node->next

(no version information, might be only in CVS)

tidy_node->next -- Returns the next sibling to this node

Description

tidy_node tidy_node->next ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_node->isXml | Nach oben | tidy_node->prev


tidy_node->prev

(no version information, might be only in CVS)

tidy_node->prev -- Returns the previous sibling to this node

Description

tidy_node tidy_node->prev ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_node->next | Nach oben | tidy_node->tidy_node


tidy_node->tidy_node

(no version information, might be only in CVS)

tidy_node->tidy_node -- Constructor.

Description

void tidy_node->tidy_node ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
tidy_node->prev | Nach oben | tidy_parse_file


tidy_parse_file

(PHP 5)

tidy_parse_file -- Parse markup in file or URI

Description

resource tidy_parse_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]])

This function parses the given file.

The config parameter can be passed either as an array or as a string. If you pass it as a string, it means the name of the configuration file, otherwise it is interpreted as the options themselves. Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Beispiel 1. tidy_parse_file() example

<?php
$tidy = tidy_parse_file('file.html');

$tidy->cleanRepair();

if(!empty($tidy->error_buf)) {
    echo "The following errors or warnings occured:\n";
    echo $tidy->error_buf;
}
?>

Anmerkung: The optional parameters config and encoding were added in Tidy 2.0.

See also tidy_parse_string(),
tidy_parse_string() and
tidy_repair_string().

Zurück | Zum Anfang | Nach vorne
tidy_node->tidy_node | Nach oben | tidy_parse_string


tidy_parse_string

(PHP 5)

tidy_parse_string -- Parse a document stored in a string

Description

resource tidy_parse_string ( string input [, mixed config [, string encoding]])

tidy_parse_string() parses a document stored in a string.

The config parameter can be passed either as an array or as a string. If you pass it as a string, it means the name of the configuration file, otherwise it is interpreted as the options themselves. Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Beispiel 1. tidy_parse_string() example

<?php
ob_start();
?>

<html>
  <head>
   <title>test</title>
  </head>
  <body>
   <p>error<br>another line</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap', 200);

$tidy = tidy_parse_string($buffer, $config, 'UTF8');

$tidy->cleanRepair();
echo $tidy;
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      test
    </title>
  </head>
  <body>
    <p>
      error<br />
      another line
    </p>
  </body>
</html>

Anmerkung: The optional parameters config and encoding were added in Tidy 2.0.

See also tidy_parse_file(),
tidy_repair_file() and
tidy_repair_string().

Zurück | Zum Anfang | Nach vorne
tidy_parse_file | Nach oben | tidy_repair_file


tidy_repair_file

(PHP 5)

tidy_repair_file -- Repair a file and return it as a string

Description

string tidy_repair_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]])

This function repairs the given file and returns it as a string.

The config parameter can be passed either as an array or as a string. If you pass it as a string, it means the name of the configuration file, otherwise it is interpreted as the options themselves. Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Beispiel 1. tidy_repair_file() example

<?php
$file = 'file.html';

$repaired = tidy_repair_file($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Anmerkung: The optional parameters config and encoding were added in Tidy 2.0.

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_string().

Zurück | Zum Anfang | Nach vorne
tidy_parse_string | Nach oben | tidy_repair_string


tidy_repair_string

(PHP 5)

tidy_repair_string -- Repair a string using an optionally provided configuration file

Description

string tidy_repair_string ( string data [, mixed config [, string encoding]])

This function repairs the given string.

The config parameter can be passed either as an array or as a string. If you pass it as a string, it means the name of the configuration file, otherwise it is interpreted as the options themselves. Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Beispiel 1. tidy_repair_string() example

<?php
ob_start();
?>

<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>error</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);

echo $tidy;
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</p>
</body>
</html>

Anmerkung: The optional parameters config and encoding were added in Tidy 2.0.

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_file().

Zurück | Zum Anfang | Nach vorne
tidy_repair_file | Nach oben | tidy_reset_config


tidy_reset_config

(no version information, might be only in CVS)

tidy_reset_config -- Restore Tidy configuration to default values

Description

bool tidy_reset_config ( void )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: This function is only avaliable in Tidy 1.0. It became obsolete in Tidy 2.0 and thus has been removed.

Zurück | Zum Anfang | Nach vorne
tidy_repair_string | Nach oben | tidy_save_config


tidy_save_config

(no version information, might be only in CVS)

tidy_save_config -- Save current settings to named file. Only non-default values are written.

Description

bool tidy_save_config ( string filename)

tidy_save_config() saves current settings to the specified file. Only non-default values are written.

See also tidy_get_config(),
tidy_getopt(),
tidy_reset_config() and
tidy_setopt().

Anmerkung: This function is only avaliable in Tidy 1.0. It became obsolete in Tidy 2.0 and thus has been removed.

Zurück | Zum Anfang | Nach vorne
tidy_reset_config | Nach oben | tidy_set_encoding


tidy_set_encoding

(no version information, might be only in CVS)

tidy_set_encoding -- Set the input/output character encoding for parsing markup.

Description

bool tidy_set_encoding ( string encoding)

Sets the encoding for input/output documents. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE. Possible values for encoding are ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Anmerkung: This function is only avaliable in Tidy 1.0. It became obsolete in Tidy 2.0 and thus has been removed.

Zurück | Zum Anfang | Nach vorne
tidy_save_config | Nach oben | tidy_setopt


tidy_setopt

(no version information, might be only in CVS)

tidy_setopt -- Updates the configuration settings for the specified tidy document.

Description

bool tidy_setopt ( string option, mixed value)

tidy_setopt() updates the specified option with a new value.

Beispiel 1. tidy_setopt() example

<?php
$html = '<p>test</i>';

$tidy = tidy_parse_string($html);

tidy_setopt('indent', FALSE);
?>

See also tidy_getopt(),
tidy_get_config(),
tidy_reset_config() and
tidy_save_config().

Anmerkung: This function is only avaliable in Tidy 1.0. It became obsolete in Tidy 2.0 and thus has been removed.

Zurück | Zum Anfang | Nach vorne
tidy_set_encoding | Nach oben | tidy_warning_count


tidy_warning_count

(PHP 5)

tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document.

Description

int tidy_warning_count ( resource tidy)

tidy_warning_count() returns the number of Tidy warnings encountered for the specified document.

Beispiel 1. tidy_warning_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1
echo tidy_warning_count($tidy) . "\n"; //5
?>

See also tidy_access_count() and tidy_error_count().

Zurück | Zum Anfang | Nach vorne
tidy_setopt | Nach oben | Tokenizer Functions


Tokenizer Functions

PHP Handbuch
Zurück Nach vorne

CX. Tokenizer Functions

Einführung

The tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine. Using these functions you may write your own PHP source analyzing or modification tools without having to deal with the language specification at the lexical level.

See also the appendix about tokens.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

Beginning with PHP 4.3.0 these functions are enabled by default. For older versions you have to configure and compile PHP with --enable-tokenizer. You can disable tokenizer support with --disable-tokenizer.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Anmerkung: Builtin support for tokenizer is available with PHP 4.3.0.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

T_INCLUDE (integer)

T_INCLUDE_ONCE (integer)

T_EVAL (integer)

T_REQUIRE (integer)

T_REQUIRE_ONCE (integer)

T_LOGICAL_OR (integer)

T_LOGICAL_XOR (integer)

T_LOGICAL_AND (integer)

T_PRINT (integer)

T_PLUS_EQUAL (integer)

T_MINUS_EQUAL (integer)

T_MUL_EQUAL (integer)

T_DIV_EQUAL (integer)

T_CONCAT_EQUAL (integer)

T_MOD_EQUAL (integer)

T_AND_EQUAL (integer)

T_OR_EQUAL (integer)

T_XOR_EQUAL (integer)

T_SL_EQUAL (integer)

T_SR_EQUAL (integer)

T_BOOLEAN_OR (integer)

T_BOOLEAN_AND (integer)

T_IS_EQUAL (integer)

T_IS_NOT_EQUAL (integer)

T_IS_IDENTICAL (integer)

T_IS_NOT_IDENTICAL (integer)

T_IS_SMALLER_OR_EQUAL (integer)

T_IS_GREATER_OR_EQUAL (integer)

T_SL (integer)

T_SR (integer)

T_INC (integer)

T_DEC (integer)

T_INT_CAST (integer)

T_DOUBLE_CAST (integer)

T_STRING_CAST (integer)

T_ARRAY_CAST (integer)

T_OBJECT_CAST (integer)

T_BOOL_CAST (integer)

T_UNSET_CAST (integer)

T_NEW (integer)

T_EXIT (integer)

T_IF (integer)

T_ELSEIF (integer)

T_ELSE (integer)

T_ENDIF (integer)

T_LNUMBER (integer)

T_DNUMBER (integer)

T_STRING (integer)

T_STRING_VARNAME (integer)

T_VARIABLE (integer)

T_NUM_STRING (integer)

T_INLINE_HTML (integer)

T_CHARACTER (integer)

T_BAD_CHARACTER (integer)

T_ENCAPSED_AND_WHITESPACE (integer)

T_CONSTANT_ENCAPSED_STRING (integer)

T_ECHO (integer)

T_DO (integer)

T_WHILE (integer)

T_ENDWHILE (integer)

T_FOR (integer)

T_ENDFOR (integer)

T_FOREACH (integer)

T_ENDFOREACH (integer)

T_DECLARE (integer)

T_ENDDECLARE (integer)

T_AS (integer)

T_SWITCH (integer)

T_ENDSWITCH (integer)

T_CASE (integer)

T_DEFAULT (integer)

T_BREAK (integer)

T_CONTINUE (integer)

T_OLD_FUNCTION (integer)

T_FUNCTION (integer)

T_CONST (integer)

T_RETURN (integer)

T_USE (integer)

T_GLOBAL (integer)

T_STATIC (integer)

T_VAR (integer)

T_UNSET (integer)

T_ISSET (integer)

T_EMPTY (integer)

T_CLASS (integer)

T_EXTENDS (integer)

T_OBJECT_OPERATOR (integer)

T_DOUBLE_ARROW (integer)

T_LIST (integer)

T_ARRAY (integer)

T_LINE (integer)

T_FILE (integer)

T_COMMENT (integer)

T_ML_COMMENT (integer)

Anmerkung: T_ML_COMMENT is not defined in PHP 5. All comments in PHP 5 are of token T_COMMENT.

T_DOC_COMMENT (integer)

Anmerkung: T_DOC_COMMENT was introduced in PHP 5.

T_OPEN_TAG (integer)

T_OPEN_TAG_WITH_ECHO (integer)

T_CLOSE_TAG (integer)

T_WHITESPACE (integer)

T_START_HEREDOC (integer)

T_END_HEREDOC (integer)

T_DOLLAR_OPEN_CURLY_BRACES (integer)

T_CURLY_OPEN (integer)

T_PAAMAYIM_NEKUDOTAYIM (integer)

T_DOUBLE_COLON (integer)

Beispiele

Here is a simple example PHP scripts using the tokenizer that will read in a PHP file, strip all comments from the source and print the pure code only.

Beispiel 1. Strip comments with the tokenizer

<?php
  $source = file_get_contents("somefile.php");
  $tokens = token_get_all($source);
  /* T_ML_COMMENT does not exist in PHP 5.
   * The following three lines define it in order to
   * preserve backwards compatibility.
   *
   * The next two lines define the PHP 5-only T_DOC_COMMENT,
   * which we will mask as T_ML_COMMENT for PHP 4.
   */
  if (!defined('T_ML_COMMENT')) {
    define('T_ML_COMMENT', T_COMMENT);
  } else {
    define('T_DOC_COMMENT', T_ML_COMMENT);
  }
  foreach ($tokens as $token) {
    if (is_string($token)) {
      // simple 1-character token
      echo $token;
    } else {
      // token array
      list($id, $text) = $token;
      switch ($id) {
        case T_COMMENT:
        case T_ML_COMMENT: // we've defined this
        case T_DOC_COMMENT: // and this
          // no action on comments
          break;
        default:
          // anything else -> output "as is"
          echo $text;
          break;
      }
    }
  }
?>
Inhaltsverzeichnis
token_get_all -- Split given source into PHP tokens
token_name -- Get the symbolic name of a given PHP token

Zurück | Zum Anfang | Nach vorne
tidy_warning_count | Nach oben | token_get_all


token_get_all

(PHP 4 >= 4.2.0, PHP 5)

token_get_all -- Split given source into PHP tokens

Description

array token_get_all ( string source)

token_get_all() parses the given source string into PHP language tokens using the Zend engine's lexical scanner. The function returns an array of token identifiers. Each individual token identifier is either a single character (i.e.: ;, ., >, !, etc...), or a two element array containing the token index in element 0, and the string content of the original token in element 1.

For a list of parser tokens, see Anhang N, or use token_name() to translate a token value into its string representation.

Beispiel 1. token_get_all() examples

<?php
  $tokens = token_get_all('<?php'); // => array(array(T_OPEN_TAG, '<?'));
  $tokens = token_get_all('<?php echo; ?>'); /* => array(
                                                    array(T_OPEN_TAG, '<?php'),
                                                    array(T_ECHO, 'echo'),
                                                    ';',
                                                    array(T_CLOSE_TAG, '?>') ); */

/* Note in the following example that the string is parsed as T_INLINE_HTML
   rather than the otherwise expected T_COMMENT (T_ML_COMMENT in PHP <5).
   This is because no open/close tags were used in the "code" provided.
   This would be equivalent to putting a comment outside of <?php ?> tags in a normal file. */
  $tokens = token_get_all('/* comment */'); // => array(array(T_INLINE_HTML, '/* comment */'));
?>

Zurück | Zum Anfang | Nach vorne
Tokenizer Functions | Nach oben | token_name


token_name

(PHP 4 >= 4.2.0, PHP 5)

token_name -- Get the symbolic name of a given PHP token

Description

string token_name ( int token)

token_name() returns the symbolic name for a PHP token value. The symbolic name returned matches the name of the matching token constant.

Beispiel 1. token_name() example

<?php
  // 260 is the token value for the T_REQUIRE token
  echo token_name(260);        // -> "T_REQUIRE"

  // a token constant maps to its own name
  echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Zurück | Zum Anfang | Nach vorne
token_get_all | Nach oben | URL Funktionen


URL Funktionen

PHP Handbuch
Zurück Nach vorne

CXI. URL Funktionen

Inhaltsverzeichnis
base64_decode -- Dekodiert Daten mit MIME base64
base64_encode -- Kodiert Daten MIME base64
get_headers -- Fetches all the headers sent by the server in response to a HTTP request
get_meta_tags -- Extracts all meta tag content attributes from a file and returns an array
http_build_query -- Generate URL-encoded query string
parse_url -- Analysiert eine URL und zerlegt diese in ihre Bestandteile.
rawurldecode -- Dekodierung von URL-kodierten Strings
rawurlencode -- URL-Kodierung nach RFC 1738
urldecode -- Dekodiert eine URL-kodierte Zeile
urlencode -- URL-kodiert eine Zeile

Zurück | Zum Anfang | Nach vorne
token_name | Nach oben | base64_decode


base64_decode

(PHP 3, PHP 4 , PHP 5)

base64_decode -- Dekodiert Daten mit MIME base64

Beschreibung:

string base64_decode ( string encoded_data)

base64_decode() dekodiert encoded_data und bringt die Originaldaten wieder. Die ausgegebenen Dateien können im Binärformat sein.

Siehe auch: base64_encode(), RFC-2045 Sektion 6.8.

Zurück | Zum Anfang | Nach vorne
URL Funktionen | Nach oben | base64_encode


base64_encode

(PHP 3, PHP 4 , PHP 5)

base64_encode -- Kodiert Daten MIME base64

Beschreibung

string base64_encode ( string data)

base64_encode() kodiert data mit base64. Diese Kodierung ist dafür da, Binärdaten über Technologien, die 8-bit nicht sauber übertragen können, wie z.B. Emails.

Base64-kodierte Daten benötigen ungefähr 33% mehr Speicher als die Originaldaten.

Siehe auch: base64_decode(), chunk_split(), RFC-2045 Sektion 6.8.

Zurück | Zum Anfang | Nach vorne
base64_decode | Nach oben | get_headers


get_headers

(PHP 5)

get_headers -- Fetches all the headers sent by the server in response to a HTTP request

Description

array get_headers ( string url)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
base64_encode | Nach oben | get_meta_tags


get_meta_tags

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

get_meta_tags -- Extracts all meta tag content attributes from a file and returns an array

Description

array get_meta_tags ( string filename [, int use_include_path])

Opens filename and parses it line by line for <meta> tags in the file. This can be a local file or an URL. The parsing stops at </head>.

Setting use_include_path to 1 will result in PHP trying to open the file along the standard include path as per the include_path directive. This is used for local files, not URLs.

Beispiel 1. What get_meta_tags() parses

<meta name="author" content="name">
<meta name="keywords" content="php documentation">
<meta name="DESCRIPTION" content="a php manual">
<meta name="geo.position" content="49.33;-86.59">
</head> <!-- parsing stops here -->
(pay attention to line endings - PHP uses a native function to parse the input, so a Mac file won't work on Unix).

The value of the name property becomes the key, the value of the content property becomes the value of the returned array, so you can easily use standard array functions to traverse it or access single values. Special characters in the value of the name property are substituted with '_', the rest is converted to lower case. If two meta tags have the same name, only the last one is returned.

Beispiel 2. What get_meta_tags() returns

<?php
// Assuming the above tags are at www.example.com
$tags = get_meta_tags('http://www.example.com/');

// Notice how the keys are all lowercase now, and
// how . was replaced by _ in the key.
echo $tags['author'];       // name
echo $tags['keywords'];     // php documentation
echo $tags['description'];  // a php manual
echo $tags['geo_position']; // 49.33;-86.59
?>

Anmerkung: As of PHP 4.0.5, get_meta_tags() supports unquoted HTML attributes.

See also htmlentities() and urlencode().

Zurück | Zum Anfang | Nach vorne
get_headers | Nach oben | http_build_query


http_build_query

(PHP 5)

http_build_query -- Generate URL-encoded query string

Description

string http_build_query ( array formdata [, string numeric_prefix])

Generates a URL-encoded query string from the associative (or indexed) array provided. formdata may be an array or object containing properties. A formdata array may be a simple one-dimensional structure, or an array of arrays (who in turn may contain other arrays). If numeric indices are used in the base array and a numeric_prefix is provided, it will be prepended to the numeric index for elements in the base array only. This is to allow for legal variable names when the data is decoded by PHP or another CGI application later on.

Beispiel 1. Simple usage of http_build_query()

<?php
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>

Beispiel 2. http_build_query() with numerically index elements.

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');

echo http_build_query($data);
/* Outputs:
      0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
*/

echo http_build_query($data, 'myvar_');
/* Outputs:
      myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
*/
?>

Beispiel 3. http_build_query() with complex arrays

<?php
$data = array('user'=>array('name'=>'Bob Smith',
                            'age'=>47,
                            'sex'=>'M',
                            'dob'=>'5/12/1956'),
              'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
              'children'=>array('bobby'=>array('age'=>12,
                                               'sex'=>'M'),
                                'sally'=>array('age'=>8,
                                               'sex'=>'F')),
              'CEO');

echo http_build_query($data, 'flags_');
?>

this will output : (word wrapped for readability)

user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
children[sally][sex]=F&flags_0=CEO

Anmerkung: Only the numerically indexed element in the base array "CEO" received a prefix. The other numeric indices, found under pastimes, do not require a string prefix to be legal variable names.

Beispiel 4. Using http_build_query() with an object

<?php
class myClass {
  var $foo;
  var $baz;

  function myClass()
  {
    $this->foo = 'bar';
    $this->baz = 'boom';
  }
}

$data = new myClass();

echo http_build_query($data); // foo=bar&baz=boom

?>

See also:
parse_str(),
parse_url(),
urlencode(), and
array_walk()

Zurück | Zum Anfang | Nach vorne
get_meta_tags | Nach oben | parse_url


parse_url

(PHP 3, PHP 4 , PHP 5)

parse_url -- Analysiert eine URL und zerlegt diese in ihre Bestandteile.

Beschreibung

array parse_url ( string url)

Diese Funktion erzeugt ein assiziatives Array aus den verschiedenen Teilen einer URL. Diese umfassen "scheme", "host", "port", "user", "pass", "path", "query", und "fragment".

Zurück | Zum Anfang | Nach vorne
http_build_query | Nach oben | rawurldecode


rawurldecode

(PHP 3, PHP 4 , PHP 5)

rawurldecode -- Dekodierung von URL-kodierten Strings

Beschreibung:

string rawurldecode ( string str)

Gibt einen String zurück, in dem die Abschnitte, die mit einem Prozent-Zeichen (%) beginnen (dem ein 2-stelliger hexadezimal-Wert folgt), ersetzt wurden durch Buchstaben. So wird z.B. die Zeichenkette
foo%20bar%40baz
umgewandelt in
foo bar@baz
.

Siehe auch rawurlencode().

Zurück | Zum Anfang | Nach vorne
parse_url | Nach oben | rawurlencode


rawurlencode

(PHP 3, PHP 4 , PHP 5)

rawurlencode -- URL-Kodierung nach RFC 1738

Beschreibung:

string rawurlencode ( string str)

Gibt eine Zeichenkette zurück, in der alle Sonderzeichen ausser
-_.
durch ein Prozent-Zeichen (%), gefolgt von einer 2-stelligen hexadezimalen Zahl, ersetzt worden sind. Dies ist die Kodierung nach RFC 1738 zum Schutz von Zeichen, die als spezielle URL-Trennzeichen zu interpretieren sind oder die vor einer Umwandlung durch Übertragungs-Medien mit Zeichen-Konvertierung (z.B. einige E-Mail-Systeme) bewahrt werden sollen. Falls sie z.B. ein Passwort in eine FTP-URL einbinden wollen:

Beispiel 1. rawurlencode()-Beispiel 1:

echo '<A HREF="ftp://user:', rawurlencode ('foo @+%/'),
     '@ftp.mein.de/x.txt">';
Oder sie wollen Informationen in der Pfadangabe der URL übertragen:

Beispiel 2. rawurlencode()-Beispiel 2:

echo '<A HREF="http://x.de/leitung_list_skript/',
    rawurlencode ('Verkauf und Marketing/Hamburg'), '">';

Siehe auch rawurldecode().

Zurück | Zum Anfang | Nach vorne
rawurldecode | Nach oben | urldecode


urldecode

(PHP 3, PHP 4 , PHP 5)

urldecode -- Dekodiert eine URL-kodierte Zeile

Beschreibung:

string urldecode ( string str)

Dekodiert jede %## Kodierung einer Zeile. Die dekodierte Zeile wird zurückgegeben.

Beispiel 1. urldecode() Beispiel

$a = split ('&', $querystring);
$i = 0;
while ($i < count ($a)) {
    $b = split ('=', $a [$i]);
    echo 'Value for parameter ', htmlspecialchars (urldecode ($b [0])),
         ' is ', htmlspecialchars (urldecode ($b [1])), "<BR>";
    $i++;
}

Siehe auch urlencode(). und rawurlencode().

Zurück | Zum Anfang | Nach vorne
rawurlencode | Nach oben | urlencode


urlencode

(PHP 3, PHP 4 , PHP 5)

urlencode -- URL-kodiert eine Zeile

Beschreibung:

string urlencode ( string str)

Zeigt eine Zeile an, bei der alle nicht alphanumerischen Zeichen bis auf -_. durch das Prozentzeichen (%) ersetzt werden, gefolgt von zwei Hexzeichen und Leerzeichen durch ein Pluszeichen (+) ersetzt werden. Genauso werden auch Daten kodiert, die über ein WWW-Formular gesendet werden und auf die gleiche Weise mit application/x-www-form-urlencoded kodiert werden. Dies unterscheidet sich von der Kodierung in RFC1738 (siehe rawurlencode()) bei dem aus historischen Gründen Leerzeichen wie Pluszeichen (+) kodiert werden. Diese Funktion ist sehr nützlich, wenn eine Zeichenkette kodiert werden soll und die Variablen an die nächste Seite weitergegeben werden sollen:

Beispiel 1. urlencode() Beispiel

echo '<A HREF="mycgi?foo=', urlencode ($userinput), '">';

Siehe auch urldecode() und rawurldecode().

Zurück | Zum Anfang | Nach vorne
urldecode | Nach oben | Variablen-Funktionen


Variablen-Funktionen

PHP Handbuch
Zurück Nach vorne

CXII. Variablen-Funktionen

Inhaltsverzeichnis
doubleval -- Konvertiert einen Wert nach double
empty -- Prüft, ob eine Variable einen Wert enthält
floatval -- Get float value of a variable
get_defined_vars -- Returns an array of all defined variables
get_resource_type -- Returns the resource type
gettype -- Liefert den Datentyp einer Variablen
import_request_variables -- Import GET/POST/Cookie variables into the global scope
intval -- Konvertiert einen Wert nach integer
is_array -- Prüft, ob Variable ein Array ist
is_bool -- Prüft, ob eine Variable vom Typ bool ist
is_callable -- Verify that the contents of a variable can be called as a function
is_double -- Prüft, ob eine Variable vom Typ double ist
is_float -- Prüft, ob eine Variable vom Typ float ist
is_int -- Prüft, ob eine Variable vom Typ int ist
is_integer -- Prüft, ob eine Variable vom Typ integer ist
is_long -- Prüft, ob eine Variable vom Typ long ist
is_null -- Finds whether a variable is NULL
is_numeric -- Finds whether a variable is a number or a numeric string
is_object -- Prüft, ob eine Variable vom Typ object ist
is_real -- Prüft, ob Variable vom Typ real ist
is_resource -- Prüft, ob eine Variable vom Typ resource ist
is_scalar -- Finds whether a variable is a scalar
is_string -- Prüft, ob Variable vom Typ string ist
isset -- Prüft die Existenz einer Variablen
print_r -- Gibt Variablen-Informationen in lesbarer Form aus
serialize -- Erzeugt ein speicherbares Datenformat
settype -- Legt den Typ einer Variablen fest
strval -- Konvertierung zum String
unserialize -- Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
unset -- Löschen einer Variablen
var_dump -- Gibt alle Informationen zu einer Variablen aus
var_export -- Outputs or returns a parsable string representation of a variable

Zurück | Zum Anfang | Nach vorne
urlencode | Nach oben | doubleval


doubleval

(PHP 3, PHP 4 , PHP 5)

doubleval -- Konvertiert einen Wert nach double

Beschreibung:

double doubleval ( mixed var)

Diese Funktion interpretiert ihr Argument als Fließkommazahl und liefert den Wert als double zurück.

Als var können beliebige skalare Ausdrücke, aber keine Arrays oder Objekte übergeben werden.

$var = '122.34343The';
$double_value_of_var = doubleval ($var);
print $double_value_of_var; // Ausgabe: 122.34343

Siehe auch intval(), strval(), settype() und Typ-Veränderung.

Zurück | Zum Anfang | Nach vorne
Variablen-Funktionen | Nach oben | empty


empty

(PHP 3, PHP 4, PHP 5 )

empty -- Prüft, ob eine Variable einen Wert enthält

Beschreibung:

int empty ( mixed var)

Diese Funktion liefert TRUE, wenn eine Variable nicht definiert, leer oder gleich 0 ist, ansonsten FALSE.

$var = 0;
if (empty ($var)) { #evaluates true
    print '$var is either 0 or not at all set';
}
if (!isset ($var)) { // evaluates false
    print 'The $var is not set at all';
}

empty() kann nur auf Variablen, nicht aber auf Ausdrücke angewandt werden.

Siehe auch isset() und unset().

Zurück | Zum Anfang | Nach vorne
doubleval | Nach oben | floatval


floatval

(PHP 4 >= 4.2.0, PHP 5)

floatval -- Get float value of a variable

Description

float floatval ( mixed var)

Returns the float value of var.

Var may be any scalar type. You cannot use floatval() on arrays or objects.

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // prints 122.34343
?>

See also intval(), strval(), settype() and Type juggling.

Zurück | Zum Anfang | Nach vorne
empty | Nach oben | get_defined_vars


get_defined_vars

(PHP 4 >= 4.0.4, PHP 5)

get_defined_vars -- Returns an array of all defined variables

Description

array get_defined_vars ( void )

This function returns an multidimensional array containing a list of all defined variables, be them environment, server or user-defined variables.

<?php
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// print $b
print_r($arr["b"]);

/* print path to the PHP interpreter (if used as a CGI)
* e.g. /usr/local/bin/php */
echo $arr["_"];

// print the command-line paramaters if any
print_r($arr["argv"]);

// print all the server vars
print_r($arr["_SERVER"]);

// print all the available keys for the arrays of variables
print_r(array_keys(get_defined_vars()));
?>

See also get_defined_functions() and get_defined_constants().

Zurück | Zum Anfang | Nach vorne
floatval | Nach oben | get_resource_type


get_resource_type

(PHP 4 >= 4.0.2, PHP 5)

get_resource_type -- Returns the resource type

Description

string get_resource_type ( resource handle)

This function returns a string representing the type of the resource passed to it. If the paramater is not a valid resource, it generates an error.

<?php
// prints: mysql link
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// prints: file
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// prints: domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";
?>

Zurück | Zum Anfang | Nach vorne
get_defined_vars | Nach oben | gettype


gettype

(PHP 3, PHP 4 , PHP 5)

gettype -- Liefert den Datentyp einer Variablen

Beschreibung:

string gettype ( mixed var)

Diese Funktion liefert den Namen des Typs der Variablen var zurück.

Mögliche Ergebnisse sind:

  • "integer"

  • "double"

  • "string"

  • "array"

  • "object"

  • "unknown type"

Siehe auch settype().

Zurück | Zum Anfang | Nach vorne
get_resource_type | Nach oben | import_request_variables


import_request_variables

(PHP 4 >= 4.1.0, PHP 5)

import_request_variables -- Import GET/POST/Cookie variables into the global scope

Description

bool import_request_variables ( string types [, string prefix])

Imports GET/POST/Cookie variables into the global scope. It is useful if you disabled register_globals, but would like to see some variables in the global scope.

Using the types parameter, you can specify which request variables to import. You can use 'G', 'P' and 'C' characters respectively for GET, POST and Cookie. These characters are not case sensitive, so you can also use any combination of 'g', 'p' and 'c'. POST includes the POST uploaded file information. Note that the order of the letters matters, as when using "gp", the POST variables will overwrite GET variables with the same name. Any other letters than GPC are discarded.

The prefix parameter is used as a variable name prefix, prepended before all variable's name imported into the global scope. So if you have a GET value named "userid", and provide a prefix "pref_", then you'll get a global variable named $pref_userid.

If you're interested in importing other variables into the global scope, such as SERVER, consider using extract().

Anmerkung: Although the prefix parameter is optional, you will get an E_NOTICE level error if you specify no prefix, or specify an empty string as a prefix. This is a possible security hazard. Notice level errors are not displayed using the default error reporting level.

<?php
// This will import GET and POST vars
// with an "rvar_" prefix
import_request_variables("gP", "rvar_");

echo $rvar_foo;
?>

See also $_REQUEST, register_globals, Predefined Variables, and extract().

Zurück | Zum Anfang | Nach vorne
gettype | Nach oben | intval


intval

(PHP 3, PHP 4 , PHP 5)

intval -- Konvertiert einen Wert nach integer

Beschreibung:

int intval ( mixed var [, int base])

Diese Funktion konvertiert den Parameter var zu einem integer, wobei base als Basis benutzt wird (Default ist base=10).

var kann ein Ausdruck oder eine einfache Variable sein, nicht jedoch ein Array oder Objekt.

Siehe auch doubleval(), strval(), settype() und Typ-Veränderungen.

Zurück | Zum Anfang | Nach vorne
import_request_variables | Nach oben | is_array


is_array

(PHP 3, PHP 4 , PHP 5)

is_array -- Prüft, ob Variable ein Array ist

Beschreibung:

bool is_array ( mixed var)

Liefert TRUE, wenn var ein Array ist, sonst FALSE.

Siehe auch is_double(),
is_float(),
is_int(),
is_integer(),
is_real(),
is_string(),
is_long(), und
is_object().

Zurück | Zum Anfang | Nach vorne
intval | Nach oben | is_bool


is_bool

(PHP 4 , PHP 5)

is_bool -- Prüft, ob eine Variable vom Typ bool ist

Beschreibung:

bool is_bool ( mixed var)

Liefert TRUE, wenn var vom Typ bool ist.

Zurück | Zum Anfang | Nach vorne
is_array | Nach oben | is_callable


is_callable

(PHP 4 >= 4.0.6, PHP 5)

is_callable -- Verify that the contents of a variable can be called as a function

Description

bool is_callable ( mixed var [, bool syntax_only [, string callable_name]])

Verify that the contents of a variable can be called as a function. This can check that a simple variable contains the name of a valid function, or that an array contains a properly encoded object and function name.

The var parameter can be either the name of a function stored in a string variable, or an object and the name of a method within the object, like this:
array($SomeObject, 'MethodName')

If the syntax_only argument is TRUE the function only verifies that var might be a function or method. It will only reject simple variables that are not strings, or an array that does not have a valid structure to be used as a callback. The valid ones are supposed to have only 2 entries, the first of which is an object or a string, and the second a string.

The callable_name argument receives the "callable name". In the example below it's "someClass:someMethod". Note, however, that despite the implication that someClass::SomeMethod() is a callable static method, this is not the case.

<?php
//  How to check a variable to see if it can be called
//  as a function.

//
//  Simple variable containing a function
//

function someFunction()
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Array containing a method
//

class someClass {

  function someMethod()
  {
  }

}

$anObject = new someClass();

$methodVariable = array($anObject, 'someMethod');

var_dump(is_callable($methodVariable, true, $callable_name));  //  bool(true)

echo $callable_name, "\n";  //  someClass:someMethod

?>

Zurück | Zum Anfang | Nach vorne
is_bool | Nach oben | is_double


is_double

(PHP 3, PHP 4 , PHP 5)

is_double -- Prüft, ob eine Variable vom Typ double ist

Beschreibung:

int is_double ( mixed var)

Liefert TRUE, wenn var vom Typ double ist, sonst FALSE.

Siehe auch is_array(),
is_float(), is_int(),
is_integer(), is_real(),
is_string(), is_long() und
is_object().

Zurück | Zum Anfang | Nach vorne
is_callable | Nach oben | is_float


is_float

(PHP 3, PHP 4 , PHP 5)

is_float -- Prüft, ob eine Variable vom Typ float ist

Beschreibung:

int is_float ( mixed var)

Diese Funktion ist ein Synonym für is_double().

Siehe auch is_double(),
is_real(), is_int(),
is_integer(), is_string(),
is_object(), is_array() und
is_long().

Zurück | Zum Anfang | Nach vorne
is_double | Nach oben | is_int


is_int

(PHP 3, PHP 4 , PHP 5)

is_int -- Prüft, ob eine Variable vom Typ int ist

Beschreibung:

bool is_int ( mixed var)

Diese Funktion ist ein Synonym für is_int().

Siehe auch is_double(),
is_float(), is_integer(),
is_string(), is_real(),
is_object(), is_array() und
is_long().

Zurück | Zum Anfang | Nach vorne
is_float | Nach oben | is_integer


is_integer

(PHP 3, PHP 4 , PHP 5)

is_integer -- Prüft, ob eine Variable vom Typ integer ist

Beschreibung:

int is_integer ( mixed var)

Diese Funktion liefert TRUE, wenn var vom Typ integer ist, sonst FALSE.

Siehe auch is_double(),
is_float(), is_int(),
is_string(), is_real(),
is_object(), is_array() und
is_long().

Zurück | Zum Anfang | Nach vorne
is_int | Nach oben | is_long


is_long

(PHP 3, PHP 4 , PHP 5)

is_long -- Prüft, ob eine Variable vom Typ long ist

Beschreibung:

int is_long ( mixed var)

Diese Funktion ist ein Synonym für is_integer().

Siehe auch is_double(),
is_float(), is_int(),
is_real(), is_string(),
is_object(), is_array() und
is_integer().

Zurück | Zum Anfang | Nach vorne
is_integer | Nach oben | is_null


is_null

(PHP 4 >= 4.0.4, PHP 5)

is_null -- Finds whether a variable is NULL

Description

bool is_null ( mixed var)

Returns TRUE if var is null, FALSE otherwise.

See the NULL type when a variable is considered to be NULL and when not.

See also NULL,
is_bool(),
is_numeric(),
is_float(),
is_int(),
is_string(),
is_object(),
is_array(),
is_integer(), and
is_real().

Zurück | Zum Anfang | Nach vorne
is_long | Nach oben | is_numeric


is_numeric

(PHP 4 , PHP 5)

is_numeric -- Finds whether a variable is a number or a numeric string

Description

bool is_numeric ( mixed var)

Returns TRUE if var is a number or a numeric string, FALSE otherwise.

See also is_bool(),
is_double(),
is_float(),
is_int(),
is_real(),
is_string(),
is_object(),
is_array(), and
is_integer().

Zurück | Zum Anfang | Nach vorne
is_null | Nach oben | is_object


is_object

(PHP 3, PHP 4 , PHP 5)

is_object -- Prüft, ob eine Variable vom Typ object ist

Beschreibung:

bool is_object ( mixed var)

Liefert TRUE, wenn var ein Objekt enthält, sonst FALSE.

Siehe auch is_long(),
is_int(), is_integer(),
is_float(), is_double(),
is_real(), is_string() und
is_array().

Zurück | Zum Anfang | Nach vorne
is_numeric | Nach oben | is_real


is_real

(PHP 3, PHP 4 , PHP 5)

is_real -- Prüft, ob Variable vom Typ real ist

Beschreibung:

int is_real ( mixed var)

Diese Funktion ist ein Synonym für is_double().

Siehe auch is_long(),
is_int(), is_integer(),
is_float(), is_double(),
is_object(), is_string() und
is_array().

Zurück | Zum Anfang | Nach vorne
is_object | Nach oben | is_resource


is_resource

(PHP 4 , PHP 5)

is_resource -- Prüft, ob eine Variable vom Typ resource ist

Beschreibung:

bool is_resource ( mixed var)

is_resource() liefert TRUE, wenn es sich bei der Variable var um eine PHP-Resource wie z.B. ein Datei- oder Result-Handle handelt, ansonsten FALSE. PHP-Resorucen werden von PHP-internen Funktione erzeugt und freigegeben. Unterläst der Benutzer die Freigabe in seinem Code, so kann diese durch den speziellen Datentyp resource dennoch angestossen werden, sobald die Resource-Variable nicht mehr referenziert wird.

Zurück | Zum Anfang | Nach vorne
is_real | Nach oben | is_scalar


is_scalar

(PHP 4 >= 4.0.5, PHP 5)

is_scalar -- Finds whether a variable is a scalar

Description

bool is_scalar ( mixed var)

is_scalar() returns TRUE if the variable given by the var parameter is a scalar, otherwise it returns FALSE.

Scalar variables are those containing an integer, float, string or boolean. Types array, object and resource are not scalar.

<?php
function show_var($var)
{
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin");

show_var($pi);
// prints: 3.1416

show_var($proteins)
// prints:
// array(3) {
//   [0]=>
//   string(10) "hemoglobin"
//   [1]=>
//   string(20) "cytochrome c oxidase"
//   [2]=>
//   string(10) "ferredoxin"
// }
?>

Anmerkung: is_scalar() does not consider resource type values to be scalar as resources are abstract datatypes which are currently based on integers. This implementation detail should not be relied upon, as it may change.

See also is_bool(),
is_numeric(),
is_float(),
is_int(),
is_real(),
is_string(),
is_object(),
is_array(), and
is_integer().

Zurück | Zum Anfang | Nach vorne
is_resource | Nach oben | is_string


is_string

(PHP 3, PHP 4 , PHP 5)

is_string -- Prüft, ob Variable vom Typ string ist

Beschreibung:

bool is_string ( mixed var)

Liefert TRUE, wenn var vom Typ string ist, sonst FALSE.

Siehe auch is_long(),
is_int(), is_integer(),
is_float(), is_double(),
is_real(), is_object() und
is_array().

Zurück | Zum Anfang | Nach vorne
is_scalar | Nach oben | isset


isset

(PHP 3, PHP 4, PHP 5 )

isset -- Prüft die Existenz einer Variablen

Beschreibung:

bool isset ( mixed var [, mixed var [, ...]])

Diese Funktion liefert TRUE, wenn die Variable oder das Array-Element var existiert, sonst FALSE.

Wird eine Variable oder ein Array-Element mit unset() freigegeben, so liefert isset() anschließend ebenfalls FALSE.

echo isset ($a); // false
$a = "test";
echo isset ($a); // true
unset ($a);
echo isset ($a); // false

Siehe auch empty() und unset().

Zurück | Zum Anfang | Nach vorne
is_string | Nach oben | print_r


print_r

(PHP 4 , PHP 5)

print_r -- Gibt Variablen-Informationen in lesbarer Form aus

Beschreibung:

bool print_r ( mixed expression [, bool return])

Anmerkung: Der Parameter return wurde in PHP 4.3.0 eingeführt.

print_r() zeigt Informationen über eine Variable in lesbarer Form an. Wenn die Funktion für eine Variable vom Typ string, integer oder float aufgerufen wird, wird der Wert der Variablen angezeigt. Falls print_r() für ein Array aufgerufen wird, werden die Indizes und Werte des Arrays angezeigt. Ähnlich wie bei objects. print_r() und var_export() zeigen mit PHP 5 auch private und geschützte Eigenschaften von Objekten an, im Gegensatz zur Funktion var_dump().

Denken Sie daran, dass ein Aufruf von print_r() den internen Arrayzeiger auf das letzte Element des Arrays setzt. Um den Zeiger wieder an den Anfang zu setzen, benutzen Sie die Funktion reset().

<pre>
<?php
    $a = array ('a' => 'Apfel', 'b' => 'Banane', 'c' => array ('x', 'y', 'z'));
    print_r ($a);
?>
</pre>

Liefert die Ausgabe:

<pre>
Array
(
    [a] => Apfel
    [b] => Banane
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

Wenn Sie die Ausgabe von print_r() zum Weiterverarbeiten abfangen möchten, benutzen Sie dazu den Parameter return. Wenn dieser auf TRUE gesetzt ist, gibt print_r() die Ausgabe in einer Variablen zurück, anstatt sie am Bildschirm auszugeben (was dem Standard entspricht).

Beispiel 1. returnBeispiel zur Ausgabe

<?php
    $b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
    $results = print_r($b, true); //$results enthaelt nun die Ausgabe von print_r()
?>

Anmerkung: Falls Sie die Ausgabe von print_r() in einer Version vor PHP 4.3.0 abfangen möchten, können Sie die Funktionen zur Ausgabesteuerung benutzen.

Anmerkung: Vor PHP 4.0.4 erzeugte print_r() eine Endlosschleife, wenn ein übergebenes array oder object sich selbst direkt oder indirekt referenzierte. Ein Beispiel dafür ist print_r($GLOBALS), weil $GLOBALS selbst eine globale Variable ist, und damit eine Referenz auf sich selbst enthält.

Siehe auch ob_start(),
var_dump() und
var_export().

Zurück | Zum Anfang | Nach vorne
isset | Nach oben | serialize


serialize

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

serialize -- Erzeugt ein speicherbares Datenformat

Beschreibung:

string serialize ( mixed value)

serialize() gibt eine Zeichenkette (String) zurück, die eine Byte-Stream entsprechende Wiedergabe von value enthält und beliebig abgespeichert werden kann.

Diese Funktion dient der Speicherung oder Übergabe von PHP-Werten, ohne dass diese ihren Wert oder ihre Struktur verlieren.

Um eine serialisierte Zeichenkette wieder als PHP-Wert verfügbar zu machen steht die unserialize()-Funktion zur Verfügung. serialize() kann mit den Typen integer, double, string, array (mehrdimensional) und object umgehen. Beim Objekt werden die Eigenschaften serialisiert, die Methoden gehen aber verloren.

Beispiel 1. serialize()-Beispiel:

// $session_data enthält ein mehrdimensionales Array mit
// Session-Informationen des aktuellen Benutzers. Wir benutzen
// serialize() um diese Infos am Ende der Anfrage in eine
// Datenbank zu speichern.

$conn = odbc_connect ("webdb", "php", "moorhuhn");
$stmt = odbc_prepare ($conn,
                      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata)) {
    $stmt = odbc_prepare ($conn,
                          "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, &$sqldata)) {
        /* Etwas lief schief. Fluche, heule und stöhne. */
    }
}

Zurück | Zum Anfang | Nach vorne
print_r | Nach oben | settype


settype

(PHP 3, PHP 4 , PHP 5)

settype -- Legt den Typ einer Variablen fest

Beschreibung:

int settype ( string var, string type)

Der Typ der Variablen var wird festgelegt als type.

Mögliche Werte für type sind:

  • "integer"

  • "double"

  • "string"

  • "array"

  • "object"

Liefert TRUE bei Erfolg, sonst FALSE.

Siehe auch gettype().

Zurück | Zum Anfang | Nach vorne
serialize | Nach oben | strval


strval

(PHP 3, PHP 4 , PHP 5)

strval -- Konvertierung zum String

Beschreibung:

string strval ( mixed var)

Diese Funktion liefert den übergebenen Ausdruck var als String-Repräsentation zurück.

var darf von jedem einfache Datentyp, aber kein Array oder Objekt sein.

Siehe auch doubleval(), intval(), settype() und Typ-Veränderung.

Zurück | Zum Anfang | Nach vorne
settype | Nach oben | unserialize


unserialize

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

unserialize -- Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP

Beschreibung:

mixed unserialize ( string str)

unserialize() nimmt eine einzelne Variable aus einer serialisierten Datenmenge (siehe unter serialize()) und wandelt sie in einen PHP-Wert um. Dieser Wert wird als Funktionsergebnis zurück gegeben. Er kann vom Typ integer, double, string, array oder object sein. Wurde ein Objekt serialisiert, können dessen Methoden nicht zurück gegeben werden.

Beispiel 1. unserialize()-Beispiel:

// Als Beispiel benutzen wir unserialize() um Daten aus einer
// Datenbank nach $session_data zu laden. Das Beispiel vervollständigt
// das unter serialize() beschriebene.

$conn = odbc_connect ("webdb", "php", "moorhuhn");
$stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata) || !odbc_fetch_into ($stmt, &$tmp)) {
    // wenn execute oder fetch fehlschlägt, initialisiere ein leeres Array
    $session_data = array();
} else {
    // die serialisierten Daten sollten nun in $tmp[0] stehen
    $session_data = unserialize ($tmp[0]);
    if (!is_array ($session_data)) {
        // etwas ging schief, also wieder ein leeres Array initialisieren
        $session_data = array();
    }
}

Zurück | Zum Anfang | Nach vorne
strval | Nach oben | unset


unset

(PHP 3, PHP 4, PHP 5 )

unset -- Löschen einer Variablen

Beschreibung:

void unset ( mixed var)

unset() gibt eine Variable oder ein Array-Element vollständig frei. Beachten Sie, dass in PHP 3 unset() immer TRUE (den Integer-Wert 1) zurückgegeben hat. In PHP 4 ist jedoch unset() keine Funktion mehr: Es ist nun ein Sprachkonstrukt. Daher wird kein Wert mehr zurückgegeben und der Versuch, den Rückgabewert zu verwenden resultiert in einem Parse Error.

Beispiel 1. unset() example

<?php

// Einzelne Variable löschen
unset($foo);

// Einzelnes Array-Element löschen
unset($bar['quux']);

// Mehrere Variablen löschen
unset($foo1, $foo2, $foo3);

Siehe auch isset() und empty().

Zurück | Zum Anfang | Nach vorne
unserialize | Nach oben | var_dump


var_dump

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

var_dump -- Gibt alle Informationen zu einer Variablen aus

Beschreibung:

void var_dump ( mixed expression)

Diese Fuktion liefert Informationen über Typ und Wert des Parameter expression zurück. Arrays und Objekte werden rekursiv durchlaufen und mit entsprechender Einrückung dargestellt.

Siehe auch print_r().

<pre>
<?php
    $a = array (1, 2, array ("a", "b", "c"));
    var_dump ($a);
?>
</pre>

Zurück | Zum Anfang | Nach vorne
unset | Nach oben | var_export


var_export

(PHP 4 >= 4.2.0, PHP 5)

var_export -- Outputs or returns a parsable string representation of a variable

Description

mixed var_export ( mixed expression [, bool return])

This function returns structured information about the variable that is passed to this function. It is similar to var_dump() with two exceptions. The first one is that the returned representation is valid PHP code, the second that it will also return protected and private properties of an object with PHP 5.

You can also return the variable representation by using TRUE as second parameter to this function.

<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>

output:

array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b = 3.1;
$v = var_export($b, true);
echo $v;

?>

output:

3.1

See also var_dump() and print_r().

Zurück | Zum Anfang | Nach vorne
var_dump | Nach oben | vpopmail Functions


vpopmail Functions

PHP Handbuch
Zurück Nach vorne

CXIII. vpopmail Functions

Einführung

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

This extension has been moved from PHP as of PHP 4.3.0 and now vpopmail lives in PECL.

Installation

In PHP 4, these functions are only available if PHP was configured with --with-vpopmail[=DIR].

Inhaltsverzeichnis
vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain
vpopmail_add_alias_domain -- Add an alias for a virtual domain
vpopmail_add_domain_ex -- Add a new virtual domain
vpopmail_add_domain -- Add a new virtual domain
vpopmail_add_user -- Add a new user to the specified virtual domain
vpopmail_alias_add -- insert a virtual alias
vpopmail_alias_del_domain -- deletes all virtual aliases of a domain
vpopmail_alias_del -- deletes all virtual aliases of a user
vpopmail_alias_get_all -- get all lines of an alias for a domain
vpopmail_alias_get -- get all lines of an alias for a domain
vpopmail_auth_user -- Attempt to validate a username/domain/password. Returns true/false
vpopmail_del_domain_ex -- Delete a virtual domain
vpopmail_del_domain -- Delete a virtual domain
vpopmail_del_user -- Delete a user from a virtual domain
vpopmail_error -- Get text message for last vpopmail error. Returns string
vpopmail_passwd -- Change a virtual user's password
vpopmail_set_user_quota -- Sets a virtual user's quota

Zurück | Zum Anfang | Nach vorne
var_export | Nach oben | vpopmail_add_alias_domain_ex


vpopmail_add_alias_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain

Description

bool vpopmail_add_alias_domain_ex ( string olddomain, string newdomain)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail Functions | Nach oben | vpopmail_add_alias_domain


vpopmail_add_alias_domain

(4.0.5 - 4.2.3 only)

vpopmail_add_alias_domain -- Add an alias for a virtual domain

Description

bool vpopmail_add_alias_domain ( string domain, string aliasdomain)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_add_alias_domain_ex | Nach oben | vpopmail_add_domain_ex


vpopmail_add_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_add_domain_ex -- Add a new virtual domain

Description

bool vpopmail_add_domain_ex ( string domain, string passwd [, string quota [, string bounce [, bool apop]]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_add_alias_domain | Nach oben | vpopmail_add_domain


vpopmail_add_domain

(4.0.5 - 4.2.3 only)

vpopmail_add_domain -- Add a new virtual domain

Description

bool vpopmail_add_domain ( string domain, string dir, int uid, int gid)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_add_domain_ex | Nach oben | vpopmail_add_user


vpopmail_add_user

(4.0.5 - 4.2.3 only)

vpopmail_add_user -- Add a new user to the specified virtual domain

Description

bool vpopmail_add_user ( string user, string domain, string password [, string gecos [, bool apop]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_add_domain | Nach oben | vpopmail_alias_add


vpopmail_alias_add

(4.1.0 - 4.2.3 only)

vpopmail_alias_add -- insert a virtual alias

Description

bool vpopmail_alias_add ( string user, string domain, string alias)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_add_user | Nach oben | vpopmail_alias_del_domain


vpopmail_alias_del_domain

(4.1.0 - 4.2.3 only)

vpopmail_alias_del_domain -- deletes all virtual aliases of a domain

Description

bool vpopmail_alias_del_domain ( string domain)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_alias_add | Nach oben | vpopmail_alias_del


vpopmail_alias_del

(4.1.0 - 4.2.3 only)

vpopmail_alias_del -- deletes all virtual aliases of a user

Description

bool vpopmail_alias_del ( string user, string domain)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_alias_del_domain | Nach oben | vpopmail_alias_get_all


vpopmail_alias_get_all

(4.1.0 - 4.2.3 only)

vpopmail_alias_get_all -- get all lines of an alias for a domain

Description

array vpopmail_alias_get_all ( string domain)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_alias_del | Nach oben | vpopmail_alias_get


vpopmail_alias_get

(4.1.0 - 4.2.3 only)

vpopmail_alias_get -- get all lines of an alias for a domain

Description

array vpopmail_alias_get ( string alias, string domain)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_alias_get_all | Nach oben | vpopmail_auth_user


vpopmail_auth_user

(4.0.5 - 4.2.3 only)

vpopmail_auth_user -- Attempt to validate a username/domain/password. Returns true/false

Description

bool vpopmail_auth_user ( string user, string domain, string password [, string apop])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_alias_get | Nach oben | vpopmail_del_domain_ex


vpopmail_del_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_del_domain_ex -- Delete a virtual domain

Description

bool vpopmail_del_domain_ex ( string domain)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_auth_user | Nach oben | vpopmail_del_domain


vpopmail_del_domain

(4.0.5 - 4.2.3 only)

vpopmail_del_domain -- Delete a virtual domain

Description

bool vpopmail_del_domain ( string domain)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_del_domain_ex | Nach oben | vpopmail_del_user


vpopmail_del_user

(4.0.5 - 4.2.3 only)

vpopmail_del_user -- Delete a user from a virtual domain

Description

bool vpopmail_del_user ( string user, string domain)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_del_domain | Nach oben | vpopmail_error


vpopmail_error

(4.0.5 - 4.2.3 only)

vpopmail_error -- Get text message for last vpopmail error. Returns string

Description

string vpopmail_error ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_del_user | Nach oben | vpopmail_passwd


vpopmail_passwd

(4.0.5 - 4.2.3 only)

vpopmail_passwd -- Change a virtual user's password

Description

bool vpopmail_passwd ( string user, string domain, string password)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_error | Nach oben | vpopmail_set_user_quota


vpopmail_set_user_quota

(4.0.5 - 4.2.3 only)

vpopmail_set_user_quota -- Sets a virtual user's quota

Description

bool vpopmail_set_user_quota ( string user, string domain, string quota)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
vpopmail_passwd | Nach oben | W32api Functions


W32api Functions

PHP Handbuch
Zurück Nach vorne

CXIV. W32api Functions

Einführung

This extension is a generic extension API to DLLs. This was originally written to allow access to the Win32 API from PHP, although you can also access other functions exported via other DLLs.

Currently supported types are generic PHP types (strings, booleans, floats, integers and nulls) and types you define with w32api_deftype().

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Anforderungen

This extension will only work on Windows systems.

Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

This extension defines one resource type, used for user defined types. The name of this resource is "dynaparm".

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

DC_MICROSOFT (integer)

DC_BORLAND (integer)

DC_CALL_CDECL (integer)

DC_CALL_STD (integer)

DC_RETVAL_MATH4 (integer)

DC_RETVAL_MATH8 (integer)

DC_CALL_STD_BO (integer)

DC_CALL_STD_MS (integer)

DC_CALL_STD_M8 (integer)

DC_FLAG_ARGPTR (integer)

Beispiele

This example gets the amount of time the system has been running and displays it in a message box.

Beispiel 1. Get the uptime and display it in a message box

<?php
// Define constants needed, taken from
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);

// Load the extension in
dl("php_w32api.dll");

// Register the GetTickCount function from kernel32.dll
w32api_register_function("kernel32.dll",
                         "GetTickCount",
                         "long");

// Register the MessageBoxA function from User32.dll
w32api_register_function("User32.dll",
                         "MessageBoxA",
                         "long");

// Get uptime information
$ticks = GetTickCount();

// Convert it to a nicely displayable text
$secs  = floor($ticks / 1000);
$mins  = floor($secs / 60);
$hours = floor($mins / 60);

$str = sprintf("You have been using your computer for:" .
                "\r\n %d Milliseconds, or \r\n %d Seconds" .
                "or \r\n %d mins or\r\n %d hours %d mins.",
                $ticks,
                $secs,
                $mins,
                $hours,
                $mins - ($hours*60));

// Display a message box with only an OK button and the uptime text
MessageBoxA(NULL,
            $str,
            "Uptime Information",
            MB_OK);
?>
Inhaltsverzeichnis
w32api_deftype -- Defines a type for use with other w32api_functions
w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed
w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name
w32api_register_function -- Registers function function_name from library with PHP
w32api_set_call_method -- Sets the calling method used

Zurück | Zum Anfang | Nach vorne
vpopmail_set_user_quota | Nach oben | w32api_deftype


w32api_deftype

(4.2.0 - 4.2.3 only)

w32api_deftype -- Defines a type for use with other w32api_functions

Description

bool w32api_deftype ( string typename, string member1_type, string member1_name [, string ... [, string ...]])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

If you would like to define a type for a w32api call, you need to call w32api_deftype(). This function takes 2n+1 arguments, where n is the number of members the type has. The first argument is the name of the type. After that is the type of the member followed by the members name (in pairs). A member type can be a user defined type. All the type names are case sensitive. Built in type names should be provided in lowercase. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
W32api Functions | Nach oben | w32api_init_dtype


w32api_init_dtype

(4.2.0 - 4.2.3 only)

w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed

Description

resource w32api_init_dtype ( string typename, mixed value [, mixed ...])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

This function creates an instance of the data type named typename, filling in the values of the data type. The typename parameter is case sensitive. You should give the values in the same order as you defined the data type with w32api_deftype(). The type of the resource returned is dynaparm.

Zurück | Zum Anfang | Nach vorne
w32api_deftype | Nach oben | w32api_invoke_function


w32api_invoke_function

(4.2.0 - 4.2.3 only)

w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name

Description

mixed w32api_invoke_function ( string funcname, mixed argument [, mixed ...])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

w32api_invoke_function() tries to find the previously registered function, named funcname, passing the parameters you provided. The return type is the one you set when you registered the function, the value is the one returned by the function itself. Any of the arguments can be of any PHP type or w32api_deftype() defined type, as needed.

Zurück | Zum Anfang | Nach vorne
w32api_init_dtype | Nach oben | w32api_register_function


w32api_register_function

(4.2.0 - 4.2.3 only)

w32api_register_function -- Registers function function_name from library with PHP

Description

bool w32api_register_function ( string library, string function_name, string return_type)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

This function tries to find the function_name function in libary, and tries to import it into PHP. The function will be registered with the given return_type. This type can be a generic PHP type, or a type defined with w32api_deftype(). All type names are case sensitive. Built in type names should be provided in lowercase. Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
w32api_invoke_function | Nach oben | w32api_set_call_method


w32api_set_call_method

(4.2.0 - 4.2.3 only)

w32api_set_call_method -- Sets the calling method used

Description

void w32api_set_call_method ( int method)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

This function sets the method call type. The parameter can be one of the constants DC_CALL_CDECL or DC_CALL_STD. The extension default is DC_CALL_STD.

Zurück | Zum Anfang | Nach vorne
w32api_register_function | Nach oben | WDDX Funktionen


WDDX Funktionen

PHP Handbuch
Zurück Nach vorne

CXV. WDDX Funktionen

Diese Funktionen arbeiten mit WDDX zusammen.

Es ist zu beachten, dass alle Funktionen, die Variablen serialisieren, immer das erste Element eines Arrays benutzen, um festzustellen, ob das Array in ein Array oder eine 'Structure' serialisiert wird. Wenn das erste Element einen String als Schlüssel hat, wird das Array in eine 'Structure' serialisiert, andernfalls in ein Array.

Beispiel 1. Einen einzelnen String serialisieren

<?php
print wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

dieses Beispiel erzeugt:

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Beispiel 2. Die Verwendung von inkrementierenden Paketen

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* So tun, als ob $cities aus einer Datenbank kommt */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
print $packet;
?>

Diese Beispiel wird erzeugen:

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Inhaltsverzeichnis
wddx_add_vars -- Fügt dem WDDX Paket mit der übergebenen ID Werte hinzu
wddx_deserialize -- Deserialisiert ein WDDX Paket
wddx_packet_end -- Schliesst das WDDX Paket mit der angegebenen ID
wddx_packet_start -- Beginnt ein neues WDDX Paket mit einer 'Structure'
wddx_serialize_value -- Serialisiert einen einzelnen Wert in ein WDDX Paket
wddx_serialize_vars -- Serialisiert Variablen in WDDX Pakete

Zurück | Zum Anfang | Nach vorne
w32api_set_call_method | Nach oben | wddx_add_vars


wddx_add_vars

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_add_vars -- Fügt dem WDDX Paket mit der übergebenen ID Werte hinzu

Beschreibung

wddx_add_vars ( int packet_id, mixed name_var [, mixed ...])

wddx_add_vars() wird verwendet um die übergebenen Werte zu serialisieren und diese an das durch den Parameter packet_id referenzierte Paket anzuhängen. Die Werteübergabe funktioniert genauso wie bei wddx_serialize_vars().

Zurück | Zum Anfang | Nach vorne
WDDX Funktionen | Nach oben | wddx_deserialize


wddx_deserialize

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_deserialize -- Deserialisiert ein WDDX Paket

Beschreibung

mixed wddx_deserialize ( string packet)

wddx_deserialize() übernimmt einen packet String and deserialisiert diesen. Es wird entweder ein String, eine Zahl oder ein Array zurückgegeben. 'Structures' werden in assoziative Arrays deserialisiert.

Zurück | Zum Anfang | Nach vorne
wddx_add_vars | Nach oben | wddx_packet_end


wddx_packet_end

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_packet_end -- Schliesst das WDDX Paket mit der angegebenen ID

Beschreibung

string wddx_packet_end ( int packet_id)

wddx_packet_end() schliesst das WDDX Paket, welches mit packet_id identifiziert wird und gibt einen String, der das erzeugte WDDX Paket enthält, zurück.

Zurück | Zum Anfang | Nach vorne
wddx_deserialize | Nach oben | wddx_packet_start


wddx_packet_start

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_packet_start -- Beginnt ein neues WDDX Paket mit einer 'Structure'

Beschreibung

int wddx_packet_start ( [string kommentar])

wddx_packet_start() wird verwendet um ein neues WDDX Paket zu erzeugen, zu welchem Variablen hinzugefügt werden können. Ein optionaler Parameter kommentar vom Typ String kann angegeben werden. Zurückgegeben wird eine Paket-ID, die in den folgenden Funktionen referenziert wird. Desweiteren wird automatisch eine 'Structure' zur Aufnahme der Variablen angelegt.

Zurück | Zum Anfang | Nach vorne
wddx_packet_end | Nach oben | wddx_serialize_value


wddx_serialize_value

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_serialize_value -- Serialisiert einen einzelnen Wert in ein WDDX Paket

Beschreibung

string wddx_serialize_value ( mixed wert [, string kommentar])

wddx_serialize_value() wird verwendet um einen einzelnen Wert in ein WDDX Paket zu serialisieren. Übergeben wird der Wert in wert und ein optionaler Parameter kommentar, der im Header des WDDX Pakets erscheinen wird. Zurückgegeben wird das entsprechende WDDX Paket.

Zurück | Zum Anfang | Nach vorne
wddx_packet_start | Nach oben | wddx_serialize_vars


wddx_serialize_vars

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_serialize_vars -- Serialisiert Variablen in WDDX Pakete

Beschreibung

string wddx_serialize_vars ( mixed var_name [, mixed ...])

wddx_serialize_vars() wird verwendet um ein WDDX Paket mit einer 'Structure' zu erzeugen, welches eine serialisierte Repräsentation der übergebenen Variablen enthält.

wddx_serialize_vars() akzeptiert eine variable Zahl von Argumenten. Diese können entweder einzelne Namen von Variablen oder Arrays mit Variablennamen bzw. weiteren Arrays sein.

Beispiel 1. wddx_serialize_vars example

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
print wddx_serialize_vars("a", "b", $clvars);
?>

Das obige Script erzeugt:
<wddxPacket version='1.0'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>blue</string><string>orange</string><string>violet</string></array></var>
<var name='d'><string>colors</string></var></struct></data></wddxPacket>

Zurück | Zum Anfang | Nach vorne
wddx_serialize_value | Nach oben | XML Parser Functions


XML Parser Functions

PHP Handbuch
Zurück Nach vorne

CXVI. XML Parser Functions

Einführung

XML (eXtensible Markup Language) is a data format for structured document interchange on the Web. It is a standard defined by The World Wide Web consortium (W3C). Information about XML and related technologies can be found at http://www.w3.org/XML/.

This PHP extension implements support for James Clark's expat in PHP. This toolkit lets you parse, but not validate, XML documents. It supports three source character encodings also provided by PHP: US-ASCII, ISO-8859-1 and UTF-8. UTF-16 is not supported.

This extension lets you create XML parsers and then define handlers for different XML events. Each XML parser also has a few parameters you can adjust.

Anforderungen

This extension uses expat, which can be found at http://www.jclark.com/xml/expat.html. The Makefile that comes with expat does not build a library by default, you can use this make rule for that:
libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
A source RPM package of expat can be found at http://sourceforge.net/projects/expat/.

Installation

These functions are enabled by default, using the bundled expat library. You can disable XML support with --disable-xml. If you compile PHP as a module for Apache 1.3.9 or later, PHP will automatically use the bundled expat library from Apache. In order you don't want to use the bundled expat library configure PHP --with-expat-dir=DIR, where DIR should point to the base installation directory of expat.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

xml

The xml resource as returned by xml_parser_create() and xml_parser_create_ns() references an xml parser instance to be used with the functions provided by this extension.

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

XML_ERROR_NONE (integer)

XML_ERROR_NO_MEMORY (integer)

XML_ERROR_SYNTAX (integer)

XML_ERROR_NO_ELEMENTS (integer)

XML_ERROR_INVALID_TOKEN (integer)

XML_ERROR_UNCLOSED_TOKEN (integer)

XML_ERROR_PARTIAL_CHAR (integer)

XML_ERROR_TAG_MISMATCH (integer)

XML_ERROR_DUPLICATE_ATTRIBUTE (integer)

XML_ERROR_JUNK_AFTER_DOC_ELEMENT (integer)

XML_ERROR_PARAM_ENTITY_REF (integer)

XML_ERROR_UNDEFINED_ENTITY (integer)

XML_ERROR_RECURSIVE_ENTITY_REF (integer)

XML_ERROR_ASYNC_ENTITY (integer)

XML_ERROR_BAD_CHAR_REF (integer)

XML_ERROR_BINARY_ENTITY_REF (integer)

XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (integer)

XML_ERROR_MISPLACED_XML_PI (integer)

XML_ERROR_UNKNOWN_ENCODING (integer)

XML_ERROR_INCORRECT_ENCODING (integer)

XML_ERROR_UNCLOSED_CDATA_SECTION (integer)

XML_ERROR_EXTERNAL_ENTITY_HANDLING (integer)

XML_OPTION_CASE_FOLDING (integer)

XML_OPTION_TARGET_ENCODING (integer)

XML_OPTION_SKIP_TAGSTART (integer)

XML_OPTION_SKIP_WHITE (integer)

Event Handlers

The XML event handlers defined are:

Tabelle 1. Supported XML handlers

PHP function to set handler | Event description
xml_set_element_handler() | Element events are issued whenever the XML parser encounters start or end tags. There are separate handlers for start tags and end tags.
xml_set_character_data_handler() | Character data is roughly all the non-markup contents of XML documents, including whitespace between tags. Note that the XML parser does not add or remove any whitespace, it is up to the application (you) to decide whether whitespace is significant.
xml_set_processing_instruction_handler() | PHP programmers should be familiar with processing instructions (PIs) already. <?php ?> is a processing instruction, where php is called the "PI target". The handling of these are application-specific, except that all PI targets starting with "XML" are reserved.
xml_set_default_handler() | What goes not to another handler goes to the default handler. You will get things like the XML and document type declarations in the default handler.
xml_set_unparsed_entity_decl_handler() | This handler will be called for declaration of an unparsed (NDATA) entity.
xml_set_notation_decl_handler() | This handler is called for declaration of a notation.
xml_set_external_entity_ref_handler() | This handler is called when the XML parser finds a reference to an external parsed general entity. This can be a reference to a file or URL, for example. See the external entity example for a demonstration.

Case Folding

The element handler functions may get their element names case-folded. Case-folding is defined by the XML standard as "a process applied to a sequence of characters, in which those identified as non-uppercase are replaced by their uppercase equivalents". In other words, when it comes to XML, case-folding simply means uppercasing.

By default, all the element names that are passed to the handler functions are case-folded. This behaviour can be queried and controlled per XML parser with the xml_parser_get_option() and xml_parser_set_option() functions, respectively.

Error Codes

The following constants are defined for XML error codes (as returned by xml_parse()):

XML_ERROR_NONE
XML_ERROR_NO_MEMORY
XML_ERROR_SYNTAX
XML_ERROR_NO_ELEMENTS
XML_ERROR_INVALID_TOKEN
XML_ERROR_UNCLOSED_TOKEN
XML_ERROR_PARTIAL_CHAR
XML_ERROR_TAG_MISMATCH
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
XML_ERROR_PARAM_ENTITY_REF
XML_ERROR_UNDEFINED_ENTITY
XML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_ASYNC_ENTITY
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_UNKNOWN_ENCODING
XML_ERROR_INCORRECT_ENCODING
XML_ERROR_UNCLOSED_CDATA_SECTION
XML_ERROR_EXTERNAL_ENTITY_HANDLING

Character Encoding

PHP's XML extension supports the Unicode character set through different character encodings. There are two types of character encodings, source encoding and target encoding. PHP's internal representation of the document is always encoded with UTF-8.

Source encoding is done when an XML document is parsed. Upon creating an XML parser, a source encoding can be specified (this encoding can not be changed later in the XML parser's lifetime). The supported source encodings are ISO-8859-1, US-ASCII and UTF-8. The former two are single-byte encodings, which means that each character is represented by a single byte. UTF-8 can encode characters composed by a variable number of bits (up to 21) in one to four bytes. The default source encoding used by PHP is ISO-8859-1.

Target encoding is done when PHP passes data to XML handler functions. When an XML parser is created, the target encoding is set to the same as the source encoding, but this may be changed at any point. The target encoding will affect character data as well as tag names and processing instruction targets.

If the XML parser encounters characters outside the range that its source encoding is capable of representing, it will return an error.

If PHP encounters characters in the parsed XML document that can not be represented in the chosen target encoding, the problem characters will be "demoted". Currently, this means that such characters are replaced by a question mark.

Beispiele

Here are some example PHP scripts parsing XML documents.

XML Element Structure Example

This first example displays the structure of the start elements in a document with indentation.

Beispiel 1. Show XML Element Structure

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name)
{
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

XML Tag Mapping Example

Beispiel 2. Map XML to HTML

This example maps tags in an XML document directly to HTML tags. Elements not found in the "map array" are ignored. Of course, this example will only work with a specific XML document type.

<?php
$file = "data.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "<$map_array[$name]>";
    }
}

function endElement($parser, $name)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "</$map_array[$name]>";
    }
}

function characterData($parser, $data)
{
    echo $data;
}

$xml_parser = xml_parser_create();
// use case-folding so we are sure to find the tag in $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

XML External Entity Example

This example highlights XML code. It illustrates how to use an external entity reference handler to include and parse other documents, as well as how PIs can be processed, and a way of determining "trust" for PIs containing code.

XML documents that can be used for this example are found below the example (xmltest.xml and xmltest2.xml.)

Beispiel 3. External Entity Example

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
    // only trust local files owned by ourselves
    if (!eregi("^([a-z]+)://", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}

function startElement($parser, $name, $attribs)
{
    echo "&lt;<font color=\"#0000cc\">$name</font>";
    if (sizeof($attribs)) {
        while (list($k, $v) = each($attribs)) {
            echo " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    echo "&gt;";
}

function endElement($parser, $name)
{
    echo "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data)
{
    echo "<b>$data</b>";
}

function PIHandler($parser, $target, $data)
{
    switch (strtolower($target)) {
        case "php":
            global $parser_file;
            // If the parsed document is "trusted", we say it is safe
            // to execute PHP code inside it.  If not, display the code
            // instead.
            if (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Untrusted PHP code: <i>%s</i>",
                        htmlspecialchars($data));
            }
            break;
    }
}

function defaultHandler($parser, $data)
{
    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
        printf('<font color="#aa00aa">%s</font>',
                htmlspecialchars($data));
    } else {
        printf('<font size="-1">%s</font>',
                htmlspecialchars($data));
    }
}

function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
                                  $publicId) {
    if ($systemId) {
        if (!list($parser, $fp) = new_xml_parser($systemId)) {
            printf("Could not open entity %s at %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("XML error: %s at line %d while parsing entity %s\n",
                       xml_error_string(xml_get_error_code($parser)),
                       xml_get_current_line_number($parser), $openEntityNames);
                xml_parser_free($parser);
                return false;
            }
        }
        xml_parser_free($parser);
        return true;
    }
    return false;
}

function new_xml_parser($file)
{
    global $parser_file;

    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_default_handler($xml_parser, "defaultHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}

if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
    die("could not open XML input");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
echo "</pre>";
echo "parse complete\n";
xml_parser_free($xml_parser);

?>

Beispiel 4. xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Title &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <section id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php echo 'Hi!  This is PHP version ' . phpversion(); ?>
  </para>
 </section>
</chapter>

This file is included from xmltest.xml:

Beispiel 5. xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "This is some more PHP code being executed."; ?>
</foo>

Inhaltsverzeichnis
utf8_decode -- Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1.
utf8_encode -- Encodes an ISO-8859-1 string to UTF-8
xml_error_string -- Get XML parser error string
xml_get_current_byte_index -- Get current byte index for an XML parser
xml_get_current_column_number -- Get current column number for an XML parser
xml_get_current_line_number -- Get current line number for an XML parser
xml_get_error_code -- Get XML parser error code
xml_parse_into_struct -- Parse XML data into an array structure
xml_parse -- Start parsing an XML document
xml_parser_create_ns -- Create an XML parser with namespace support
xml_parser_create -- Create an XML parser
xml_parser_free -- Free an XML parser
xml_parser_get_option -- Get options from an XML parser
xml_parser_set_option -- Set options in an XML parser
xml_set_character_data_handler -- Set up character data handler
xml_set_default_handler -- Set up default handler
xml_set_element_handler -- Set up start and end element handlers
xml_set_end_namespace_decl_handler -- Set up end namespace declaration handler
xml_set_external_entity_ref_handler -- Set up external entity reference handler
xml_set_notation_decl_handler -- Set up notation declaration handler
xml_set_object -- Use XML Parser within an object
xml_set_processing_instruction_handler -- Set up processing instruction (PI) handler
xml_set_start_namespace_decl_handler -- Set up start namespace declaration handler
xml_set_unparsed_entity_decl_handler -- Set up unparsed entity declaration handler

Zurück | Zum Anfang | Nach vorne
wddx_serialize_vars | Nach oben | utf8_decode


utf8_decode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

utf8_decode -- Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1.

Description

string utf8_decode ( string data)

This function decodes data, assumed to be UTF-8 encoded, to ISO-8859-1.

See also utf8_encode() for an explanation of UTF-8 encoding.

Zurück | Zum Anfang | Nach vorne
XML Parser Functions | Nach oben | utf8_encode


utf8_encode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

utf8_encode -- Encodes an ISO-8859-1 string to UTF-8

Description

string utf8_encode ( string data)

This function encodes the string data to UTF-8, and returns the encoded version. UTF-8 is a standard mechanism used by Unicode for encoding wide character values into a byte stream. UTF-8 is transparent to plain ASCII characters, is self-synchronized (meaning it is possible for a program to figure out where in the bytestream characters start) and can be used with normal string comparison functions for sorting and such. PHP encodes UTF-8 characters in up to four bytes, like this:

Tabelle 1. UTF-8 encoding

bytes | bits | representation
1 | 7 | 0bbbbbbb
2 | 11 | 110bbbbb 10bbbbbb
3 | 16 | 1110bbbb 10bbbbbb 10bbbbbb
4 | 21 | 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
Each b represents a bit that can be used to store character data.

Zurück | Zum Anfang | Nach vorne
utf8_decode | Nach oben | xml_error_string


xml_error_string

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_error_string -- Get XML parser error string

Description

string xml_error_string ( int code)

code

An error code from xml_get_error_code().

Returns a string with a textual description of the error code, or FALSE if no description was found.

Zurück | Zum Anfang | Nach vorne
utf8_encode | Nach oben | xml_get_current_byte_index


xml_get_current_byte_index

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_current_byte_index -- Get current byte index for an XML parser

Description

int xml_get_current_byte_index ( resource parser)

parser

A reference to the XML parser to get byte index from.

This function returns FALSE if parser does not refer to a valid parser, or else it returns which byte index the parser is currently at in its data buffer (starting at 0).

Zurück | Zum Anfang | Nach vorne
xml_error_string | Nach oben | xml_get_current_column_number


xml_get_current_column_number

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_current_column_number -- Get current column number for an XML parser

Description

int xml_get_current_column_number ( resource parser)

parser

A reference to the XML parser to get column number from.

This function returns FALSE if parser does not refer to a valid parser, or else it returns which column on the current line (as given by xml_get_current_line_number()) the parser is currently at.

Zurück | Zum Anfang | Nach vorne
xml_get_current_byte_index | Nach oben | xml_get_current_line_number


xml_get_current_line_number

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_current_line_number -- Get current line number for an XML parser

Description

int xml_get_current_line_number ( resource parser)

parser

A reference to the XML parser to get line number from.

This function returns FALSE if parser does not refer to a valid parser, or else it returns which line the parser is currently at in its data buffer.

Zurück | Zum Anfang | Nach vorne
xml_get_current_column_number | Nach oben | xml_get_error_code


xml_get_error_code

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_error_code -- Get XML parser error code

Description

int xml_get_error_code ( resource parser)

parser

A reference to the XML parser to get error code from.

This function returns FALSE if parser does not refer to a valid parser, or else it returns one of the error codes listed in the error codes section.

See also xml_error_string().

Zurück | Zum Anfang | Nach vorne
xml_get_current_line_number | Nach oben | xml_parse_into_struct


xml_parse_into_struct

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

xml_parse_into_struct -- Parse XML data into an array structure

Description

int xml_parse_into_struct ( resource parser, string data, array &values [, array &index])

This function parses an XML file into 2 parallel array structures, one (index) containing pointers to the location of the appropriate values in the values array. These last two parameters must be passed by reference.

Below is an example that illustrates the internal structure of the arrays being generated by the function. We use a simple note tag embedded inside a para tag, and then we parse this and print out the structures generated:

Beispiel 1. xml_parse_into_struct() example

<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
?>

When we run that code, the output will be:

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

Event-driven parsing (based on the expat library) can get complicated when you have an XML document that is complex. This function does not produce a DOM style object, but it generates structures amenable of being transversed in a tree fashion. Thus, we can create objects representing the data in the XML file easily. Let's consider the following XML file representing a small database of aminoacids information:

Beispiel 2. moldb.xml - small database of molecular information

<?xml version="1.0"?>
<moldb>

    <molecule>
        <name>Alanine</name>
        <symbol>ala</symbol>
        <code>A</code>
        <type>hydrophobic</type>
    </molecule>

    <molecule>
        <name>Lysine</name>
        <symbol>lys</symbol>
        <code>K</code>
        <type>charged</type>
    </molecule>

</moldb>
And some code to parse the document and generate the appropriate objects:

Beispiel 3. parsemoldb.php - parses moldb.xml into an array of molecular objects

<?php

class AminoAcid {
    var $name;  // aa name
    var $symbol;    // three letter symbol
    var $code;  // one letter code
    var $type;  // hydrophobic, charged or neutral

    function AminoAcid ($aa)
    {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename)
{
    // read the XML database of aminoacids
    $data = implode("", file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $values, $tags);
    xml_parser_free($parser);

    // loop through the structures
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // each contiguous pair of array entries are the
            // lower and upper range for each molecule definition
            for ($i=0; $i < count($molranges); $i+=2) {
                    $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues)
{
    for ($i=0; $i < count($mvalues); $i++) {
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    }
    return new AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo "** Database of AminoAcid objects:\n";
print_r($db);

?>
After executing parsemoldb.php, the variable $db contains an array of AminoAcid objects, and the output of the script confirms that:

** Database of AminoAcid objects:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)

Zurück | Zum Anfang | Nach vorne
xml_get_error_code | Nach oben | xml_parse


xml_parse

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parse -- Start parsing an XML document

Description

bool xml_parse ( resource parser, string data [, bool is_final])

parser

A reference to the XML parser to use.

data

Chunk of data to parse. A document may be parsed piece-wise by calling xml_parse() several times with new data, as long as the is_final parameter is set and TRUE when the last data is parsed.

is_final (optional)

If set and TRUE, data is the last piece of data sent in this parse.

When the XML document is parsed, the handlers for the configured events are called as many times as necessary, after which this function returns TRUE or FALSE.

TRUE is returned if the parse was successful, FALSE if it was not
successful, or if parser does not refer to
a valid parser.  For unsuccessful parses, error information can
be retrieved with xml_get_error_code(),
xml_error_string(),
xml_get_current_line_number(),
xml_get_current_column_number() and
xml_get_current_byte_index().

Zurück | Zum Anfang | Nach vorne
xml_parse_into_struct | Nach oben | xml_parser_create_ns


xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5)

xml_parser_create_ns -- Create an XML parser with namespace support

Description

resource xml_parser_create_ns ( [string encoding [, string separator]])

xml_parser_create_ns() creates a new XML parser with XML namespace support and returns a resource handle referencing it to be used by the other XML functions.

With a namespace aware parser tag parameters passed to the various handler functions will consist of namespace and tag name separated by the string specified in seperator or ':' by default.

The optional encoding specifies the character encoding of the XML input to be parsed. Supported encodings are "ISO-8859-1", which is also the default if no encoding is specified, "UTF-8" and "US-ASCII".

See also xml_parser_create(), and xml_parser_free().

Zurück | Zum Anfang | Nach vorne
xml_parse | Nach oben | xml_parser_create


xml_parser_create

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_create -- Create an XML parser

Description

resource xml_parser_create ( [string encoding])

xml_parser_create() creates a new XML parser and returns a resource handle referencing it to be used by the other XML functions.

The optional encoding specifies the character encoding of the XML input to be parsed. Supported encodings are "ISO-8859-1", which is also the default if no encoding is specified, "UTF-8" and "US-ASCII".

See also xml_parser_create_ns() and xml_parser_free().

Zurück | Zum Anfang | Nach vorne
xml_parser_create_ns | Nach oben | xml_parser_free


xml_parser_free

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_free -- Free an XML parser

Description

bool xml_parser_free ( resource parser)

parser

A reference to the XML parser to free.

This function returns FALSE if parser does not refer to a valid parser, or else it frees the parser and returns TRUE.

Zurück | Zum Anfang | Nach vorne
xml_parser_create | Nach oben | xml_parser_get_option


xml_parser_get_option

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_get_option -- Get options from an XML parser

Description

mixed xml_parser_get_option ( resource parser, int option)

parser

A reference to the XML parser to get an option from.

option

Which option to fetch. See xml_parser_set_option() for a list of options.

This function returns FALSE if parser does not refer to a valid parser, or if the option could not be set. Else the option's value is returned.

See xml_parser_set_option() for the list of options.

Zurück | Zum Anfang | Nach vorne
xml_parser_free | Nach oben | xml_parser_set_option


xml_parser_set_option

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_set_option -- Set options in an XML parser

Description

bool xml_parser_set_option ( resource parser, int option, mixed value)

parser

A reference to the XML parser to set an option in.

option

Which option to set. See below.

value

The option's new value.

This function returns FALSE if parser does not refer to a valid parser, or if the option could not be set. Else the option is set and TRUE is returned.

The following options are available:

Tabelle 1. XML parser options

Option constant | Data type | Description
XML_OPTION_CASE_FOLDING | integer | Controls whether case-folding is enabled for this XML parser. Enabled by default.
XML_OPTION_TARGET_ENCODING | string | Sets which target encoding to use in this XML parser. By default, it is set to the same as the source encoding used by xml_parser_create(). Supported target encodings are ISO-8859-1, US-ASCII and UTF-8.

Zurück | Zum Anfang | Nach vorne
xml_parser_get_option | Nach oben | xml_set_character_data_handler


xml_set_character_data_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_character_data_handler -- Set up character data handler

Description

bool xml_set_character_data_handler ( resource parser, callback handler)

Sets the character data handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept two parameters: handler ( resource parser, string data)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

data

The second parameter, data, contains the character data as a string.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Zurück | Zum Anfang | Nach vorne
xml_parser_set_option | Nach oben | xml_set_default_handler


xml_set_default_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_default_handler -- Set up default handler

Description

bool xml_set_default_handler ( resource parser, callback handler)

Sets the default handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept two parameters: handler ( resource parser, string data)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

data

The second parameter, data, contains the character data. This may be the XML declaration, document type declaration, entities or other data for which no other handler exists.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Zurück | Zum Anfang | Nach vorne
xml_set_character_data_handler | Nach oben | xml_set_element_handler


xml_set_element_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_element_handler -- Set up start and end element handlers

Description

bool xml_set_element_handler ( resource parser, callback start_element_handler, callback end_element_handler)

Sets the element handler functions for the XML parser parser. start_element_handler and end_element_handler are strings containing the names of functions that must exist when xml_parse() is called for parser.

The function named by start_element_handler must accept three parameters: start_element_handler ( resource parser, string name, array attribs)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

name

The second parameter, name, contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters.

attribs

The third parameter, attribs, contains an associative array with the element's attributes (if any). The keys of this array are the attribute names, the values are the attribute values. Attribute names are case-folded on the same criteria as element names. Attribute values are not case-folded.

The original order of the attributes can be retrieved by walking through attribs the normal way, using each(). The first key in the array was the first attribute, and so on.

The function named by end_element_handler must accept two parameters: end_element_handler ( resource parser, string name)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

name

The second parameter, name, contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handlers are set up, FALSE if parser is not a parser.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Zurück | Zum Anfang | Nach vorne
xml_set_default_handler | Nach oben | xml_set_end_namespace_decl_handler


xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_end_namespace_decl_handler -- Set up end namespace declaration handler

Description

bool xml_set_end_namespace_decl_handler ( resource parser, callback handler)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Zurück | Zum Anfang | Nach vorne
xml_set_element_handler | Nach oben | xml_set_external_entity_ref_handler


xml_set_external_entity_ref_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_external_entity_ref_handler -- Set up external entity reference handler

Description

bool xml_set_external_entity_ref_handler ( resource parser, callback handler)

Sets the external entity reference handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept five parameters, and should return an integer value. If the value returned from the handler is FALSE (which it will be if no value is returned), the XML parser will stop parsing and xml_get_error_code() will return XML_ERROR_EXTERNAL_ENTITY_HANDLING. handler ( resource parser, string open_entity_names, string base, string system_id, string public_id)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

open_entity_names

The second parameter, open_entity_names, is a space-separated list of the names of the entities that are open for the parse of this entity (including the name of the referenced entity).

base

This is the base for resolving the system identifier (system_id) of the external entity. Currently this parameter will always be set to an empty string.

system_id

The fourth parameter, system_id, is the system identifier as specified in the entity declaration.

public_id

The fifth parameter, public_id, is the public identifier as specified in the entity declaration, or an empty string if none was specified; the whitespace in the public identifier will have been normalized as required by the XML spec.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Zurück | Zum Anfang | Nach vorne
xml_set_end_namespace_decl_handler | Nach oben | xml_set_notation_decl_handler


xml_set_notation_decl_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_notation_decl_handler -- Set up notation declaration handler

Description

bool xml_set_notation_decl_handler ( resource parser, callback handler)

Sets the notation declaration handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

A notation declaration is part of the document's DTD and has the following format:
<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
See section 4.7 of the XML 1.0 spec for the definition of notation declarations.

The function named by handler must accept five parameters: handler ( resource parser, string notation_name, string base, string system_id, string public_id)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

notation_name

This is the notation's name, as per the notation format described above.

base

This is the base for resolving the system identifier (system_id) of the notation declaration. Currently this parameter will always be set to an empty string.

system_id

System identifier of the external notation declaration.

public_id

Public identifier of the external notation declaration.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Zurück | Zum Anfang | Nach vorne
xml_set_external_entity_ref_handler | Nach oben | xml_set_object


xml_set_object

(PHP 4 , PHP 5)

xml_set_object -- Use XML Parser within an object

Description

void xml_set_object ( resource parser, object object)

This function allows to use parser inside object. All callback functions could be set with xml_set_element_handler() etc and assumed to be methods of object.

Beispiel 1. xml_set_object() example

<?php
class xml  {
    var $parser;

    function xml()
    {
        $this->parser = xml_parser_create();

        xml_set_object($this->parser, $this);
        xml_set_element_handler($this->parser, "tag_open", "tag_close");
        xml_set_character_data_handler($this->parser, "cdata");
    }

    function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($parser, $tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($parser, $cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($parser, $tag);
    }

} // end of class xml

$xml_parser = new xml();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

Zurück | Zum Anfang | Nach vorne
xml_set_notation_decl_handler | Nach oben | xml_set_processing_instruction_handler


xml_set_processing_instruction_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_processing_instruction_handler -- Set up processing instruction (PI) handler

Description

bool xml_set_processing_instruction_handler ( resource parser, callback handler)

Sets the processing instruction (PI) handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

A processing instruction has the following format:

<?
       target
       data?>

You can put PHP code into such a tag, but be aware of one limitation: in an XML PI, the PI end tag (?>) can not be quoted, so this character sequence should not appear in the PHP code you embed with PIs in XML documents. If it does, the rest of the PHP code, as well as the "real" PI end tag, will be treated as character data.

The function named by handler must accept three parameters: handler ( resource parser, string target, string data)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

target

The second parameter, target, contains the PI target.

data

The third parameter, data, contains the PI data.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Zurück | Zum Anfang | Nach vorne
xml_set_object | Nach oben | xml_set_start_namespace_decl_handler


xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_start_namespace_decl_handler -- Set up start namespace declaration handler

Description

bool xml_set_start_namespace_decl_handler ( resource parser, callback handler)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Zurück | Zum Anfang | Nach vorne
xml_set_processing_instruction_handler | Nach oben | xml_set_unparsed_entity_decl_handler


xml_set_unparsed_entity_decl_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_unparsed_entity_decl_handler -- Set up unparsed entity declaration handler

Description

bool xml_set_unparsed_entity_decl_handler ( resource parser, callback handler)

Sets the unparsed entity declaration handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

This handler will be called if the XML parser encounters an external entity declaration with an NDATA declaration, like the following:
<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

See section 4.2.2 of the XML 1.0 spec for the definition of notation declared external entities.

The function named by handler must accept six parameters: handler ( resource parser, string entity_name, string base, string system_id, string public_id, string notation_name)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

entity_name

The name of the entity that is about to be defined.

base

This is the base for resolving the system identifier (systemId) of the external entity. Currently this parameter will always be set to an empty string.

system_id

System identifier for the external entity.

public_id

Public identifier for the external entity.

notation_name

Name of the notation of this entity (see xml_set_notation_decl_handler()).

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Zurück | Zum Anfang | Nach vorne
xml_set_start_namespace_decl_handler | Nach oben | XML-RPC Functions


XML-RPC Functions

PHP Handbuch
Zurück Nach vorne

CXVII. XML-RPC Functions

Einführung

These functions can be used to write XML-RPC servers and clients. You can find more information about XML-RPC at http://www.xmlrpc.com/, and more documentation on this extension and its functions at http://xmlrpc-epi.sourceforge.net/.

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Anforderungen

Diese Erweiterung benötigt zur Erstellung keine externen Bibliotheken.

Installation

XML-RPC support in PHP is not enabled by default. You will need to use the --with-xmlrpc[=DIR] configuration option when compiling PHP to enable XML-RPC support. This extension is bundled into PHP as of 4.1.0.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. XML-RPC configuration options

Name | Default | Changeable
xmlrpc_errors | "0" | PHP_INI_SYSTEM
xmlrpc_error_number | "0" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
xmlrpc_decode_request -- Decodes XML into native PHP types
xmlrpc_decode -- Decodes XML into native PHP types
xmlrpc_encode_request -- Generates XML for a method request
xmlrpc_encode -- Generates XML for a PHP value
xmlrpc_get_type -- Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings
xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions
xmlrpc_server_add_introspection_data -- Adds introspection documentation
xmlrpc_server_call_method -- Parses XML requests and call methods
xmlrpc_server_create -- Creates an xmlrpc server
xmlrpc_server_destroy -- Destroys server resources
xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation
xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name
xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Zurück | Zum Anfang | Nach vorne
xml_set_unparsed_entity_decl_handler | Nach oben | xmlrpc_decode_request


xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode_request -- Decodes XML into native PHP types

Description

array xmlrpc_decode_request ( string xml, string &method [, string encoding])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
XML-RPC Functions | Nach oben | xmlrpc_decode


xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode -- Decodes XML into native PHP types

Description

array xmlrpc_decode ( string xml [, string encoding])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_decode_request | Nach oben | xmlrpc_encode_request


xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode_request -- Generates XML for a method request

Description

string xmlrpc_encode_request ( string method, mixed params)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_decode | Nach oben | xmlrpc_encode


xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode -- Generates XML for a PHP value

Description

string xmlrpc_encode ( mixed value)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_encode_request | Nach oben | xmlrpc_get_type


xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_get_type -- Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings

Description

string xmlrpc_get_type ( mixed value)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_encode | Nach oben | xmlrpc_parse_method_descriptions


xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions

Description

array xmlrpc_parse_method_descriptions ( string xml)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_get_type | Nach oben | xmlrpc_server_add_introspection_data


xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_add_introspection_data -- Adds introspection documentation

Description

int xmlrpc_server_add_introspection_data ( resource server, array desc)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_parse_method_descriptions | Nach oben | xmlrpc_server_call_method


xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_call_method -- Parses XML requests and call methods

Description

mixed xmlrpc_server_call_method ( resource server, string xml, mixed user_data [, array output_options])

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_server_add_introspection_data | Nach oben | xmlrpc_server_create


xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_create -- Creates an xmlrpc server

Description

resource xmlrpc_server_create ( void )

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_server_call_method | Nach oben | xmlrpc_server_destroy


xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_destroy -- Destroys server resources

Description

int xmlrpc_server_destroy ( resource server)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_server_create | Nach oben | xmlrpc_server_register_introspection_callback


xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation

Description

bool xmlrpc_server_register_introspection_callback ( resource server, string function)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_server_destroy | Nach oben | xmlrpc_server_register_method


xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name

Description

bool xmlrpc_server_register_method ( resource server, string method_name, string function)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_server_register_introspection_callback | Nach oben | xmlrpc_set_type


xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Description

bool xmlrpc_set_type ( string value, string type)

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xmlrpc_server_register_method | Nach oben | xdiff Functions


xdiff Functions

PHP Handbuch
Zurück Nach vorne

CXVIII. xdiff Functions

Einführung

xdiff extension creates and applies patches to both text and binary files.

Anforderungen

To use xdiff, you will need libxdiff installed, available on the libxdiff homepage http://www.xmailserver.org/xdiff-lib.html.

Installation

xdiff is currently available through PECL http://pecl.php.net/package/xdiff.

If PEAR is available on your *nix-like system you can use the pear installer to install the xdiff extension, by the following command: pear -v install xdiff.

You can always download the tar.gz package and install xdiff by hand:

Beispiel 1. xdiff install by hand

gunzip xdiff-xxx.tgz
tar -xvf xdiff-xxx.tar
cd xdiff-xxx
phpize
./configure && make && make install

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

XDIFF_PATCH_NORMAL (integer)

XDIFF_PATCH_REVERSE (integer)

Inhaltsverzeichnis
xdiff_file_diff_binary -- Make binary diff of two files.
xdiff_file_diff -- Make unified diff of two files.
xdiff_file_merge3 -- Merge 3 files into one.
xdiff_file_patch_binary -- Patch a file with a binary diff.
xdiff_file_patch -- Patch a file with an unified diff.
xdiff_string_diff_binary -- Make binary diff of two strings.
xdiff_string_diff -- Make unified diff of two strings.
xdiff_string_merge3 -- Merge 3 strings into one.
xdiff_string_patch_binary -- Patch a string with a binary diff.
xdiff_string_patch -- Patch a string with an unified diff.

Zurück | Zum Anfang | Nach vorne
xmlrpc_set_type | Nach oben | xdiff_file_diff_binary


xdiff_file_diff_binary

(no version information, might be only in CVS)

xdiff_file_diff_binary -- Make binary diff of two files.

Description

bool xdiff_file_diff_binary ( string file1, string file2, string dest)

xdiff_file_diff_binary() makes binary diff of files file1 and file2 and stores result in file dest.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also xdiff_string_diff_binary().

Zurück | Zum Anfang | Nach vorne
xdiff Functions | Nach oben | xdiff_file_diff


xdiff_file_diff

(no version information, might be only in CVS)

xdiff_file_diff -- Make unified diff of two files.

Description

bool xdiff_file_diff ( string file1, string file2, string dest [, int context [, bool minimal]])

xdiff_file_diff() makes unified diff of files file1 and file2 and stores result in file dest. context indicated how many lines of context you want to include in diff result. Set minimal to TRUE if you want to minimalize size of diff (can take a long time).

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also xdiff_string_diff().

Zurück | Zum Anfang | Nach vorne
xdiff_file_diff_binary | Nach oben | xdiff_file_merge3


xdiff_file_merge3

(no version information, might be only in CVS)

xdiff_file_merge3 -- Merge 3 files into one.

Description

mixed xdiff_file_merge3 ( string file1, string file2, string file3, string dest)

xdiff_file_merge3() merges files file1, file2 and file3 into one and stores result in file dest.

Returns TRUE if merge was successful, string with rejected chunks if it was not or FALSE if an internal error happened.

See also xdiff_string_merge3().

Zurück | Zum Anfang | Nach vorne
xdiff_file_diff | Nach oben | xdiff_file_patch_binary


xdiff_file_patch_binary

(no version information, might be only in CVS)

xdiff_file_patch_binary -- Patch a file with a binary diff.

Description

bool xdiff_file_patch_binary ( string file, string patch, string dest)

xdiff_file_patch_binary() patches file file with binary patch in file patch and stores result in file dest.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

See also xdiff_string_patch_binary().

Zurück | Zum Anfang | Nach vorne
xdiff_file_merge3 | Nach oben | xdiff_file_patch


xdiff_file_patch

(no version information, might be only in CVS)

xdiff_file_patch -- Patch a file with an unified diff.

Description

mixed xdiff_file_patch ( string file, string patch, string dest [, int flags])

xdiff_file_patch() patches file file with unified patch in file patch and stores result in file dest.

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Returns FALSE if an internal error happened, string with rejected chunks of patch or TRUE if patch has been successfully applied.

See also xdiff_string_patch().

Zurück | Zum Anfang | Nach vorne
xdiff_file_patch_binary | Nach oben | xdiff_string_diff_binary


xdiff_string_diff_binary

(no version information, might be only in CVS)

xdiff_string_diff_binary -- Make binary diff of two strings.

Description

mixed xdiff_string_diff_binary ( string str1, string str2)

xdiff_string_diff_binary() makes binary diff of strings str1 and str2.

Returns string with result or FALSE if an internal error happened.

See also xdiff_file_diff_binary().

Zurück | Zum Anfang | Nach vorne
xdiff_file_patch | Nach oben | xdiff_string_diff


xdiff_string_diff

(no version information, might be only in CVS)

xdiff_string_diff -- Make unified diff of two strings.

Description

mixed xdiff_string_diff ( string str1, string str2 [, int context [, bool minimal]])

xdiff_string_diff() makes unified diff of strings str1 and str2. context indicated how many lines of context you want to include in diff result. Set minimal to TRUE if you want to minimalize size of diff (can take a long time).

Returns string with result or FALSE if an internal error happened.

See also xdiff_file_diff().

Zurück | Zum Anfang | Nach vorne
xdiff_string_diff_binary | Nach oben | xdiff_string_merge3


xdiff_string_merge3

(no version information, might be only in CVS)

xdiff_string_merge3 -- Merge 3 strings into one.

Description

string xdiff_string_merge3 ( string str1, string str2, string str3 [, string & error])

xdiff_string_merge3() merges strings str1, str2 and str3 into one.

If error is passed then rejected parts are stored inside this variable.

Returns merged string or FALSE if an internal error happened.

See also xdiff_file_merge3().

Zurück | Zum Anfang | Nach vorne
xdiff_string_diff | Nach oben | xdiff_string_patch_binary


xdiff_string_patch_binary

(no version information, might be only in CVS)

xdiff_string_patch_binary -- Patch a string with a binary diff.

Description

string xdiff_string_patch_binary ( string str, string patch)

xdiff_string_patch_binary() patches string str with binary patch in string patch.

Returns a patched string.

See also xdiff_file_patch_binary().

Zurück | Zum Anfang | Nach vorne
xdiff_string_merge3 | Nach oben | xdiff_string_patch


xdiff_string_patch

(no version information, might be only in CVS)

xdiff_string_patch -- Patch a string with an unified diff.

Description

string xdiff_string_patch ( string str, string patch [, int flags [, string & error]])

xdiff_string_patch() patches string str with unified patch in string patch.

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

If error is passed then rejected parts are stored inside this variable.

Returns a patched string.

See also xdiff_file_patch().

Zurück | Zum Anfang | Nach vorne
xdiff_string_patch_binary | Nach oben | XSL functions


XSL functions

PHP Handbuch
Zurück Nach vorne

CXIX. XSL functions

Einführung

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

The XSL extension implements the XSL standard, performing XSLT transformations using the libxslt library.

Installation

PHP 5 includes the XSL extension by default and it can be enabled by adding the argument --with-xsl[=DIR] to your configure line. DIR is the libxslt installation directory. libxslt version 1.0.18 or greater is required.

Beispiele

In this small tutorial we will learn how to transform an XML document into HTML.

Beispiel 1. A simple XSL tree

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to my sweet CD collection!
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/></h2>
  <h3> - <xsl:value-of select="year"/></h3>
 </xsl:template>
</xsl:stylesheet>

Beispiel 2. Corresponding XML tree

<collection>
 <cd>
  <title>PHP Rock</title>
  <artist>Joe Coder</artist>
  <year>2003</year>
 </cd>
 <cd>
  <title>Squashing Typos on a Winter's Eve</title>
  <artist>kennyt</artist>
  <year>2004</year>
 </cd>
</collection>

Beispiel 3. Making XML into HTML

The following PHP code uses the XML and XSL extensions to transform XML into presentable HTML.

<?php
/* Load the two XML sources */
$xml = new DomDocument; // from /ext/dom
$xml->load('example.xml');

$xsl = new DomDocument;
$xsl->load('example.xsl');

/* Configure the transformer */
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl); // attach the xsl rules
echo $proc->transformToXML($xml); // actual transformation
?>

This should produce an HTML fragment similar to the following:

Hey! Welcome to my sweet CD collection!

<h1>PHP Rock</h1>
<h2>by Joe Coder</h2>
<h3> - 2003</h3>

<h1>Squashing Typos on a Winter's Eve</h1>
<h2> by kennyt</h2>
<h3> - 2004</h3>

Inhaltsverzeichnis
xsl_xsltprocessor_get_parameter --
xsl_xsltprocessor_has_exslt_support -- Determine if PHP has EXSLT support
xsl_xsltprocessor_import_stylesheet --
xsl_xsltprocessor_register_php_functions -- Enables the ability to use PHP functions as XSLT functions
xsl_xsltprocessor_remove_parameter --
xsl_xsltprocessor_set_parameter --
xsl_xsltprocessor_transform_to_doc --
xsl_xsltprocessor_transform_to_uri --
xsl_xsltprocessor_transform_to_xml --

Zurück | Zum Anfang | Nach vorne
xdiff_string_patch | Nach oben | xsl_xsltprocessor_get_parameter


xsl_xsltprocessor_get_parameter

(no version information, might be only in CVS)

xsl_xsltprocessor_get_parameter --

Description

Procedural style

bool xsl_xsltprocessor_get_parameter ( string namespace, string name)

Object oriented style (method)

class xsltprocessor {

xsl_xsltdocucument getParameter ( string namespace, string name)

}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
XSL functions | Nach oben | xsl_xsltprocessor_has_exslt_support


xsl_xsltprocessor_has_exslt_support

(no version information, might be only in CVS)

xsl_xsltprocessor_has_exslt_support -- Determine if PHP has EXSLT support

Description

Procedural style

bool xsl_xsltprocessor_has_exslt_support ( void )

Object oriented style (method)

class xsltprocessor {

bool hasExsltSupport ( void )

}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

xsl_xsltprocessor_has_exslt_support() returns TRUE if PHP was built with the EXSLT library , FALSE otherwise.

Zurück | Zum Anfang | Nach vorne
xsl_xsltprocessor_get_parameter | Nach oben | xsl_xsltprocessor_import_stylesheet


xsl_xsltprocessor_import_stylesheet

(no version information, might be only in CVS)

xsl_xsltprocessor_import_stylesheet --

Description

Procedural style

bool xsl_xsltprocessor_import_stylesheet ( node index)

Object oriented style (method)

class xsltprocessor {

bool importStylesheet ( node index)

}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xsl_xsltprocessor_has_exslt_support | Nach oben | xsl_xsltprocessor_register_php_functions


xsl_xsltprocessor_register_php_functions

(no version information, might be only in CVS)

xsl_xsltprocessor_register_php_functions -- Enables the ability to use PHP functions as XSLT functions

Description

Procedural style

void xsl_xsltprocessor_register_php_functions ( void )

Object oriented style (method)

class xsltprocessor {

void registerPHPFunctions ( void )

}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

xsl_xsltprocessor_register_php_functions() enables the ability to use PHP functions as XSLT functions within XSL stylesheets.

Zurück | Zum Anfang | Nach vorne
xsl_xsltprocessor_import_stylesheet | Nach oben | xsl_xsltprocessor_remove_parameter


xsl_xsltprocessor_remove_parameter

(no version information, might be only in CVS)

xsl_xsltprocessor_remove_parameter --

Description

Procedural style

bool xsl_xsltprocessor_remove_parameter ( string namespace, string name)

Object oriented style (method)

class xsltprocessor {

bool removeParameter ( string namespace, string name)

}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xsl_xsltprocessor_register_php_functions | Nach oben | xsl_xsltprocessor_set_parameter


xsl_xsltprocessor_set_parameter

(no version information, might be only in CVS)

xsl_xsltprocessor_set_parameter --

Description

Procedural style

bool xsl_xsltprocessor_set_parameter ( string namespace, string name, string value)

Object oriented style (method)

class xsltprocessor {

bool setParameter ( string namespace, string name, string value)

}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xsl_xsltprocessor_remove_parameter | Nach oben | xsl_xsltprocessor_transform_to_doc


xsl_xsltprocessor_transform_to_doc

(no version information, might be only in CVS)

xsl_xsltprocessor_transform_to_doc --

Description

Procedural style

bool >xsl_xsltprocessor_transform_to_doc ( node doc [, bool clone])

Object oriented style (method)

class xsltprocessor {

bool transformToDoc ( node doc [, bool clone])

}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xsl_xsltprocessor_set_parameter | Nach oben | xsl_xsltprocessor_transform_to_uri


xsl_xsltprocessor_transform_to_uri

(no version information, might be only in CVS)

xsl_xsltprocessor_transform_to_uri --

Description

Procedural style

bool xsl_xsltprocessor_transform_to_uri ( node doc, string uri [, bool clone])

Object oriented style (method)

class xsltprocessor {

bool transformToUri ( node doc, string uri [, bool clone])

}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xsl_xsltprocessor_transform_to_doc | Nach oben | xsl_xsltprocessor_transform_to_xml


xsl_xsltprocessor_transform_to_xml

(no version information, might be only in CVS)

xsl_xsltprocessor_transform_to_xml --

Description

Procedural style

bool xsl_xsltprocessor_transform_to_xml ( node doc [, bool clone])

Object oriented style (method)

class xsltprocessor {

bool transformToXml ( node doc [, bool clone])

}

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xsl_xsltprocessor_transform_to_uri | Nach oben | XSLT Funktionen


XSLT Funktionen

PHP Handbuch
Zurück Nach vorne

CXX. XSLT Funktionen

Einführung

Diese PHP Erweiterung stellt eine parserunabhängige API für XSLT-Transformationen zur Verfügung. Momentan unterstützt diese Erweiterung allein die Sablotron Bibliothek von der Ginger Alliance. Die Unterstützung von anderen Bibliotheken wie der Xalan Bibliothek oder der libxslt ist in Planung.

XSLT (Extensible Stylesheet Language (XSL) Transformations) ist eine Sprache zur Transformation von XML Dokumenten in andere XML Dokumente. XLST ist als Standard vom World Wide Web (W3C) Konsortium definiert worden. Informationen zu XSLT und diesbezüglichen Technologien können unter http://www.w3.org/TR/xslt gefunden werden.

Anmerkung: Diese Erweiterung ist anders als die Sablotron Erweiterung wie bei PHP 4.1 und früher, momentan wird nur die neue XSLT Erweiterung in PHP 4.1 unterstützt. Falls Sie Hilfe zur alten Erweiterung brauchen, fragen sie bitte in der PHP Mailliste nach.

Anforderungen

Die Erweiterung benutzt Sablotron und expat, beides kann unter http://www.gingerall.com/ gefunden werden. Binäre Dateien werden genauso wie der Quellcode zur Verfügung gestellt.

Installation

Unter UNIX muss man configure mit den Optionen --enable-xslt --with-xslt-sablot ausführen. Die Sablotron Bibliothek sollte irgendwo installiert sein wo sie der Compiler finden kann.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Inhaltsverzeichnis
xslt_create -- Erzeugt einen neuen XSLT-Prozessor.
xslt_errno -- Gibt die aktuelle Fehlernummer zurück
xslt_error -- Gibt den aktuellen Fehlerstring zurück.
xslt_free -- Freigabe eines XSLT Prozessors
xslt_output_process -- unknown
xslt_set_base -- Set the base URI for all XSLT transformations
xslt_set_encoding -- Set the encoding for the parsing of XML documents
xslt_set_error_handler -- Set an error handler for a XSLT processor
xslt_set_log -- Set the log file to write log messages to
xslt_set_sax_handler -- Setzen des SAX handlers für einen XSLT-Prozessor
xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed
xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor
xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor

Zurück | Zum Anfang | Nach vorne
xsl_xsltprocessor_transform_to_xml | Nach oben | xslt_create


xslt_create

(PHP 4 >= 4.0.3)

xslt_create -- Erzeugt einen neuen XSLT-Prozessor.

Beschreibung

resource xslt_create ( void )

Die Funktion gibt ein Handle zum erzeugten XSLT-Prozessors zurück. Dieses Handle wird für alle folgenden Aufrufe von XSLT-Funktionen verwendet.

Zurück | Zum Anfang | Nach vorne
XSLT Funktionen | Nach oben | xslt_errno


xslt_errno

(PHP 4 >= 4.0.3)

xslt_errno -- Gibt die aktuelle Fehlernummer zurück

Beschreibung

int xslt_errno ( [int xh])

Gibt die aktuelle Fehlernummer zu einem gegebenen XSLT-Prozessor zurück. Ist kein Handle xh gegeben, so wird die Fehlernummer des zuletzt aufgetretenen Fehlers zurückgegeben.

Zurück | Zum Anfang | Nach vorne
xslt_create | Nach oben | xslt_error


xslt_error

(PHP 4 >= 4.0.3)

xslt_error -- Gibt den aktuellen Fehlerstring zurück.

Beschreibung

mixed xslt_error ( [int xh])

Gibt den aktuellen Fehlerstring zu einem gegebenen XSLT-Prozessor zurück. Ist kein Handle xh gegeben, so wird der Fehlerstring des zuletzt aufgetretenen Fehlers zurückgegeben.

Zurück | Zum Anfang | Nach vorne
xslt_errno | Nach oben | xslt_free


xslt_free

(PHP 4 >= 4.0.3)

xslt_free -- Freigabe eines XSLT Prozessors

Beschreibung

void xslt_free ( resource xh)

Der mit xh bezeichnete XSLT-Prozessor wird freigegeben.

Zurück | Zum Anfang | Nach vorne
xslt_error | Nach oben | xslt_output_process


xslt_output_process

(no version information, might be only in CVS)

xslt_output_process -- unknown

Beschreibung

unknown xslt_process ( unknown)

Zu dieser Funktion sind keine Prototyp Definitionen vorhanden.

Zurück | Zum Anfang | Nach vorne
xslt_free | Nach oben | xslt_set_base


xslt_set_base

(PHP 4 >= 4.0.5)

xslt_set_base -- Set the base URI for all XSLT transformations

Description

void xslt_set_base ( resource xh, string uri)

Sets the base URI for all XSLT transformations, the base URI is used with Xpath instructions to resolve document() and other commands which access external resources. It is also used to resolve URIs for the <xsl:include> and <xsl:import> elements.

As of 4.3, the default base URI is the directory of the executing script. In effect, it is the directory name value of the __FILE__ constant. Prior to 4.3, the default base URI was less predictable.

Anmerkung: Please note that file:// is needed in front of path if you use Windows.

Zurück | Zum Anfang | Nach vorne
xslt_output_process | Nach oben | xslt_set_encoding


xslt_set_encoding

(PHP 4 >= 4.0.5)

xslt_set_encoding -- Set the encoding for the parsing of XML documents

Description

void xslt_set_encoding ( resource xh, string encoding)

Set the output encoding for the XSLT transformations. When using the Sablotron backend this option is only available when you compile Sablotron with encoding support.

Zurück | Zum Anfang | Nach vorne
xslt_set_base | Nach oben | xslt_set_error_handler


xslt_set_error_handler

(PHP 4 >= 4.0.4)

xslt_set_error_handler -- Set an error handler for a XSLT processor

Description

void xslt_set_error_handler ( resource xh, mixed handler)

Set an error handler function for the XSLT processor given by xh, this function will be called whenever an error occurs in the XSLT transformation (this function is also called for notices).

Zurück | Zum Anfang | Nach vorne
xslt_set_encoding | Nach oben | xslt_set_log


xslt_set_log

(PHP 4 >= 4.0.6)

xslt_set_log -- Set the log file to write log messages to

Description

void xslt_set_log ( resource xh, mixed log)

xh

A reference to the XSLT parser.

log

This parameter is either a boolean value which toggles logging on and off, or a string containing the logfile in which log errors too.

This function allows you to set the file in which you want XSLT log messages to, XSLT log messages are different than error messages, in that log messages are not actually error messages but rather messages related to the state of the XSLT processor. They are useful for debugging XSLT, when something goes wrong.

By default logging is disabled, in order to enable logging you must first call xslt_set_log() with a boolean parameter which enables logging, then if you want to set the log file to debug to, you must then pass it a string containing the filename:

Beispiel 1. Using the XSLT Logging features

<?php

$xh = xslt_create();
xslt_set_log($xh, true);
xslt_set_log($xh, getcwd() . '/myfile.log');

$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
echo $result;

xslt_free($xh);
?>

Anmerkung: Please note that file:// is needed in front of path if you use Windows.

Zurück | Zum Anfang | Nach vorne
xslt_set_error_handler | Nach oben | xslt_set_sax_handler


xslt_set_sax_handler

(4.0.3 - 4.0.6 only)

xslt_set_sax_handler -- Setzen des SAX handlers für einen XSLT-Prozessor

Beschreibung

bool xslt_set_sax_handler ( resource xh, array handlers)

Setzen des SAX handlers für einen XSLT Prozessor, welcher durch das Handle xh identifiziert wird.

Zurück | Zum Anfang | Nach vorne
xslt_set_log | Nach oben | xslt_set_sax_handlers


xslt_set_sax_handlers

(PHP 4 >= 4.0.6)

xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed

Description

void xslt_set_sax_handlers ( resource processor, array handlers)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xslt_set_sax_handler | Nach oben | xslt_set_scheme_handler


xslt_set_scheme_handler

(4.0.5 - 4.0.6 only)

xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor

Description

void xslt_set_scheme_handler ( resource xh, array handlers)

Set Scheme handlers on the resource handle given by xh. Scheme handlers should be an array with the format (all elements are optional):

array(
[get_all] => get all handler,
[open] => open handler,
[get] => get handler,
[put] => put handler,
[close] => close handler
)

Zurück | Zum Anfang | Nach vorne
xslt_set_sax_handlers | Nach oben | xslt_set_scheme_handlers


xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor

Description

void xslt_set_scheme_handlers ( resource processor, array handlers)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
xslt_set_scheme_handler | Nach oben | YAZ Functions


YAZ Functions

PHP Handbuch
Zurück Nach vorne

CXXI. YAZ Functions

Einführung

This extension offers a PHP interface to the YAZ toolkit that implements the Z39.50 Protocol for Information Retrieval. With this extension you can easily implement a Z39.50 origin (client) that searches or scans Z39.50 targets (servers) in parallel.

The module hides most of the complexity of Z39.50 so it should be fairly easy to use. It supports persistent stateless connections very similar to those offered by the various RDB APIs that are available for PHP. This means that sessions are stateless but shared among users, thus saving the connect and initialize phase steps in most cases.

YAZ is available at http://www.indexdata.dk/yaz/. You can find news information, example scripts, etc. for this extension at http://www.indexdata.dk/phpyaz/.

Anmerkung: This extension has been removed as of PHP 5 and moved to the PECL repository.

Installation

Compile YAZ (ANSI/NISO Z39.50 support) and install it. Build PHP with your favourite modules and add option --with-yaz[=DIR]. Your task is roughly the following:

Beispiel 1. YAZ compilation

gunzip -c php-4.3.X.tar.gz|tar xf -
gunzip -c yaz-2.0.tar.gz|tar xf -
cd yaz-2.0
./configure --prefix=/usr
make
make install
cd ../php-4.3.X.
./configure --with-yaz=/usr/bin
make
make install

If you are using YAZ as a shared extension, add (or uncomment) the following line in php.ini on Unix:
extension=php_yaz.so
And for Windows:
extension=php_yaz.dll

On Windows, php_yaz.dll depend on yaz.dll. You'll find yaz.dll in sub directory dlls in the Win32 zip archive. Copy yaz.dll to a directory in your PATH environment (c:\winnt\system32 or c:\windows\system32).

Warnung

The IMAP extension cannot be used in conjuction with the recode or YAZ extensions. This is due to the fact that they both share the same internal symbol.

Anmerkung: The above problem is solved in version 2.0 of YAZ.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt.

Tabelle 1. YAZ configuration options

Name | Default | Changeable
yaz.max_links | "100" | PHP_INI_ALL
yaz.log_file | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Beispiele

PHP/YAZ keeps track of connections with targets (Z-Associations). A resource represents a connection to a target.

The script below demonstrates the parallel searching feature of the API. When invoked with no arguments it prints a query form; else (arguments are supplied) it searches the targets as given in array host.

Beispiel 2. Parallel searching using Yaz

<?php
$num_hosts = count($host);
if (empty($term) || count($host) == 0) {
    echo '<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils" />
        GILS test
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        local test
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    RPN Query:
    <input type="text" size="30" name="term" />
    <input type="submit" name="action" value="Search" />
    </form>
    ';
} else {
    echo 'You searched for ' . htmlspecialchars($term) . '<br />';
    for ($i = 0; $i < $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
        yaz_range($id[$i], 1, 10);
        yaz_search($id[$i], "rpn", $term);
    }
    yaz_wait();
    for ($i = 0; $i < $num_hosts; $i++) {
        echo '<hr />' . $host[$i] . ':';
        $error = yaz_error($id[$i]);
        if (!empty($error)) {
            echo "Error: $error";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Result Count $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i], $p, "string");
            if (empty($rec)) continue;
            echo "<dt><b>$p</b></dt><dd>";
            echo nl2br($rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
?>

Inhaltsverzeichnis
yaz_addinfo -- Returns additional error information
yaz_ccl_conf -- Configure CCL parser
yaz_ccl_parse -- Invoke CCL Parser
yaz_close -- Close YAZ connection
yaz_connect -- Prepares for a connection to a Z39.50 server.
yaz_database -- Specifies the databases within a session
yaz_element -- Specifies Element-Set Name for retrieval
yaz_errno -- Returns error number
yaz_error -- Returns error description
yaz_es_result -- Inspects Extended Services Result
yaz_get_option -- Returns value of option for connection
yaz_hits -- Returns number of hits for last search
yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package
yaz_present -- Prepares for retrieval (Z39.50 present).
yaz_range -- Specifies the maximum number of records to retrieve
yaz_record -- Returns a record
yaz_scan_result -- Returns Scan Response result
yaz_scan -- Prepares for a scan
yaz_schema -- Specifies schema for retrieval.
yaz_search -- Prepares for a search
yaz_set_option -- Sets one or more options for connection
yaz_sort -- Sets sorting criteria
yaz_syntax -- Specifies the preferred record syntax for retrieval.
yaz_wait -- Wait for Z39.50 requests to complete

Zurück | Zum Anfang | Nach vorne
xslt_set_scheme_handlers | Nach oben | yaz_addinfo


yaz_addinfo

(PHP 4 >= 4.0.1, PHP 5)

yaz_addinfo -- Returns additional error information

Description

string yaz_addinfo ( resource id)

Returns additional error message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful or if no additional information was provided by the server.

See also yaz_error().

Zurück | Zum Anfang | Nach vorne
YAZ Functions | Nach oben | yaz_ccl_conf


yaz_ccl_conf

(PHP 4 >= 4.0.5, PHP 5)

yaz_ccl_conf -- Configure CCL parser

Description

int yaz_ccl_conf ( resource id, array config)

This function configures the CCL query parser for a server with definitions of access points (CCL qualifiers) and their mapping to RPN. To map a specific CCL query to RPN afterwards call the yaz_ccl_parse() function. Each index of the array config is the name of a CCL field and the corresponding value holds a string that specifies a mapping to RPN. The mapping is a sequence of attribute-type, attribute-value pairs. Attribute-type and attribute-value is separated by an equal sign (=). Each pair is separated by white space.

Beispiel 1. CCL configuration

In the example below, the CCL parser is configured to support three CCL fields: ti, au and isbn. Each field is mapped to their BIB-1 equivalent. It is assumed that variable $id is the connection ID.

<?php
$fields["ti"] = "1=4";
$fields["au"] = "1=1";
$fields["isbn"] = "1=7";
yaz_ccl_conf($id, $fields);
?>

Zurück | Zum Anfang | Nach vorne
yaz_addinfo | Nach oben | yaz_ccl_parse


yaz_ccl_parse

(PHP 4 >= 4.0.5, PHP 5)

yaz_ccl_parse -- Invoke CCL Parser

Description

bool yaz_ccl_parse ( resource id, string query, array & result)

This function invokes a CCL parser. It converts a given CCL FIND query to an RPN query which may be passed to the yaz_search() function to perform a search. To define a set of valid CCL fields call yaz_ccl_conf() prior to this function. If the supplied query was successfully converted to RPN, this function returns TRUE, and the index rpn of the supplied array result holds a valid RPN query. If the query could not be converted (because of invalid syntax, unknown field, etc.) this function returns FALSE and three indexes are set in the resulting array to indicate the cause of failure: errorcode CCL error code (integer), errorstring CCL error string, and errorpos approximate position in query of failure (integer is character position).

Beispiel 1. CCL Parsing

We will try to search using CCL. In the example below, $ccl is a CCL query.

<?php
yaz_ccl_conf($id, $fields);  // see example for yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
    echo 'Error: ' . $cclresult["errorstring"];
} else {
    $rpn = $cclresult["rpn"];
    yaz_search($id, "rpn", $rpn);
}
?>

Zurück | Zum Anfang | Nach vorne
yaz_ccl_conf | Nach oben | yaz_close


yaz_close

(PHP 4 >= 4.0.1, PHP 5)

yaz_close -- Close YAZ connection

Description

bool yaz_close ( resource id)

Closes the connection given by parameter id. The id is a connection resource as returned by a previous call to yaz_connect().

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
yaz_ccl_parse | Nach oben | yaz_connect


yaz_connect

(PHP 4 >= 4.0.1, PHP 5)

yaz_connect -- Prepares for a connection to a Z39.50 server.

Description

resource yaz_connect ( string zurl [, mixed options])

This function returns a connection resource on success, zero on failure.

yaz_connect() prepares for a connection to a Z39.50 server. The zurl argument takes the form host[:port][/database]. If port is omitted, port 210 is used. If database is omitted Default is used. This function is non-blocking and does not attempt to establish a connection - it merely prepares a connect to be performed later when yaz_wait() is called.

If the second argument, options, is given as a string it is treated as the Z39.50 V2 authentication string (OpenAuth).

If options is given as an array the contents of the array serves as options. Note that array options are only supported for PHP 4.1.0 and later.

yaz_connect() options

user

Username for authentication.

group

Group for authentication.

password

Password for authentication.

cookie

Cookie for session (YAZ proxy).

proxy

Proxy for connection (YAZ proxy).

persistent

A boolean. If TRUE the connection is persistent; If FALSE the connection is not persistent. By default connections are persistent.

piggyback

A boolean. If TRUE piggyback is enabled for searches; If FALSE piggyback is disabled. By default piggyback is enabled. Enabling piggyback is more efficient and usually saves a network-round-trip for first time fetches of records. However, a few Z39.50 servers do not support piggyback or they ignore element set names. For those, piggyback should be disabled.

charset

A string that specifies character set to be used in Z39.50 language and character set negotiation. Use strings such as: ISO-8859-1, UTF-8, UTF-16.

Most Z39.50 servers do not support this feature (and thus, this is ignored). Many servers use the ISO-8859-1 encoding for queries and messages. MARC21/USMARC records are not affected by this setting.

Anmerkung: The use of a proxy often improves performance. A Z39.50 proxy is part of the free YAZ++ package.

Zurück | Zum Anfang | Nach vorne
yaz_close | Nach oben | yaz_database


yaz_database

(PHP 4 >= 4.0.6, PHP 5)

yaz_database -- Specifies the databases within a session

Description

bool yaz_database ( resource id, string databases)

This function specifies one or more databases to be used in search, retrieval, etc. - overriding databases specified in call to yaz_connect(). Multiple databases are separated by a plus sign +.

This function allows you to use different sets of databases within a session.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
yaz_connect | Nach oben | yaz_element


yaz_element

(PHP 4 >= 4.0.1, PHP 5)

yaz_element -- Specifies Element-Set Name for retrieval

Description

bool yaz_element ( resource id, string elementset)

This function sets the element set name for retrieval. Call this function before yaz_search() or yaz_present() to specify the element set name for records to be retrieved. Most servers support F (for full records) and B (for brief records).

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
yaz_database | Nach oben | yaz_errno


yaz_errno

(PHP 4 >= 4.0.1, PHP 5)

yaz_errno -- Returns error number

Description

int yaz_errno ( resource id)

Returns an errornumber for the server (last request) identified by id. The error code is either a Z39.50 diagnostic code (usually a Bib-1 diagnostic) or a client side error code which is generated by PHP/YAZ itself, such as "Connect failed", "Init Rejected", etc.

yaz_errno() should be called after network activity for each server - (after yaz_wait() returns) to determine the success or failure of the last operation (e.g. search). To get a text description of the error, call yaz_error().

Zurück | Zum Anfang | Nach vorne
yaz_element | Nach oben | yaz_error


yaz_error

(PHP 4 >= 4.0.1, PHP 5)

yaz_error -- Returns error description

Description

string yaz_error ( resource id)

Returns an error text message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful.

yaz_error() returns an English text message corresponding to the last error number as returned by yaz_errno().

Zurück | Zum Anfang | Nach vorne
yaz_errno | Nach oben | yaz_es_result


yaz_es_result

(PHP 4 >= 4.2.0, PHP 5)

yaz_es_result -- Inspects Extended Services Result

Description

array yaz_es_result ( resource id)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
yaz_error | Nach oben | yaz_get_option


yaz_get_option

(PHP 5)

yaz_get_option -- Returns value of option for connection

Description

string yaz_get_option ( resource id, string name)

Returns the value of the option specified with name. If an option is not set, an empty string is returned.

See the description of yaz_set_option() for available options.

Zurück | Zum Anfang | Nach vorne
yaz_es_result | Nach oben | yaz_hits


yaz_hits

(PHP 4 >= 4.0.1, PHP 5)

yaz_hits -- Returns number of hits for last search

Description

int yaz_hits ( resource id)

yaz_hits() returns the number of hits for the last search.

Zurück | Zum Anfang | Nach vorne
yaz_get_option | Nach oben | yaz_itemorder


yaz_itemorder

(PHP 4 >= 4.0.5, PHP 5)

yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package

Description

int yaz_itemorder ( resource id, array args)

This function prepares for an Extended Services request using the Profile for the Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1). See this and the specification. The args parameter must be a hash array with information about the Item Order request to be sent. The key of the hash is the name of the corresponding ASN.1 tag path. For example, the ISBN below the Item-ID has the key item-id,ISBN.

The ILL-Request parameters are:

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note

There are also a few parameters that are part of the Extended Services Request package and the ItemOrder package:

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item

Zurück | Zum Anfang | Nach vorne
yaz_hits | Nach oben | yaz_present


yaz_present

(PHP 4 >= 4.0.5, PHP 5)

yaz_present -- Prepares for retrieval (Z39.50 present).

Description

bool yaz_present ( resource id)

This function prepares for retrieval of records after a successful search. The yaz_range() should be called prior to this function to specify the range of records to be retrieved.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
yaz_itemorder | Nach oben | yaz_range


yaz_range

(PHP 4 >= 4.0.1, PHP 5)

yaz_range -- Specifies the maximum number of records to retrieve

Description

bool yaz_range ( resource id, int start, int number)

This function should be called before either yaz_search() or yaz_present() to specify a range of records to be retrieved. The parameter start specifies the position of the first record to be retrieved and parameter number is the number of records. Records in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

Zurück | Zum Anfang | Nach vorne
yaz_present | Nach oben | yaz_record


yaz_record

(PHP 4 >= 4.0.1, PHP 5)

yaz_record -- Returns a record

Description

string yaz_record ( resource id, int pos, string type)

Returns the record at position pos or an empty string if no record exists at the given position.

The yaz_record() function inspects a record in the current result set at the position specified by parameter pos. If no database record exists at the given position an empty string is returned.

Record positions in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

The type specifies the form of the returned record.

string

The record is returned as a string for simple display. In this mode, all MARC records are converted to a line-by-line format since ISO2709 is hardly readable. XML records and SUTRS are returned in their original format. GRS-1 are returned in a (ugly) line-by-line format.

This format is suitable if records are to be displayed in a quick way - for debugging - or because it is not feasible to perform proper display.

xml

The record is returned as an XML string if possible. In this mode, all MARC records are converted to MARCXML. XML records and SUTRS are returned in their original format. GRS-1 is not supported.

This format is similar to string except that MARC records are converted to MARCXML

This format is suitable if records are processed by an XML parser or XSLT processor afterwareds.

raw

The record is returned as a string in its original form. This type is suitable for MARC, XML and SUTRS. It does not work for GRS-1.

MARC records are returned as a ISO2709 string. XML and SUTRS are returned as strings.

syntax

The syntax of the record is returned as a string, i.e. USmarc, GRS-1, XML, etc.

database

The name of database associated with record at the position is returned as a string.

array

The record is returned as an array that reflects the GRS-1 structure. This type is suitable for MARC and GRS-1. XML, SUTRS are not supported and if the actual record is XML or SUTRS an empty string will be returned.

The array returned consists of a list corresponding to each leaf/internal node of GRS-1. Each list item consists a sub list with first element path and data (if data is available).

The path which is a string holds a list of each tree component (of the structured GRS-1 record) from root to leaf. Each component is a tag type, tag value pair of the form (type, value

String tags normally has a corresponding tag type 3. MARC can also be returned as an array (they are converted to GRS-1 internally).

Anmerkung: It is the application which is responsible for actually ensuring that the records are returned from the Z39.50/SRW server in the proper format. The type given only specifies a conversion to take place on the client side (in PHP/YAZ).

Besides conversion of the transfer record to a string/array, PHP/YAZ it is also possible to perform a character set conversion of the record. Especially for USMARC/MARC21 that is recommended since these are typically returned in the character set MARC-8 that is not supported by browsers, etc. To specify a conversion, add ; charset=from, to where from is the original character set of the record and to is the resulting character set (as seen by PHP).

Beispiel 1. Array for GRS-1 record

Consider GRS-1 record
(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
This record has two nodes at root level. First element at root level is (4,52) [tag type 4, tag value 52], and has data Robert M. Pirsig. Second element at root level (4,70) has a subtree with a single element (4,90). (4,90) has yet another sub tree (2,7) with data Transworld Publishers, ltd..

If this record is present at position $p, then
$ar = yaz_record($id, $p, "array");
print_r($ar);
produces
Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Beispiel 2. Working with MARCXML

The following PHP snippet returns a MARC21/USMARC record as MARCXML. The original record is returned in marc-8 (unknown to most XML parsers), so we convert it to UTF-8 (which all XML parsers must support).
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");

The record $rec can be processed with the Sablotron XSLT processor as follows:

$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
print $res;

For PHP5 the XSL extension can be used instead of Sablotron XSLT.

Zurück | Zum Anfang | Nach vorne
yaz_range | Nach oben | yaz_scan_result


yaz_scan_result

(PHP 4 >= 4.0.5, PHP 5)

yaz_scan_result -- Returns Scan Response result

Description

array yaz_scan_result ( resource id [, array & result])

yaz_scan_result() returns terms and associated information as received from the server in the last performed yaz_scan(). This function returns an array (0..n-1) where n is the number of terms returned. Each value is a pair where the first item is the term, and the second item is the result-count. If the optional parameter result is given it will be modified to hold additional information taken from the Scan Response: number (number of entries returned), stepsize (Step-size), position (position of term), status (Scan Status).

Zurück | Zum Anfang | Nach vorne
yaz_record | Nach oben | yaz_scan


yaz_scan

(PHP 4 >= 4.0.5, PHP 5)

yaz_scan -- Prepares for a scan

Description

int yaz_scan ( resource id, string type, string startterm [, array flags])

This function prepares for a Z39.50 Scan Request, where parameter id specifies connection. Starting term point for the scan is given by startterm. The form in which the starting term is specified is given by parameter type. Currently only type rpn is supported. The optional parameter flags specifies additional information to control the behaviour of the scan request. Three indexes are currently read from the flags: number (number of terms requested), position (preferred position of term) and stepSize (preferred step size). To actually transfer the Scan Request to the server and receive the Scan Response, yaz_wait() must be called. Upon completion of yaz_wait() call yaz_error() and yaz_scan_result() to handle the response.

The syntax of startterm is similar to the RPN query as described in yaz_search(). The startterm consists of zero or more @attr-operator specifications, then followed by exactly one token.

Beispiel 1. PHP function that scans titles

<?php
function scan_titles($id, $startterm)
{
  yaz_scan($id, "rpn", "@attr 1=4 " . $startterm);
  yaz_wait();
  $errno = yaz_errno($id);
  if ($errno == 0) {
    $ar = yaz_scan_result($id, &$options);
    echo 'Scan ok; ';
    while (list($key, $val) = each($options)) {
      echo "$key = $val &nbsp;";
    }
    echo '<br /><table>';
    while (list($key, list($k, $term, $tcount)) = each($ar)) {
      if (empty($k)) continue;
      echo "<tr><td>$term</td><td>$tcount</td></tr>";
    }
    echo '</table>';
  } else {
    echo "Scan failed. Error: " . yaz_error($id) . "<br />";
  }
}
?>

Zurück | Zum Anfang | Nach vorne
yaz_scan_result | Nach oben | yaz_schema


yaz_schema

(PHP 4 >= 4.2.0, PHP 5)

yaz_schema -- Specifies schema for retrieval.

Description

int yaz_schema ( resource id, string schema)

The schema must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.13.4) or as one of the known registered schemas: GILS-schema, Holdings, Zthes, ... This function should be called before yaz_search() or yaz_present().

Zurück | Zum Anfang | Nach vorne
yaz_scan | Nach oben | yaz_search


yaz_search

(PHP 4 >= 4.0.1, PHP 5)

yaz_search -- Prepares for a search

Description

int yaz_search ( resource id, string type, string query)

yaz_search() prepares for a search on the connection given by parameter id. The parameter type represents the query type - only "rpn" is supported now in which case the third argument specifies a Type-1 query in prefix query notation. Like yaz_connect() this function is non-blocking and only prepares for a search to be executed later when yaz_wait() is called.

The RPN query

The RPN query is a textual representation of the Type-1 query as defined by the Z39.50 standard. However, in the text representation as used by YAZ a prefix notation is used, that is the operater precedes the operands. The query string is a sequence of tokens where white space is ignored unless surrounded by double quotes. Tokens beginning with an at-character (@) are considered operators, otherwise they are treated as search terms.

Tabelle 1. RPN Operators

Construct | Description
@and query1 query2 | intersection of query1 and query2
@or query1 query2 | union of query1 and query2
@not query1 query2 | query1 and not query2
@set name | result set reference
@attrset set query | specifies attribute-set for query. This construction is only allowed once - in the beginning of the whole query
@attr [set] type=value query | applies attribute to query. The type and value are integers specifying the attribute-type and attribute-value respectively. The set, if given, specifies the attribute-set.

Beispiel 1. Query Examples

You can search for simple terms, like this
computer
which matches documents where "computer" occur. No attributes are specified.

The Query
"knuth donald"
matches documents where "knuth donald" occur (provided that the server supports phrase search).

This query applies two attributes for the same phrase.
@attr 1=1003 @attr 4=1 "knuth donald"
First attribute is type 1 (Bib-1 use), attribute value is 1003 (Author). Second attribute has is type 4 (structure), value 1 (phrase), so this should match documents where Donald Knuth is author.

This query
@and @or a b @not @or c d e
would in infix notation look like (a or b) and ((c or d) not e).

Another, more complex, one:
@attrset gils @and @attr 1=4 art @attr 1=2000 company
The query as a whole uses the GILS attributeset. The query matches documents where art occur in the title (GILS,BIB-1) and in which company occur as Distributor (GILS).

You can find information about attributes at the Z39.50 Maintenance Agency site.

Anmerkung: If you would like to use a more friendly notation, use the CCL parser - functions yaz_ccl_conf() and yaz_ccl_parse().

Zurück | Zum Anfang | Nach vorne
yaz_schema | Nach oben | yaz_set_option


yaz_set_option

(PHP 5)

yaz_set_option -- Sets one or more options for connection

Description

string yaz_set_option ( resource id, string name, string value)

Sets option name to value.

Tabelle 1. PYP/YAZ Connection Options

Name | Description
implementationName | implementation name of server
implementationVersion | implementation version of server
implementationId | implementation ID of server
schema | schema for retrieval. By default, no schema is used. Setting this option is equivalent to using function yaz_schema()
preferredRecordSyntax | record syntax for retrieval. By default, no syntax is used. Setting this option is equivalent to using function yaz_syntax()
start | offset for first record to be retrieved via yaz_search() or yaz_present(). First record is numbered has a start value of 0. Second record has start value 1. Setting this option in combination with option count has the same effect as calling yaz_range() except that records are numbered from 1 in yaz_range()
count | maximum number of records to be retrieved via yaz_search() or yaz_present().
elementSetName | element-set-name for retrieval. Setting this option is equivalent to calling yaz_element().

Zurück | Zum Anfang | Nach vorne
yaz_search | Nach oben | yaz_sort


yaz_sort

(PHP 4 >= 4.1.0, PHP 5)

yaz_sort -- Sets sorting criteria

Description

int yaz_sort ( resource id, string criteria)

This function sets sorting criteria and enables Z39.50 Sort. Call this function before yaz_search(). Using this function alone does not have any effect. When used in conjunction with yaz_search(), a Z39.50 Sort will be sent after a search response has been received and before any records are retrieved with Z39.50 Present (yaz_present(). The parameter criteria takes the form

field1 flags1 field2 flags2 ...

where field1 specifies the primary attributes for sort, field2 seconds, etc.. The field specifies either a numerical attribute combinations consisting of type=value pairs separated by comma (e.g. 1=4,2=1) ; or the field may specify a plain string criteria (e.g. title. The flags is a sequence of the following characters which may not be separated by any white space.

Sort Flags

a

Sort ascending

d

Sort descending

i

Case insensitive sorting

s

Case sensitive sorting

Beispiel 1. Sort Criterias

To sort on Bib1 attribute title, case insensitive, and ascending you would use the following sort criteria:
1=4 ia

If the secondary sorting criteria should be author, case sensitive and ascending you would use:
1=4 ia 1=1003 sa

Zurück | Zum Anfang | Nach vorne
yaz_set_option | Nach oben | yaz_syntax


yaz_syntax

(PHP 4 >= 4.0.1, PHP 5)

yaz_syntax -- Specifies the preferred record syntax for retrieval.

Description

int yaz_syntax ( resource id, string syntax)

The syntax must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.5.10) or as one of the known registered record syntaxes (sutrs, usmarc, grs1, xml, etc.). This function should be called before yaz_search() or yaz_present().

Zurück | Zum Anfang | Nach vorne
yaz_sort | Nach oben | yaz_wait


yaz_wait

(PHP 4 >= 4.0.1, PHP 5)

yaz_wait -- Wait for Z39.50 requests to complete

Description

int yaz_wait ( [array options])

This function carries out networked (blocked) activity for outstanding requests which have been prepared by the functions yaz_connect(), yaz_search(), yaz_present(), yaz_scan() and yaz_itemorder(). yaz_wait() returns when all servers have either completed all requests or aborted (in case of errors).

If the options array is given that holds options that change the behaviour of yaz_wait().

timeout

Sets timeout in seconds. If a server has not responded within the timeout it is considered dead and yaz_wait() returns. The default value for timeout is 15 seconds.

Zurück | Zum Anfang | Nach vorne
yaz_syntax | Nach oben | YP/NIS Funktionen


YP/NIS Funktionen

PHP Handbuch
Zurück Nach vorne

CXXII. YP/NIS Funktionen

NIS (früher unter dem Namen Yellow Pages bekannt) erlauben das netzwerkweite Management von wichtigen administrativen Dateien (z.B der Passwort-Datei. Für weitere Informationen zu NIS empfehlen wir die NIS Manpage und die Einführung zu YP/NIS Des weiteren ist ein empfehlenswertes Buch mit dem Titel Managing NFS and NIS von Hal Stern erhältlich.

Um die NIS-Funktionen mit PHP nutzen zu können, muss PHP vor der Compilierung mit den Optionen --with-yp(PHP 3) oder --enable-yp(PHP 4) konfiguriert werden.

Inhaltsverzeichnis
yp_all -- Traverse the map and call a function on each entry
yp_cat -- Return an array containing the entire map
yp_err_string -- Returns the error string associated with the previous operation
yp_errno -- Returns the error code of the previous operation
yp_first -- Gibt das erste Schlüssel-Wert-Paar der angegebenen Map zurück
yp_get_default_domain -- Gibt die voreingestellte NIS-Domäne der aktuellen Maschine zurück.
yp_master -- Gibt den Namen des Hauptservers für eine NIS-Map zurück
yp_match -- Gibt die übereinstimmende Zeile zurück
yp_next -- Gibt das nächste Schlüssel-Wert-Paar in der angegebenen Map zurück.
yp_order -- Gibt die Ordnungsnummer einer Map zurück

Zurück | Zum Anfang | Nach vorne
yaz_wait | Nach oben | yp_all


yp_all

(PHP 4 >= 4.0.6, PHP 5)

yp_all -- Traverse the map and call a function on each entry

Description

void yp_all ( string domain, string map, string callback)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Zurück | Zum Anfang | Nach vorne
YP/NIS Funktionen | Nach oben | yp_cat


yp_cat

(PHP 4 >= 4.0.6, PHP 5)

yp_cat -- Return an array containing the entire map

Description

array yp_cat ( string domain, string map)

yp_cat() returns all map entries as an array with the maps key values as array indices and the maps entries as array data.

Zurück | Zum Anfang | Nach vorne
yp_all | Nach oben | yp_err_string


yp_err_string

(PHP 4 >= 4.0.6, PHP 5)

yp_err_string -- Returns the error string associated with the previous operation

Description

string yp_err_string ( void )

yp_err_string() returns the error message associated with the previous operation. Useful to indicate what exactly went wrong.

Beispiel 1. Example for NIS errors

<?php
    echo "Error: " . yp_err_string();
?>

See also yp_errno().

Zurück | Zum Anfang | Nach vorne
yp_cat | Nach oben | yp_errno


yp_errno

(PHP 4 >= 4.0.6, PHP 5)

yp_errno -- Returns the error code of the previous operation

Description

int yp_errno ( void )

yp_errno() returns the error code of the previous operation.

Possible errors are:

1 args to function are bad
2 RPC failure - domain has been unbound
3 can't bind to server on this domain
4 no such map in server's domain
5 no such key in map
6 internal yp server or client error
7 resource allocation failure
8 no more records in map database
9 can't communicate with portmapper
10 can't communicate with ypbind
11 can't communicate with ypserv
12 local domain name not set
13 yp database is bad
14 yp version mismatch
15 access violation
16 database busy

See also yp_err_string().

Zurück | Zum Anfang | Nach vorne
yp_err_string | Nach oben | yp_first


yp_first

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_first -- Gibt das erste Schlüssel-Wert-Paar der angegebenen Map zurück

Beschreibung

array yp_first ( string domain, string map)

yp_first() gibt das erste Schlüssel-Wert-Paar der angegebenen Map zurück, andernfalls FALSE.

Beispiel 1. Beispiel für den ersten NIS-Eintrag

<?php
$entry = yp_first($domain, "passwd.byname");
$key = $entry ["key"];
$value = $entry ["value"];
echo "First entry in this map has key " . $key . " and value " . $value;
?>

See also yp-get-default-domain()

Zurück | Zum Anfang | Nach vorne
yp_errno | Nach oben | yp_get_default_domain


yp_get_default_domain

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_get_default_domain -- Gibt die voreingestellte NIS-Domäne der aktuellen Maschine zurück.

Beschreibung

int yp_get_default_domain ( void )

yp_get_default_domain() gibt die voreingestellt Domäne des aktuellen Knotens oder FALSE zurück. Kann für erfolgreiche NIS Aufrufe als der Parameter domain genutzt werden.

Eine NIS-Domäne kann als Gruppe von NIS-Maps beschrieben werden. Jeder Host, der Informationen abrufen möchte, verbindet sich selbst zu einer bestimmten Domäne. Weitere Informationen hierzu finden sie in den oben genannten Quellen.

Beispiel 1. Beispiel für die voreingestellte Domäne

<?php
$domain = yp_get_default_domain();
echo "Default NIS domain is: " . $domain;
?>

Zurück | Zum Anfang | Nach vorne
yp_first | Nach oben | yp_master


yp_master

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_master -- Gibt den Namen des Hauptservers für eine NIS-Map zurück

Beschreibung

string yp_master ( string domain, string map)

yp_master() gibt den Namen des Hauptservers (Master) für eine NIS-Map zurück.

Beispiel 1. Beispiel für den NIS Master

<?php
$number = yp_master ($domain, $mapname);
echo "Master for this map is: " . $master;
?>

Siehe auch yp-get-default-domain().

Zurück | Zum Anfang | Nach vorne
yp_get_default_domain | Nach oben | yp_match


yp_match

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_match -- Gibt die übereinstimmende Zeile zurück

Beschreibung

string yp_match ( string domain, string map, string key)

yp_match() gibt den Wert zurück, der mit dem übergebenen Schlüssel der angegebenen Map verbunden ist, bei einem Fehler FALSE. Der Schlüssel muss eindeutig sein.

Beispiel 1. Beispiel für den übereinstimmenden NIS-Eintrag

<?php
$entry = yp_match ($domain, "passwd.byname", "joe");
echo "Matched entry is: " . $entry;
?>

In diesem Fall wäre folgendes möglich: joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

See also yp-get-default-domain()

Zurück | Zum Anfang | Nach vorne
yp_master | Nach oben | yp_next


yp_next

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_next -- Gibt das nächste Schlüssel-Wert-Paar in der angegebenen Map zurück.

Beschreibung

array yp_next ( string domain, string map, string key)

yp_next() gibt den das nächste Schlüssel-Wert-Paar in der angegebene Map zurück, nachdem der Schlüssel übergeben wurde, bei einem Fehler FALSE.

Beispiel 1. Beispiel für den nächsten NIS-Eintrag

<?php
$entry = yp_next ($domain, "passwd.byname", "joe");

if (!$entry) {
    echo "No more entries found\n";

}

$key = key ($entry);

echo "The next entry after joe has key " . $key
      . " and value " . $entry[$key];
?>

Siehe auch yp-get-default-domain().

Zurück | Zum Anfang | Nach vorne
yp_match | Nach oben | yp_order


yp_order

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_order -- Gibt die Ordnungsnummer einer Map zurück

Beschreibung

int yp_order ( string domain, string map)

yp_order() gibt die Nummer einer Map in der Reihenfolge der NIS Maps oder FALSE zurück.

Beispiel 1. Beispiel für die NIS Reihenfolge

<?php
    $number = yp_order($domain,$mapname);
    echo "Order number for this map is: " . $number;
?>

See also yp-get-default-domain().

Zurück | Zum Anfang | Nach vorne
yp_next | Nach oben | ZIP Funktionen (Lesezugriff)


ZIP Funktionen (Lesezugriff)

PHP Handbuch
Zurück Nach vorne

CXXIII. ZIP Funktionen (Lesezugriff)

Dieses Modul benutzt die Funktionen der ZZIPlib Bibliothek von Guido Draheim um ZIP komprimierte Archive und die darin enthaltenen Dateien zu lesen.

Zu beachten ist, dass ZZIPlib nur eine Untermenge der Funktionen zur Verfügung stellt, die in einer vollständigen Implementation des ZIP Algorithmus vorhanden sind. Zur Erstellung eines ZIP Archivs muss man sich eines der üblichen ZIP Programme bedienen.

Die ZIP Unterstützung ist standardmäßig nicht aktiviert. Um die ZIP Funktionen nutzen zu können, muss PHP mit der option --with-zip kompiliert werden. Das ZIP Modul benötigt ZZIPlib version >= 0.10.6.

Anmerkung: Zip Unterstützung für PHP vor Version 4.1.0 ist als experimentell anzusehen. Dieser Abschnitt beschreibt die ZIP Unterstützung, wie sie für PHP ab Version 4.1.0 existiert.

Beispiel zur Verwendung

Dieses Beispiel öffnet ein ein ZIP Archiv, liest jede Datei innerhalb des Archivs und gibt den Inhalt zurück. Das test2.zip Archiv, das in diesem Beispiel benutzt wird, wird mit der Original Distribution der ZZIPlib Bibliothek mitgeliefert.

Beispiel 1. Beispiel zur Verwendung der Zip Funktion

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {

    while ($zip_entry = zip_read($zip)) {
        echo "Name:               " . zip_entry_name($zip_entry) . "\n";
        echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
        echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "File Contents:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}

?>
Inhaltsverzeichnis
zip_close -- Schließt ein ZIP Archiv
zip_entry_close -- Schließt einen Verzeichniseintrag
zip_entry_compressedsize -- Gibt die komprimierte Größe eines Verzeichniseintrages zurück
zip_entry_compressionmethod -- Gibt die Komprimierungsmethode eines Verzeichniseintrages zurück.
zip_entry_filesize -- Gibt die Größe eines Verzeichniseintrages zurück
zip_entry_name -- Gibt den Namen eines Verzeichniseintrages zurück
zip_entry_open -- Öffnet einen Verzeichniseintrag für den Lesezugriff
zip_entry_read -- Liest einen geöffneten Verzeichniseintrag aus
zip_open -- Öffnet ein ZIP Archiv
zip_read -- Liest den nächsten Eintrag innerhalb des ZIP Archivs

Zurück | Zum Anfang | Nach vorne
yp_order | Nach oben | zip_close


zip_close

(PHP 4 >= 4.1.0)

zip_close -- Schließt ein ZIP Archiv

Beschreibung

void zip_close ( resource zip)

Schließt ein ZIP Archiv. Der Parameter zip muss ein Dateizeiger sein, der vorher durch zip_open() zurückgegeben wurde.

Diese Funktion hat keinen Rückgabewert.

Siehe auch zip_open() und zip_read().

Zurück | Zum Anfang | Nach vorne
ZIP Funktionen (Lesezugriff) | Nach oben | zip_entry_close


zip_entry_close

(PHP 4 >= 4.1.0)

zip_entry_close -- Schließt einen Verzeichniseintrag

Beschreibung

void zip_entry_close ( resource zip_entry)

Schließt einen Verzeichniseintrag, der durch den Parameter zip_entry identifiziert wird. Dieser Parameter muss ein gültiger Verzeichniseintrag sein, der vorher durch zip_entry_open() geöffnet wurde.

Diese Funktion hat keinen Rückgabewert.

Siehe auch zip_entry_open() und zip_entry_read().

Zurück | Zum Anfang | Nach vorne
zip_close | Nach oben | zip_entry_compressedsize


zip_entry_compressedsize

(PHP 4 >= 4.1.0)

zip_entry_compressedsize -- Gibt die komprimierte Größe eines Verzeichniseintrages zurück

Beschreibung

int zip_entry_compressedsize ( resource zip_entry)

Gibt die komprimierte Größe des Verzeichniseintrages zurück, der durch zip_entry spezifiziert wird. Der Parameter zip_entry muss ein gültiger Verzeichniseintrag sein, der durch zip_read() zurückgegeben wurde.

Siehe auch zip_open() und zip_read().

Zurück | Zum Anfang | Nach vorne
zip_entry_close | Nach oben | zip_entry_compressionmethod


zip_entry_compressionmethod

(PHP 4 >= 4.1.0)

zip_entry_compressionmethod -- Gibt die Komprimierungsmethode eines Verzeichniseintrages zurück.

Beschreibung

string zip_entry_compressionmethod ( resource zip_entry)

Gibt die Komprimierungsmethode eines Verzeichniseintrages zurück, der durch zip_entry spezifiziert wird. Der Parameter zip_entry muss ein gültiger Verzeichniseintrag sein, der durch zip_read() zurückgegeben wurde.

Siehe auch zip_open() und zip_read().

Zurück | Zum Anfang | Nach vorne
zip_entry_compressedsize | Nach oben | zip_entry_filesize


zip_entry_filesize

(PHP 4 >= 4.1.0)

zip_entry_filesize -- Gibt die Größe eines Verzeichniseintrages zurück

Beschreibung

int zip_entry_filesize ( resource zip_entry)

Gibt die Größe eines Verzeichniseintrages zurück, der durch zip_entry spezifiziert wird. Der Parameter zip_entry muss ein gültiger Verzeichniseintrag sein, der durch zip_read() zurückgegeben wurde.

Siehe auch zip_open() und zip_read().

Zurück | Zum Anfang | Nach vorne
zip_entry_compressionmethod | Nach oben | zip_entry_name


zip_entry_name

(PHP 4 >= 4.1.0)

zip_entry_name -- Gibt den Namen eines Verzeichniseintrages zurück

Beschreibung

string zip_entry_name ( resource zip_entry)

Gibt den Namen eines Verzeichniseintrages zurück, der durch den Parameter zip_entry spezifiziert wurde. Der Parameter zip_entry muss ein gültiger Verzeichniseintrag sein, der durch zip_read() zurückgegeben wurde.

Siehe auch zip_open() und zip_read().

Zurück | Zum Anfang | Nach vorne
zip_entry_filesize | Nach oben | zip_entry_open


zip_entry_open

(PHP 4 >= 4.1.0)

zip_entry_open -- Öffnet einen Verzeichniseintrag für den Lesezugriff

Beschreibung

bool zip_entry_open ( resource zip, resource zip_entry [, string mode])

Öffnet einen Verzeichniseintrag für den Lesezugriff. Der Parameter zip muss ein Dateizeiger sein, der vorher durch zip_open() zurückgegeben wurde. Der Parameter zip_entry ist ein Verzeichniseintrag, der durch zip_read() zurückgegeben wurde. Der optionale Parameter mode kann einer der in der Dokumentation zu fopen() beschriebenen Werte sein.

Anmerkung: Gegenwärtig wird der Parameter mode ignoriert und implizit auf "rb" gesetzt. Dies erfolgt aufgrund des ausschließlichen Lesezugriffs der aktuellen ZIP Unterstüzung für PHP. In der Dokumentation zu fopen() finden sich weitere Erklärungen zu diesem Parameter.

Gibt bei Erfolg TRUE zurück, andernfalls FALSE.

Anmerkung: Im Gegensatz zu fopen() und vergleichbaren Funktionen zeigt der Rückgabewert von zip_entry_open() nur das Gelingen an und wird nicht für weitere Operationen benötigt.

Siehe auch zip_entry_read() und zip_entry_close().

Zurück | Zum Anfang | Nach vorne
zip_entry_name | Nach oben | zip_entry_read


zip_entry_read

(PHP 4 >= 4.1.0)

zip_entry_read -- Liest einen geöffneten Verzeichniseintrag aus

Beschreibung

string zip_entry_read ( resource zip_entry [, int length])

Liest bis zu length Bytes von einem geöffneten Verzeichniseintrag aus. Wenn der Parameter length nicht angegeben wurde, wird versucht die ersten 1024 Bytes auszulesen. Der Parameter zip_entry muss ein gültiger Verzeichniseintrag sein, der durch zip_read() zurückgegeben wurde.

Anmerkung: Der Parameter length bezieht sich auf die unkomprimierte Größe.

Gibt die ausgelesenen Daten zurück oder FALSE, wenn das Ende der Datei erreicht wurde.

Siehe auch zip_entry_open(),
zip_entry_close() und
zip_entry_filesize().

Zurück | Zum Anfang | Nach vorne
zip_entry_open | Nach oben | zip_open


zip_open

(PHP 4 >= 4.1.0)

zip_open -- Öffnet ein ZIP Archiv

Beschreibung

resource zip_open ( string filename)

Diese Funktion öffnet ein ZIP Archiv für den Lesezugriff. Der Parameter filename ist der Name der zu öffnenden ZIP Datei.

Gibt einen Dateizeiger zurück, der in den Funktionen zip_read() und zip_close() benutzt wird. Existiert die Datei filename nicht wird FALSE zurückgegeben.

Siehe auch zip_read() und zip_close().

Zurück | Zum Anfang | Nach vorne
zip_entry_read | Nach oben | zip_read


zip_read

(PHP 4 >= 4.1.0)

zip_read -- Liest den nächsten Eintrag innerhalb des ZIP Archivs

Beschreibung

resource zip_read ( resource zip)

Liest den nächsten Eintrag innerhalb des ZIP Archivs. Der Parameter zip muss ein Dateizeiger sein, der vorher durch zip_open() zurückgegeben wurde.

Gibt einen Verzeichniseintrag zur späteren Benutzung mit den zip_entry_...() Funktionen zurück.

Siehe auch zip_open(),
zip_close(),
zip_entry_open() und
zip_entry_read().

Zurück | Zum Anfang | Nach vorne
zip_open | Nach oben | Zlib Komprimierungsfunktionen


Zlib Komprimierungsfunktionen

PHP Handbuch
Zurück Nach vorne

CXXIV. Zlib Komprimierungsfunktionen

Diese Extension nutzt die Funktionen der zlib von Jean-loup Gailly und Mark Adler um transparent gzip (.gz) - komprimierte Dateien lesen und schreiben zu können. Es muss die zlib >= 1.0.9 verwendet werden, um die Funktionen nutzen zu können.

Diese Extension beinhaltet Versionen der meisten Dateisystem-Funktionen, die mit gzip-komprimierten (und nicht komprimierten) Datein, jedoch nicht mit Sockets funktionieren.

Anmerkung: Mit Version 4.0.4 wurde ein fopen-wrapper für .gz-Dateien eingeführt, so das eine spezielle 'zlib:'-URL verwendet werden kann, um komprimierte Datei transparent über die f*()-Dateifunktionen genutzt werden können.

In Version 4.3.0 wurde diese spezielle Prefix in zlib:// geändert, um Konflikte mit Dateinamen zu vermeiden die ':' enthalten.

Dieses Feature erfordert eine C-Laufzeitbibliothek, die die fopencookie()-Funktion bereitstellt. Nach aktuellem Stand ist die GNU libc die einzige Bibliothek, die dieses Feature bereitstellt.

Code-Beispiel

Öffnet eine temporäre Datei und schreibt einen Test-String in die Datei, dann wird der Inhalt dieser Datei zweimal ausgegeben.

Beispiel 1. Zlib Beispiel

<?php

$filename = tempnam ('/tmp', 'zlibtest').'.gz';
print "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";

// Öffne eine Datei zum Schreibzugriff mit der maximalen Kompressionsstufe
$zp = gzopen($filename, "w9");

// Schreibe den String in die Datei
gzwrite($zp, $s);

// Schließe die Datei
gzclose($zp);

// Öffne die Datei zum Lesezugriff
$zp = gzopen($filename, "r");

// Lese 3 Zeichen
print gzread($zp, 3);

// Gebe den Inhalt aus, bis die Datei vollständig ausgegeben ist.
gzpassthru($zp);

print "\n";

// Öffne die Datei und gebe den Inhalt zum zweiten Mal aus
if (readgzfile($filename) != strlen($s)) {
        echo "Fehler in den Zlib-Funktionen!";
}
unlink($filename);
print "</pre>\n</h1></body>\n</html>\n";

?>
Inhaltsverzeichnis
gzclose -- Close an open gz-file pointer
gzcompress -- Compress a string
gzdeflate -- Deflate a string
gzencode -- Create a gzip compressed string
gzeof -- Test for end-of-file on a gz-file pointer
gzfile -- Read entire gz-file into an array
gzgetc -- Get character from gz-file pointer
gzgets -- Get line from file pointer
gzgetss -- Get line from gz-file pointer and strip HTML tags
gzinflate -- Inflate a deflated string
gzopen -- Open gz-file
gzpassthru -- Output all remaining data on a gz-file pointer
gzputs -- Alias of gzwrite()
gzread -- Binary-safe gz-file read
gzrewind -- Rewind the position of a gz-file pointer
gzseek -- Seek on a gz-file pointer
gztell -- Tell gz-file pointer read/write position
gzuncompress -- Uncompress a deflated string
gzwrite -- Binary-safe gz-file write
readgzfile -- Output a gz-file
zlib_get_coding_type -- Returns the coding type used for output compression

Zurück | Zum Anfang | Nach vorne
zip_read | Nach oben | gzclose


gzclose

(PHP 3, PHP 4 , PHP 5)

gzclose -- Close an open gz-file pointer

Description

int gzclose ( resource zp)

The gz-file pointed to by zp is closed.

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen().

Zurück | Zum Anfang | Nach vorne
Zlib Komprimierungsfunktionen | Nach oben | gzcompress


gzcompress

(PHP 4 >= 4.0.1, PHP 5)

gzcompress -- Compress a string

Description

string gzcompress ( string data [, int level])

This function returns a compressed version of the input data using the ZLIB data format, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression.

For details on the ZLIB compression algorithm see the document "ZLIB Compressed Data Format Specification version 3.3" (RFC 1950).

Anmerkung: This is not the same as gzip compression, which includes some header data. See gzencode() for gzip compression.

See also gzdeflate(),
gzinflate(),
gzuncompress(),
gzencode().

Zurück | Zum Anfang | Nach vorne
gzclose | Nach oben | gzdeflate


gzdeflate

(PHP 4 >= 4.0.4, PHP 5)

gzdeflate -- Deflate a string

Description

string gzdeflate ( string data [, int level])

This function returns a compressed version of the input data using the DEFLATE data format, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression. If level is not given the default compression level will be the default compression level of the zlib library.

For details on the DEFLATE compression algorithm see the document "DEFLATE Compressed Data Format Specification version 1.3" (RFC 1951).

See also
gzinflate(),
gzcompress(),
gzuncompress(),
gzencode().

Zurück | Zum Anfang | Nach vorne
gzcompress | Nach oben | gzencode


gzencode

(PHP 4 >= 4.0.4, PHP 5)

gzencode -- Create a gzip compressed string

Description

string gzencode ( string data [, int level [, int encoding_mode]])

This function returns a compressed version of the input data compatible with the output of the gzip program, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression, if not given the default compression level will be the default compression level of the zlib library.

You can also give FORCE_GZIP (the default) or FORCE_DEFLATE as optional third parameter encoding_mode. If you use FORCE_DEFLATE, you get a standard zlib deflated string (inclusive zlib headers) after the gzip file header but without the trailing crc32 checksum.

Anmerkung: level was added in PHP 4.2, before PHP 4.2 gzencode() only had the data and (optional) encoding_mode parameters..

The resulting data contains the appropriate headers and data structure to make a standard .gz file, e.g.:

Beispiel 1. Creating a gzip file

<?php
    $data = implode("", file("bigfile.txt"));
    $gzdata = gzencode($data, 9);
    $fp = fopen("bigfile.txt.gz", "w");
    fwrite($fp, $gzdata);
    fclose($fp);
?>

For more information on the GZIP file format, see the document: GZIP file format specification version 4.3 (RFC 1952).

See also gzcompress().
gzuncompress(),
gzdeflate(),
gzinflate().

Zurück | Zum Anfang | Nach vorne
gzdeflate | Nach oben | gzeof


gzeof

(PHP 3, PHP 4 , PHP 5)

gzeof -- Test for end-of-file on a gz-file pointer

Description

int gzeof ( resource zp)

Returns TRUE if the gz-file pointer is at EOF or an error occurs; otherwise returns FALSE.

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

Zurück | Zum Anfang | Nach vorne
gzencode | Nach oben | gzfile


gzfile

(PHP 3, PHP 4 , PHP 5)

gzfile -- Read entire gz-file into an array

Description

array gzfile ( string filename [, int use_include_path])

Identical to readgzfile(), except that gzfile() returns the file in an array.

You can use the optional second parameter and set it to "1", if you want to search for the file in the include_path, too.

See also readgzfile(), and gzopen().

Zurück | Zum Anfang | Nach vorne
gzeof | Nach oben | gzgetc


gzgetc

(PHP 3, PHP 4 , PHP 5)

gzgetc -- Get character from gz-file pointer

Description

string gzgetc ( resource zp)

Returns a string containing a single (uncompressed) character read from the file pointed to by zp. Returns FALSE on EOF (unlike gzeof()).

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen(), and gzgets().

Zurück | Zum Anfang | Nach vorne
gzfile | Nach oben | gzgets


gzgets

(PHP 3, PHP 4 , PHP 5)

gzgets -- Get line from file pointer

Description

string gzgets ( resource zp, int length)

Returns a (uncompressed) string of up to length - 1 bytes read from the file pointed to by fp. Reading ends when length - 1 bytes have been read, on a newline, or on EOF (whichever comes first).

If an error occurs, returns FALSE.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen(), gzgetc(), and fgets().

Zurück | Zum Anfang | Nach vorne
gzgetc | Nach oben | gzgetss


gzgetss

(PHP 3, PHP 4 , PHP 5)

gzgetss -- Get line from gz-file pointer and strip HTML tags

Description

string gzgetss ( resource zp, int length [, string allowable_tags])

Identical to gzgets(), except that gzgetss() attempts to strip any HTML and PHP tags from the text it reads.

You can use the optional third parameter to specify tags which should not be stripped.

Anmerkung: Allowable_tags was added in PHP 3.0.13, PHP 4.0b3.

See also gzgets(), gzopen(), and strip_tags().

Zurück | Zum Anfang | Nach vorne
gzgets | Nach oben | gzinflate


gzinflate

(PHP 4 >= 4.0.4, PHP 5)

gzinflate -- Inflate a deflated string

Description

string gzinflate ( string data [, int length])

This function takes data compressed by gzdeflate() and returns the original uncompressed data or FALSE on error. The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length.

See also gzcompress().
gzuncompress(),
gzdeflate(), and
gzencode().

Zurück | Zum Anfang | Nach vorne
gzgetss | Nach oben | gzopen


gzopen

(PHP 3, PHP 4 , PHP 5)

gzopen -- Open gz-file

Description

resource gzopen ( string filename, string mode [, int use_include_path])

Opens a gzip (.gz) file for reading or writing. The mode parameter is as in fopen() ("rb" or "wb") but can also include a compression level ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman only compression as in "wb1h". (See the description of deflateInit2 in zlib.h for more information about the strategy parameter.)

gzopen() can be used to read a file which is not in gzip format; in this case gzread() will directly read from the file without decompression.

gzopen() returns a file pointer to the file opened, after that, everything you read from this file descriptor will be transparently decompressed and what you write gets compressed.

If the open fails, the function returns FALSE.

You can use the optional third parameter and set it to "1", if you want to search for the file in the include_path, too.

Beispiel 1. gzopen() Example

<?php
$fp = gzopen("/tmp/file.gz", "r");
?>

See also gzclose().

Zurück | Zum Anfang | Nach vorne
gzinflate | Nach oben | gzpassthru


gzpassthru

(PHP 3, PHP 4 , PHP 5)

gzpassthru -- Output all remaining data on a gz-file pointer

Description

int gzpassthru ( resource zp)

Reads to EOF on the given gz-file pointer and writes the (uncompressed) results to standard output.

If an error occurs, returns FALSE.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

Zurück | Zum Anfang | Nach vorne
gzopen | Nach oben | gzputs


gzputs

gzputs -- Alias of gzwrite()

Description

This function is an alias of gzwrite().

Zurück | Zum Anfang | Nach vorne
gzpassthru | Nach oben | gzread


gzread

(PHP 3, PHP 4 , PHP 5)

gzread -- Binary-safe gz-file read

Description

string gzread ( resource zp, int length)

gzread() reads up to length bytes from the gz-file pointer referenced by zp. Reading stops when length (uncompressed) bytes have been read or EOF is reached, whichever comes first.

Beispiel 1. gzread() example

<?php
// get contents of a gz-file into a string
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

See also gzwrite(), gzopen(),
gzgets(), gzgetss(),
gzfile(), and gzpassthru().

Zurück | Zum Anfang | Nach vorne
gzputs | Nach oben | gzrewind


gzrewind

(PHP 3, PHP 4 , PHP 5)

gzrewind -- Rewind the position of a gz-file pointer

Description

int gzrewind ( resource zp)

Sets the file position indicator for zp to the beginning of the file stream.

If an error occurs, returns 0.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzseek() and gztell().

Zurück | Zum Anfang | Nach vorne
gzread | Nach oben | gzseek


gzseek

(PHP 3, PHP 4 , PHP 5)

gzseek -- Seek on a gz-file pointer

Description

int gzseek ( resource zp, int offset)

Sets the file position indicator for the file referenced by zp to offset bytes into the file stream. Equivalent to calling (in C) gzseek(zp, offset, SEEK_SET).

If the file is opened for reading, this function is emulated but can be extremely slow. If the file is opened for writing, only forward seeks are supported; gzseek then compresses a sequence of zeroes up to the new starting position.

Upon success, returns 0; otherwise, returns -1. Note that seeking past EOF is not considered an error.

See also gztell() and gzrewind().

Zurück | Zum Anfang | Nach vorne
gzrewind | Nach oben | gztell


gztell

(PHP 3, PHP 4 , PHP 5)

gztell -- Tell gz-file pointer read/write position

Description

int gztell ( resource zp)

Returns the position of the file pointer referenced by zp; i.e., its offset into the file stream.

If an error occurs, returns FALSE.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen(), gzseek() and gzrewind().

Zurück | Zum Anfang | Nach vorne
gzseek | Nach oben | gzuncompress


gzuncompress

(PHP 4 >= 4.0.1, PHP 5)

gzuncompress -- Uncompress a deflated string

Description

string gzuncompress ( string data [, int length])

This function takes data compressed by gzcompress() and returns the original uncompressed data or FALSE on error. The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length.

See also gzdeflate(),
gzinflate(),
gzcompress(),
gzencode().

Zurück | Zum Anfang | Nach vorne
gztell | Nach oben | gzwrite


gzwrite

(PHP 3, PHP 4 , PHP 5)

gzwrite -- Binary-safe gz-file write

Description

int gzwrite ( resource zp, string string [, int length])

gzwrite() writes the contents of string to the gz-file stream pointed to by zp. If the length argument is given, writing will stop after length (uncompressed) bytes have been written or the end of string is reached, whichever comes first.

gzwrite() returns the number of (uncompressed) bytes written to the gz-file stream pointed to by zp.

Note that if the length argument is given, then the magic_quotes_runtime configuration option will be ignored and no slashes will be stripped from string.

See also gzread(), gzopen(), and gzputs().

Zurück | Zum Anfang | Nach vorne
gzuncompress | Nach oben | readgzfile


readgzfile

(PHP 3, PHP 4 , PHP 5)

readgzfile -- Output a gz-file

Description

int readgzfile ( string filename [, int use_include_path])

Reads a file, decompresses it and writes it to standard output.

readgzfile() can be used to read a file which is not in gzip format; in this case readgzfile() will directly read from the file without decompression.

Returns the number of (uncompressed) bytes read from the file. If an error occurs, FALSE is returned and unless the function was called as @readgzfile, an error message is printed.

The file filename will be opened from the filesystem and its contents written to standard output.

You can use the optional second parameter and set it to "1", if you want to search for the file in the include_path, too.

See also gzpassthru(), gzfile(), and gzopen().

Zurück | Zum Anfang | Nach vorne
gzwrite | Nach oben | zlib_get_coding_type


zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5)

zlib_get_coding_type -- Returns the coding type used for output compression

Description

string zlib_get_coding_type ( void )

Returns the coding type used for output compression. Possible return values are gzip, deflate, or FALSE

See also the zlib.output_compression directive.

Zurück | Zum Anfang | Nach vorne
readgzfile | Nach oben | Zend API


Zend API

PHP Handbuch
Zurück Nach vorne

VI. Zend API

Hacking the Core of PHP

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Inhaltsverzeichnis
24. Overview
25. Extension Possibilities
26. Source Layout
27. PHP's Automatic Build System
28. Creating Extensions
29. Using Extensions
30. Troubleshooting
31. Source Discussion
32. Accepting Arguments
33. Creating Variables
34. Duplicating Variable Contents: The Copy Constructor
35. Returning Values
36. Printing Information
37. Startup and Shutdown Functions
38. Calling User Functions
39. Initialization File Support
40. Where to Go from Here
41. Reference: Some Configuration Macros
42. API Macros
Hacking the Core of PHP

Zurück | Zum Anfang | Nach vorne
zlib_get_coding_type |  | Overview


Overview

PHP Handbuch
Zurück Nach vorne

Kapitel 24. Overview

Inhaltsverzeichnis
What Is Zend? and What Is PHP?

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated (see Abbildung 24-1). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.

Abbildung 24-1. The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Zurück | Zum Anfang | Nach vorne
Zend API | Nach oben | Extension Possibilities


Extension Possibilities

PHP Handbuch
Zurück Nach vorne

Kapitel 25. Extension Possibilities

Inhaltsverzeichnis
External Modules
Built-in Modules
The Zend Engine

As shown in Abbildung 24-1 above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
External modules don't require recompiling of PHP. | The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. | External additional files clutter up the disk.
 | Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).

To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Zurück | Zum Anfang | Nach vorne
Overview | Nach oben | Built-in Modules


Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
No need to load the module specifically; the functionality is instantly available. | Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. | The PHP binary grows and consumes more memory.

Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

Zurück | Zum Anfang | Nach vorne
Extension Possibilities | Nach oben | The Zend Engine


The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Zurück | Zum Anfang | Nach vorne
Built-in Modules | Nach oben | Source Layout


Source Layout

PHP Handbuch
Zurück Nach vorne

Kapitel 26. Source Layout

Inhaltsverzeichnis
Extension Conventions
Macros
Memory Management
Directory and File Functions
String Handling
Complex Types

Anmerkung: Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at http://www.apache.org/) and, of course, with PHP (available at http://www.php.net/ - does it need to be said?).

Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory | Contents
php4 | Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php4/ext | Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php4/main | This directory contains the main php macros and definitions. (important)
php4/pear | Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php4/sapi | Contains the code for the different server abstraction layers.
php4/TSRM | Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
php4/Zend | Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php4/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php4/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php4/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Zurück | Zum Anfang | Nach vorne
The Zend Engine | Nach oben | Macros


Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Zurück | Zum Anfang | Nach vorne
Source Layout | Nach oben | Memory Management


Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function | Description
emalloc() | Serves as replacement for malloc().
efree() | Serves as replacement for free().
estrdup() | Serves as replacement for strdup().
estrndup() | Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() | Serves as replacement for calloc().
erealloc() | Serves as replacement for realloc().

emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.

Warnung

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Zurück | Zum Anfang | Nach vorne
Macros | Nach oben | Directory and File Functions


Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function | Regular C Function
V_GETCWD() | getcwd()
V_FOPEN() | fopen()
V_OPEN() | open()
V_CHDIR() | chdir()
V_GETWD() | getwd()
V_CHDIR_FILE() | Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() | stat()
V_LSTAT() | lstat()

Zurück | Zum Anfang | Nach vorne
Memory Management | Nach oben | String Handling


String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Zurück | Zum Anfang | Nach vorne
Directory and File Functions | Nach oben | Complex Types


Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Anmerkung: To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

Zurück | Zum Anfang | Nach vorne
String Handling | Nach oben | PHP's Automatic Build System


PHP's Automatic Build System

PHP Handbuch
Zurück Nach vorne

Kapitel 27. PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see http://www.gnu.org/manual/m4/html_mono/m4.html)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:
:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in Beispiel 27-1 is a bit more complex:

Beispiel 27-1. The default config.m4.

dnl $Id: Extending_Zend_Build.xml,v 1.8 2002/10/10 18:13:11 imajes Exp $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":
if test "$PHP_MY_MODULE" == "yes"; then dnl
    Action.. PHP_EXTENSION(my_module, $ext_shared)
    fi
This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Zurück | Zum Anfang | Nach vorne
Complex Types | Nach oben | Creating Extensions


Creating Extensions

PHP Handbuch
Zurück Nach vorne

Kapitel 28. Creating Extensions

Inhaltsverzeichnis
Compiling Modules

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. Beispiel 28-1 shows the source.

Beispiel 28-1. A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Anmerkung: The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make. To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

--enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in Beispiel 28-1 can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually. To compile your modules manually, you need the following commands:

Action | Command
Compiling | cc -fpic -DCOMPILE_DL=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking | cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>

The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Zurück | Zum Anfang | Nach vorne
PHP's Automatic Build System | Nach oben | Using Extensions


Using Extensions

PHP Handbuch
Zurück Nach vorne

Kapitel 29. Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in Beispiel 29-1. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Warnung

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Beispiel 29-1. A test file for first_module.so.

<?php

// remove next comment if necessary
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print("We sent '$param' and got '$return'");

?>

Calling this PHP file in your Web browser should give you the output shown in Abbildung 29-1.

Abbildung 29-1. Output of first_module.php.

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Zurück | Zum Anfang | Nach vorne
Creating Extensions | Nach oben | Troubleshooting


Troubleshooting

PHP Handbuch
Zurück Nach vorne

Kapitel 30. Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Zurück | Zum Anfang | Nach vorne
Using Extensions | Nach oben | Source Discussion


Source Discussion

PHP Handbuch
Zurück Nach vorne

Kapitel 31. Source Discussion

Inhaltsverzeichnis
Module Structure
Header File Inclusions
Declaring Exported Functions
Declaration of the Zend Function Block
Declaration of the Zend Module Block
Creation of get_module()
Implementation of All Exported Functions
Summary

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Zurück | Zum Anfang | Nach vorne
Troubleshooting | Nach oben | Header File Inclusions


Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Zurück | Zum Anfang | Nach vorne
Source Discussion | Nach oben | Declaring Exported Functions


Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:
ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:
void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:
void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see Tabelle 31-1 for descriptions).

Tabelle 31-1. Zend's Parameters to Functions Called from PHP

Parameter | Description
ht | The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value | This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr | Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used | This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals | This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Zurück | Zum Anfang | Nach vorne
Header File Inclusions | Nach oben | Declaration of the Zend Function Block


Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in Beispiel 31-1.

Beispiel 31-1. Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;

Entry | Description
fname | Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler | Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types | Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.

In the example above, the declaration looks like this:
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};
You can see that the last entry in the list always has to be {NULL, NULL, NULL}. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

Anmerkung: You cannot use the predefined macros for the end marker, as these would try to refer to a function named "NULL"!

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

Tabelle 31-2 shows a list of all the macros that you can use to define functions.

Tabelle 31-2. Macros for Defining Functions

Macro Name | Description
ZEND_FE(name, arg_types) | Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) | Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) | Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) | Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) | Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Zurück | Zum Anfang | Nach vorne
Declaring Exported Functions | Nach oben | Declaration of the Zend Module Block


Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in Beispiel 31-2.

Beispiel 31-2. Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;

    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};

Entry | Description
size, zend_api, zend_debug and zts | Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name | Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions | Points to the Zend function block, discussed in the preceding section.
module_startup_func | This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func | This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func | This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func | This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func | When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version | The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements | These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};
This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in Tabelle 31-3. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Tabelle 31-3. Macros to Declare Startup and Shutdown Functions

Macro | Description
ZEND_MINIT(module) | Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) | Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) | Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) | Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) | Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Zurück | Zum Anfang | Nach vorne
Declaration of the Zend Function Block | Nach oben | Creation of get_module()


Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}
The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Zurück | Zum Anfang | Nach vorne
Creation of get_module() | Nach oben | Summary


Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Zurück | Zum Anfang | Nach vorne
Implementation of All Exported Functions | Nach oben | Accepting Arguments


Accepting Arguments

PHP Handbuch
Zurück Nach vorne

Kapitel 32. Accepting Arguments

Inhaltsverzeichnis
Determining the Number of Arguments
Retrieving Arguments
Old way of retrieving arguments (deprecated)
Dealing with a Variable Number of Arguments/Optional Parameters
Accessing Arguments
Dealing with Arguments Passed by Reference
Assuring Write Safety for Other Parameters

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:
if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message (see Abbildung 32-1).

Abbildung 32-1. WRONG_PARAM_COUNT in action.

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:
ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Zurück | Zum Anfang | Nach vorne
Summary | Nach oben | Retrieving Arguments


Retrieving Arguments

New parameter parsing API: This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0 .

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameteres, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:
Warning - ini_get_all() requires at most 1 parameter, 2 given
     Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:

  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:
/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:
long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Zurück | Zum Anfang | Nach vorne
Accepting Arguments | Nach oben | Old way of retrieving arguments (deprecated)


Old way of retrieving arguments (deprecated)

Deprecated parameter parsing API: This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():
zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;
All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:
zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Zurück | Zum Anfang | Nach vorne
Retrieving Arguments | Nach oben | Dealing with a Variable Number of Arguments/Optional Parameters


Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:
zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 5)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;
First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in Beispiel 32-1. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Beispiel 32-1. PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_P(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Zurück | Zum Anfang | Nach vorne
Old way of retrieving arguments (deprecated) | Nach oben | Accessing Arguments


Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see Tabelle 32-1).

Note: All conversion functions expect a **zval as parameter.

Tabelle 32-1. Argument Conversion Functions

Function | Description
convert_to_boolean_ex() | Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() | Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() | Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() | Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) | Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) | Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) | Forces the type to become a NULL value, meaning empty.

Anmerkung: You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM. Abbildung 32-2 shows the output.

Abbildung 32-2. Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:
zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));
After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in Beispiel 32-2.

Beispiel 32-2. PHP/Zend zval type definition.

typedef pval zval;

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;					/* long value */
    double dval;				/* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;				/* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;		/* value */
    unsigned char type;	/* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see Tabelle 32-2, Tabelle 32-3 and Tabelle 32-4.

Tabelle 32-2. Zend zval Structure

Entry | Description
value | Union containing this variable's contents. See Tabelle 32-3 for a description.
type | Contains this variable's type. For a list of available types, see Tabelle 32-4.
is_ref | 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount | The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.

Tabelle 32-3. Zend zvalue_value Structure

Entry | Description
lval | Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval | Use this property if the variable is of the type IS_DOUBLE.
str | This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht | This entry points to the variable's hash table entry if the variable is an array.
obj | Use this property if the variable is of the type IS_OBJECT.

Tabelle 32-4. Zend Variable Type Constants

Constant | Description
IS_NULL | Denotes a NULL (empty) value.
IS_LONG | A long (integer) value.
IS_DOUBLE | A double (floating point) value.
IS_STRING | A string.
IS_ARRAY | Denotes an array.
IS_OBJECT | An object.
IS_BOOL | A Boolean value.
IS_RESOURCE | A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT | A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Zurück | Zum Anfang | Nach vorne
Dealing with a Variable Number of Arguments/Optional Parameters | Nach oben | Dealing with Arguments Passed by Reference


Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:
my_function(&$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in Beispiel 32-3.

Beispiel 32-3. Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(*parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(*parameter, 10);

Zurück | Zum Anfang | Nach vorne
Accessing Arguments | Nach oben | Assuring Write Safety for Other Parameters


Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:
zval **parameter;

/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Zurück | Zum Anfang | Nach vorne
Dealing with Arguments Passed by Reference | Nach oben | Creating Variables


Creating Variables

PHP Handbuch
Zurück Nach vorne

Kapitel 33. Creating Variables

Inhaltsverzeichnis
Overview
Longs (Integers)
Doubles (Floats)
Strings
Booleans
Arrays
Objects
Resources
Macros for Automatic Global Variable Creation
Creating Constants

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable);

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():
zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable);
The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
Beispiel 33-1 shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Beispiel 33-1. Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}

Zurück | Zum Anfang | Nach vorne
Assuring Write Safety for Other Parameters | Nach oben | Longs (Integers)


Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see Beispiel 33-2).

Beispiel 33-2. Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long->type = IS_LONG;
new_long->value.lval = 10;
Alternatively, you can use the macro ZVAL_LONG:
zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Zurück | Zum Anfang | Nach vorne
Creating Variables | Nach oben | Doubles (Floats)


Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.
zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double->type = IS_DOUBLE;
new_double->value.dval = 3.45;
Alternatively, you can use the macro ZVAL_DOUBLE:
zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Zurück | Zum Anfang | Nach vorne
Longs (Integers) | Nach oben | Strings


Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string->type = IS_STRING;
new_string->value.str.len = strlen(string_contents);
new_string->value.str.val = estrdup(string_contents);
Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:
new_string->type = IS_STRING;
new_string->value.str.len = 0;
new_string->value.str.val = empty_string;
Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):
MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Zurück | Zum Anfang | Nach vorne
Doubles (Floats) | Nach oben | Booleans


Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:
zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool->type = IS_BOOL;
new_bool->value.lval = 1;
The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Zurück | Zum Anfang | Nach vorne
Strings | Nach oben | Arrays


Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().
zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);
array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. Tabelle 33-1, Tabelle 33-2 and Tabelle 33-3 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Tabelle 33-1. Zend's API for Associative Arrays

Function | Description
add_assoc_long(zval *array, char *key, long n);() | Adds an element of type long.
add_assoc_unset(zval *array, char *key);() | Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() | Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() | Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() | Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () | Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tabelle 33-2. Zend's API for Indexed Arrays, Part 1

Function | Description
add_index_long(zval *array, uint idx, long n);() | Adds an element of type long.
add_index_unset(zval *array, uint idx);() | Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() | Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() | Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() | Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_index_zval(zval *array, uint idx, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tabelle 33-3. Zend's API for Indexed Arrays, Part 2

Function | Description
add_next_index_long(zval *array, long n);() | Adds an element of type long.
add_next_index_unset(zval *array);() | Adds an unset element.
add_next_index_bool(zval *array, int b);() | Adds a Boolean element.
add_next_index_resource(zval *array, int r);() | Adds a resource to the array.
add_next_index_double(zval *array, double d);() | Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_next_index_zval(zval *array, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update()() for associative arrays (see Beispiel 33-3) and zend_hash_index_update() for indexed arrays (see Beispiel 33-4):

Beispiel 33-3. Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array->value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Beispiel 33-4. Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array->value.ht, key, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Zurück | Zum Anfang | Nach vorne
Booleans | Nach oben | Objects


Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():
zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}
You can use the functions described in Tabelle 33-4 to add members to your object.

Tabelle 33-4. Zend's API for Object Creation

Function | Description
add_property_long(zval *object, char *key, long l);() | Adds a long to the object.
add_property_unset(zval *object, char *key);() | Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() | Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() | Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() | Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() | Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() | Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() | Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Zurück | Zum Anfang | Nach vorne
Arrays | Nach oben | Resources


Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Anmerkung: In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld | Normal resource destruction handler callback
pld | Pesistent resource destruction handler callback
type_name | A string specifying the name of your resource. It's always a good thing to specify an unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number | The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.

The return value is an unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:
void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);
The passed rsrc is a pointer to the following structure:
typedef struct _zend_rsrc_list_entry {

    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;
The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:
typedef struct {

    int resource_link;
    int resource_type;

} my_resource;
Our resource destruction handler is probably going to look something like this:
void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Anmerkung: One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:

  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

// Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_resource_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h . Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:
int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);

rsrc_result | This is an already initialized zval * container.
rsrc_pointer | Your resource pointer you want to store.
rsrc_type | The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.

The return value is an unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:
rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);

    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;
The returned rsrc_id uniquly identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:
RETURN_RESOURCE(rsrc_id)

Anmerkung: It is common practice that if you want to return the resource immidiately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:
ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)

rsrc | This is your pointer which will point to your previously registered resource.
rsrc_type | This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id | This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id | This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name | This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type | The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.

This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Zurück | Zum Anfang | Nach vorne
Objects | Nach oben | Macros for Automatic Global Variable Creation


Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table Tabelle 33-5 describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Tabelle 33-5. Macros for Global Variable Creation

Macro | Description
SET_VAR_STRING(name, value) | Creates a new string.
SET_VAR_STRINGL(name, value, length) | Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) | Creates a new long.
SET_VAR_DOUBLE(name, value) | Creates a new double.

Zurück | Zum Anfang | Nach vorne
Resources | Nach oben | Creating Constants


Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in Tabelle 33-6. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:
// register a new constant of type "long"
     REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
     CONST_PERSISTENT);
There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Tabelle 33-6. Macros for Creating Constants

Macro | Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) | Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) | Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) | Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Zurück | Zum Anfang | Nach vorne
Macros for Automatic Global Variable Creation | Nach oben | Duplicating Variable Contents: The Copy Constructor


Duplicating Variable Contents: The Copy Constructor

PHP Handbuch
Zurück Nach vorne

Kapitel 34. Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the lvalue (result of the evaluation of the left side of the operator) to the rvalue (same for the right side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
   return;
}

// do modifications to the parameter here

// now we want to return the modified container:
*return_value == *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Zurück | Zum Anfang | Nach vorne
Creating Constants | Nach oben | Returning Values


Returning Values

PHP Handbuch
Zurück Nach vorne

Kapitel 35. Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in Tabelle 35-1 and Tabelle 35-2.

Anmerkung: The macros in Tabelle 35-1 automatically return from your function, those in Tabelle 35-2 only set the return value; they don't return from your function.

Tabelle 35-1. Predefined Macros for Returning Values from a Function

Macro | Description
RETURN_RESOURCE(resource) | Returns a resource.
RETURN_BOOL(bool) | Returns a Boolean.
RETURN_NULL() | Returns nothing (a NULL value).
RETURN_LONG(long) | Returns a long.
RETURN_DOUBLE(double) | Returns a double.
RETURN_STRING(string, duplicate) | Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) | Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() | Returns an empty string.
RETURN_FALSE | Returns Boolean false.
RETURN_TRUE | Returns Boolean true.

Tabelle 35-2. Predefined Macros for Setting the Return Value of a Function

Macro | Description
RETVAL_RESOURCE(resource) | Sets the return value to the specified resource.
RETVAL_BOOL(bool) | Sets the return value to the specified Boolean value.
RETVAL_NULL | Sets the return value to NULL.
RETVAL_LONG(long) | Sets the return value to the specified long.
RETVAL_DOUBLE(double) | Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) | Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) | Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING | Sets the return value to an empty string.
RETVAL_FALSE | Sets the return value to Boolean false.
RETVAL_TRUE | Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Zurück | Zum Anfang | Nach vorne
Duplicating Variable Contents: The Copy Constructor | Nach oben | Printing Information


Printing Information

PHP Handbuch
Zurück Nach vorne

Kapitel 36. Printing Information

Inhaltsverzeichnis
zend_printf()
zend_error()
Including Output in phpinfo()
Execution Information

Often it's necessary to print messages to the output stream from your module, just as print() would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

Zurück | Zum Anfang | Nach vorne
Returning Values | Nach oben | zend_error()


Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Beispiel 36-2.

Beispiel 36-2. Printing execution information.

zend_printf("The name of the current function is %s<br>", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s<br>", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i<br>", zend_get_executed_lineno(TSRMLS_C));

Zurück | Zum Anfang | Nach vorne
Including Output in phpinfo() | Nach oben | Startup and Shutdown Functions


Startup and Shutdown Functions

PHP Handbuch
Zurück Nach vorne

Kapitel 37. Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Zurück | Zum Anfang | Nach vorne
Execution Information | Nach oben | Calling User Functions


Calling User Functions

PHP Handbuch
Zurück Nach vorne

Kapitel 38. Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

Beispiel 38-1 shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Beispiel 38-1. Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type<br>", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{

    print("We are in the test function!<br>");

    return("hello");

}

$return_value = call_userland("test_function");

print("Return value: \"$return_value\"<br>");
?>

Zurück | Zum Anfang | Nach vorne
Startup and Shutdown Functions | Nach oben | Initialization File Support


Initialization File Support

PHP Handbuch
Zurück Nach vorne

Kapitel 39. Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.
PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()
The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:
PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s<br>", new_value);

    return(SUCCESS);

}
The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:
#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)
All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in Tabelle 39-1.

Tabelle 39-1. Macros to Access Initialization Entries in PHP

Macro | Description
INI_INT(name) | Returns the current value of entry name as integer (long).
INI_FLT(name) | Returns the current value of entry name as float (double).
INI_STR(name) | Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) | Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) | Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) | Returns the original value of entry name as float (double).
INI_ORIG_STR(name) | Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) | Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():
ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Zurück | Zum Anfang | Nach vorne
Calling User Functions | Nach oben | Where to Go from Here


Where to Go from Here

PHP Handbuch
Zurück Nach vorne

Kapitel 40. Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Zurück | Zum Anfang | Nach vorne
Initialization File Support | Nach oben | Reference: Some Configuration Macros


Reference: Some Configuration Macros

PHP Handbuch
Zurück Nach vorne

Kapitel 41. Reference: Some Configuration Macros

Inhaltsverzeichnis
config.m4

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in Tabelle 41-1.

Tabelle 41-1. M4 Macros for config.m4

Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

Zurück | Zum Anfang | Nach vorne
Where to Go from Here | Nach oben | API Macros


API Macros

PHP Handbuch
Zurück Nach vorne

Kapitel 42. API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see Tabelle 42-1).

Tabelle 42-1. API Macros for Accessing zval Containers

Macro | Refers to
Z_LVAL(zval) | (zval).value.lval
Z_DVAL(zval) | (zval).value.dval
Z_STRVAL(zval) | (zval).value.str.val
Z_STRLEN(zval) | (zval).value.str.len
Z_ARRVAL(zval) | (zval).value.ht
Z_LVAL_P(zval) | (*zval).value.lval
Z_DVAL_P(zval) | (*zval).value.dval
Z_STRVAL_P(zval_p) | (*zval).value.str.val
Z_STRLEN_P(zval_p) | (*zval).value.str.len
Z_ARRVAL_P(zval_p) | (*zval).value.ht
Z_LVAL_PP(zval_pp) | (**zval).value.lval
Z_DVAL_PP(zval_pp) | (**zval).value.dval
Z_STRVAL_PP(zval_pp) | (**zval).value.str.val
Z_STRLEN_PP(zval_pp) | (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) | (**zval).value.ht

Zurück | Zum Anfang | Nach vorne
Reference: Some Configuration Macros | Nach oben | PHP API: Schnittstellen für Programmierer


PHP API: Schnittstellen für Programmierer

PHP Handbuch
Zurück Nach vorne

VII. PHP API: Schnittstellen für Programmierer

Inhaltsverzeichnis
43. Streams API for PHP Extension Authors

Zurück | Zum Anfang | Nach vorne
API Macros |  | Streams API for PHP Extension Authors


Streams API for PHP Extension Authors

PHP Handbuch
Zurück Nach vorne

Kapitel 43. Streams API for PHP Extension Authors

Inhaltsverzeichnis
Overview
Streams Basics
Streams as Resources
Streams Common API Reference
Streams Dir API Reference
Streams File API Reference
Streams Socket API Reference
Streams Structures
Streams Constants

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Anmerkung: The functions in this chapter are for use in the PHP source code and are not PHP functions. Userland stream functions can be found in the Stream Reference.

Zurück | Zum Anfang | Nach vorne
PHP API: Schnittstellen für Programmierer | Nach oben | Streams Basics


Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Beispiel 43-1. simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];

        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

Tabelle 43-1. ANSI stdio equivalent functions in the Streams API

ANSI Stdio Function | PHP Streams Function | Notes
fopen | php_stream_open_wrapper | Streams includes additional parameters
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite | php_stream_write | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Same semantics as puts, NOT fputs
fstat | php_stream_stat | Streams has a richer stat structure

Zurück | Zum Anfang | Nach vorne
Streams API for PHP Extension Authors | Nach oben | Streams as Resources


Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Beispiel 43-2. How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;

    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;

    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");

    RETURN_TRUE();
}

Beispiel 43-3. How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;

    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);

    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Anmerkung: Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Zurück | Zum Anfang | Nach vorne
Streams Basics | Nach oben | Streams Common API Reference


Streams Common API Reference

Inhaltsverzeichnis
php_stream_stat_path -- Gets the status for a file or URL
php_stream_stat -- Gets the status for the underlying storage associated with a stream
php_stream_open_wrapper -- Opens a stream on a file or URL
php_stream_read -- Read a number of bytes from a stream into a buffer
php_stream_write -- Write a number of bytes from a buffer to a stream
php_stream_eof -- Check for an end-of-file condition on a stream
php_stream_getc -- Read a single byte from a stream
php_stream_gets -- Read a line of data from a stream into a buffer
php_stream_close -- Close a stream
php_stream_flush -- Flush stream buffers to storage
php_stream_seek -- Reposition a stream
php_stream_tell -- Determine the position of a stream
php_stream_copy_to_stream -- Copy data from one stream to another
php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer
php_stream_make_seekable -- Convert a stream into a stream is seekable
php_stream_cast -- Convert a stream into another form, such as a FILE* or socket
php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket
php_stream_is_persistent -- Determines if a stream is a persistent stream
php_stream_is -- Determines if a stream is of a particular type
php_stream_passthru -- Outputs all remaining data from a stream
php_register_url_stream_wrapper -- Registers a wrapper with the Streams API
php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API
php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context
php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*
php_stream_filter_register_factory -- Registers a filter factory with the Streams API
php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Zurück | Zum Anfang | Nach vorne
Streams as Resources | Nach oben | php_stream_stat_path


Streams Dir API Reference

Inhaltsverzeichnis
php_stream_opendir -- Open a directory for file enumeration
php_stream_readdir -- Fetch the next directory entry from an opened dir
php_stream_rewinddir -- Rewind a directory stream to the first entry
php_stream_closedir -- Close a directory stream and release resources

The functions listed in this section work on local files, as well as remote files (provided that the wrapper supports this functionality!).

Zurück | Zum Anfang | Nach vorne
php_stream_filter_unregister_factory | Nach oben | php_stream_opendir


Streams File API Reference

Inhaltsverzeichnis
php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream
php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream
php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Zurück | Zum Anfang | Nach vorne
php_stream_closedir | Nach oben | php_stream_fopen_from_file


Streams Socket API Reference

Inhaltsverzeichnis
php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream
php_stream_sock_open_host -- Open a connection to a host and return a stream
php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Zurück | Zum Anfang | Nach vorne
php_stream_fopen_temporary_file | Nach oben | php_stream_sock_open_from_socket


Streams Structures

Inhaltsverzeichnis
struct php_stream_statbuf -- Holds information about a file or URL
struct php_stream_dirent -- Holds information about a single file during dir scanning
struct php_stream_ops -- Holds member functions for a stream implementation
struct php_stream_wrapper -- Holds wrapper properties and pointer to operations
struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation
struct php_stream_filter -- Holds filter properties and pointer to operations
struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Zurück | Zum Anfang | Nach vorne
php_stream_sock_open_unix | Nach oben | struct php_stream_statbuf


Streams Constants

Inhaltsverzeichnis
Stream open options -- Affects the operation of stream factory functions

Zurück | Zum Anfang | Nach vorne
struct php_stream_filter_ops | Nach oben | Stream open options


FAQ: Frequently Asked Questions

PHP Handbuch
Zurück Nach vorne

VIII. FAQ: Frequently Asked Questions

Inhaltsverzeichnis
44. Allgemeine Informationen
45. Mailing-Listen
46. Obtaining PHP
47. Database issues
48. Installation
49. Probleme bei der Compilierung
50. PHP benutzen
51. PHP und HTML
52. PHP and COM
53. PHP und andere Sprachen
54. Von PHP 2 auf PHP 3 umsteigen
55. Von PHP 3 auf PHP 4 umsteigen
56. Verschiedene Fragen

Zurück | Zum Anfang | Nach vorne
Stream open options |  | Allgemeine Informationen


Allgemeine Informationen

PHP Handbuch
Zurück Nach vorne

Kapitel 44. Allgemeine Informationen

Dieses Kaptiel beheinhaltet allgemeine Fragen zu PHP: Was es ist und was es tut.

1. Was ist PHP?
2. Für was steht PHP?
3. Wie stehen die verschiedenen PHP-Versionen zueinander?
4. Kann ich mehrere verschiedene PHP-Versionen zur selben Zeit laufen lassen?
5. Was sind die Unterschiede zwischen PHP 3 und PHP 4?
6. Ich glaube, ich habe einen Bug gefunden!

1. Was ist PHP?

Aus dem Vorwort des Handbuches:

PHP ist die Abkürzung für "PHP: Hypertext Preprocessor", eine weitverbreitete Open Source Skriptsprache speziell für Webentwicklungen. PHP läßt sich in HTML einbinden. Seine Syntax erinnert an C, Java und Perl und es ist einfach zu erlernen. Das Hauptziel dieser Sprache ist es, Webentwicklern die Möglichkeit zu geben, schnell dynamisch generierte Webseiten zu erzeugen.

Eine Einführung in PHP von Stig Sæther Bakken ist hier auf der Zend Website verfügbar. Desweiteren gibt es das PHP Conference Material, das in der Regel frei verfügbar ist.

2. Für was steht PHP?

PHP steht für PHP: Hypertext Preprocessor. Das verwirrt einige Menschen, da das erste Wort der Abkürzung die Abkürzung ist. Dieser Typ von Abkürzung wird rekursive Abkürzung genannt. Wer sich weiter für das Thema der rekursiven Abkürzungen interessiert, findet im Free On-Line Dictionary of Computing weitere Informationen dazu.

3. Wie stehen die verschiedenen PHP-Versionen zueinander?

PHP/FI 2.0 ist eine frühe und nicht mehr unterstützte Version von PHP. PHP 3 ist der Nachfolger von PHP/FI 2.0 und wesentlich besser. PHP 4 ist die aktuellste Generation von PHP, die die Zend engine als Sprachkern nutzt.

4. Kann ich mehrere verschiedene PHP-Versionen zur selben Zeit laufen lassen?

Ja. Weitere Informationen dazu finden sich in der Datei INSTALL, die der Source-Distribution von PHP beiliegt. Sie sollten auch den dazu gehörigen Anhang lesen.

5. Was sind die Unterschiede zwischen PHP 3 und PHP 4?

Es existieren einige Artikel dazu, die von den Autoren von PHP 4 verfasst wurden. Eine kurze Zusammenfassung der neuen Features:

  • Erweiterte API

  • Standardisierter Build-Prozess unter UNIX

  • Allgemein gehaltenes Webserver-Interface, es werden auch multi-threaded Webserver unterstützt.

  • Verbesserte Syntax-Highlighter

  • Nativer HTTP-Session-Support

  • Output buffering Support

  • Mächtiges Konfigurations-System

Weitere Informationen dazu gibt es im What's new in PHP 4 overview. Wenn Sie von PHP 3 zu PHP 4 migrieren möchten, so finden sie weitere Hilfestellungen dazu im Anhang.

6. Ich glaube, ich habe einen Bug gefunden!

Sie sollten die PHP Bug-Datenbank aufrufen und herausfinden, ob es sich bei dem Bug um einen bereits bekannten Bug handelt. Ist der Bug noch nicht bekannt, können Sie diesen über das Reportformular posten. Wenn Sie das Reportformular verwenden, bekommt ihr Bug automatisch eine Nummer zugewiesen, so das Sie später wiederkehren und Anhand der Nummer herausfinden können, ob der Bug gefixed wurde. Die Bug-Datenbank ist unter http://bugs.php.net/ zu finden.

Zurück | Zum Anfang | Nach vorne
FAQ: Frequently Asked Questions | Nach oben | Mailing-Listen


Mailing-Listen

PHP Handbuch
Zurück Nach vorne

Kapitel 45. Mailing-Listen

In dieser Rubrik finden Sie Informationen, wie Sie mit der PHP-Community in Kontakt treten können. Wir empfehlen Ihnen die Mailing-Listen.

1. Gibt es PHP-Mailing-Listen?
2. Gibt es auch andere Communities?
3. Hilfe! Ich kann eine der Mailing-Listen nicht abonnieren / abbestellen!
4. Gibt es ein Archiv der Mailing-Listen?
5. Was kann ich die Mailing-Listen fragen?
6. Welche Informationen soll ich mitschicken, wenn ich an die Mailing-Liste schreibe?

1. Gibt es PHP-Mailing-Listen?

Natürlich! Es gibt eine ganze Reihe von Mailing-Listen für verschiedene Themen. Eine komplette Liste der Mailing-Liste finden Sie auf unserer Support-Seite.

Die allgemeinste Mailing-Liste ist php-general. Um diese Liste zu abonnieren, schicken Sie eine E-Mail an ???. Betreff und Inhalt der E-Mail spielen keine Rolle. Um die Liste abzubestellen, schicken Sie eine E-Mail an ???.

Sie können die Listen auch über das Web-Interface auf unserer Support-Seite abonnieren oder abbestellen.

2. Gibt es auch andere Communities?

Auf der ganzen Welt gibt es unzählige Communities. Auf unserer Support-Seite finden Sie z.B. Links zu IRC-Servern oder zu Mailing-Listen in verschiedenen Sprachen.

3. Hilfe! Ich kann eine der Mailing-Listen nicht abonnieren / abbestellen!

Wenn Sie Probleme haben, die php-general-Mailing-Liste zu abonnieren oder abzubestellen, dann kann es daran liegen, dass die Mailing-Listen-Software nicht herausfinden kann, welche E-Mail-Adresse benutzt werden soll. Wenn Ihre E-Mail-Adresse joeblow@example.com lautet, können Sie Ihren Abo-Wunsch an php-general-subscribe-joeblow=example.com@lists.php.net schicken; falls Sie die Liste abbestellen möchten, können Sie eine E-Mail an php-general-unsubscribe-joeblow=example.com@lists.php.net schicken. Für die anderen Mailing-Listen können Sie ähnliche Adressen benutzen.

4. Gibt es ein Archiv der Mailing-Listen?

Ja, Sie finden eine Liste der Archiv-Seiten auf unserer Support-Seite Die Mailing-Listen-Artikel werden auch als News-Postings archiviert. Den News-Server können Sie mit einem Newsreader unter ??? erreichen. Es gibt auch ein experimentelles Web-Interface für den Newsserver unter ???.

5. Was kann ich die Mailing-Listen fragen?

PHP wird immer umfangreicher und beliebter. Aus diesem Grund ist der Verkehr auf der php-general-Mailing-Liste stark angestiegen. Momentan werden täglich über die Liste zwischen 150 und 200 Artikel versendet. Daher bitten wir Sie, die Liste nur dann zu nutzen, wenn Sie nirgendwo eine Antwort auf Ihre Frage gefunden haben.

Bevor Sie an die Liste schreiben, schauen Sie bitte in diese FAQ und das Handbuch, ob Sie dort vielleicht schon die gesuchte Antwort finden. Falls Sie dort nicht fündig werden, schauen Sie bitte in die Archive der Mailing-Listen (siehe oben). Wenn Sie Probleme mit der Installation oder Konfiguration von PHP haben, stellen Sie bitte sicher, dass Sie die mitgelieferte Dokumentation und die READMEs gelesen haben. Wenn Sie jetzt immer noch keine Antwort gefunden haben, können Sie Ihre Frage gerne an die Mailing-Liste schicken.

Bevor Sie eine Frage stellen, schauen Sie sich bitte die Seite How To Ask Questions The Smart Way an.

6. Welche Informationen soll ich mitschicken, wenn ich an die Mailing-Liste schreibe?

E-Mails wie "Hilfe, ich schaffe es nicht, PHP ans Laufen zu bekommen. Was habe ich falsch gemacht?" sollten unbedingt vermieden werden. Wenn Sie solche Probleme haben, müssen Sie angeben, welches Betriebssystem Sie nutzen, welche PHP-Version sie installieren wollen, in welcher Variante Sie PHP vorliegen haben (vorkompiliert, CVS, RPMs etc.), was Sie bisher schon versucht haben, wo Sie nicht weiterkamen und welche Fehlermeldung sie bekommen haben.

Dies gilt auch für alle anderen Probleme. Sie sollten immer Informationen darüber angeben, was Sie versucht haben, wo Sie nicht weiterkamen, was Sie bereits getan haben und, falls möglich, die genaue Fehlermeldung. Wenn Sie Probleme mit Ihren Quelltexten haben, müssen Sie den Teil, der nicht funktioniert, mitschicken. Allerdings sollten Sie auch nicht mehr Code als nötig mitschicken, sonst wird Ihre E-Mail schlecht lesbar und viele Leute könnten Ihre Frage deswegen ignorieren. Falls Sie sich unsicher sind, wie viele Informationen Sie schicken sollen, dann schicken Sie lieber zu viel als zu wenig.

Ein weiterer wichtiger Punkt ist auch, dass Sie Ihr Problem in der Betreff-Zeile zusammenfassen. Ein Betreff wie "Hilfe!" oder "Was ist das Problem hier?" wird mit Sicherheit von einem Großteil der Leser ignoriert werden.

Außerdem bitten wie Sie, die Seite How To Ask Questions The Smart Way zu lesen, da dies auch für Sie selbst eine große Hilfe sein kann.

Zurück | Zum Anfang | Nach vorne
Allgemeine Informationen | Nach oben | Obtaining PHP


Obtaining PHP

PHP Handbuch
Zurück Nach vorne

Kapitel 46. Obtaining PHP

This section has details about PHP download locations, and OS issues.

1. Where can I obtain PHP?
2. Are pre-compiled binary versions available?
3. Where can I get libraries needed to compile some of the optional PHP extensions?
4. How do I get these libraries to work?
5. I got the latest version of the PHP source code from the CVS repository on my Windows machine, what do I need to compile it?
6. Where do I find the Browser Capabilities File?

1. Where can I obtain PHP?

You can download PHP from any of the members of the PHP network of sites. These can be found at http://www.php.net/. You can also use anonymous CVS to get the absolute latest version of the source. For more information, go to http://www.php.net/anoncvs.php.

2. Are pre-compiled binary versions available?

We only distribute precompiled binaries for Windows systems, as we are not able to compile PHP for every major Linux/Unix platform with every extension combination. Also note, that many Linux distributions come with PHP built in these days. Windows binaries can be downloaded from our Downloads page, for Linux binaries, please visit your distributions website.

3. Where can I get libraries needed to compile some of the optional PHP extensions?

Anmerkung: Those marked with * are not thread-safe libraries, and should not be used with PHP as a server module in the multi-threaded Windows web servers (IIS, Netscape). This does not matter in Unix environments, yet.

  • LDAP (Unix).

  • LDAP* (Unix).

  • LDAP (Unix/Win) : Netscape Directory (LDAP) SDK 1.1.

  • free LDAP server.

  • Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.

  • SNMP* (Unix): .

  • GD* (Unix/Win).

  • mSQL* (Unix).

  • PostgreSQL (Unix).

  • IMAP* (Win/Unix).

  • Sybase-CT* (Linux, libc5) : Available locally.

  • FreeType (libttf):.

  • ZLib (Unix/Win32).

  • expat XML parser (Unix/Win32).

  • PDFLib.

  • mcrypt.

  • mhash.

  • t1lib.

  • dmalloc.

  • aspell.

  • readline.

4. How do I get these libraries to work?

You will need to follow instructions provided with the library. Some of these libraries are detected automatically when you run the 'configure' script of PHP (such as the GD library), and others you will have to enable using '--with-EXTENSION' options to 'configure'. Run 'configure --help' for a listing of these.

5. I got the latest version of the PHP source code from the CVS repository on my Windows machine, what do I need to compile it?

First, you will need Microsoft Visual C++ v6 (v5 may do it also, but we do it with v6), and you will need some support files. See the manual section about building PHP from source on Windows.

6. Where do I find the Browser Capabilities File?

You can find a browscap.ini file at http://www.garykeith.com/browsers/downloads.asp.

Zurück | Zum Anfang | Nach vorne
Mailing-Listen | Nach oben | Database issues


Database issues

PHP Handbuch
Zurück Nach vorne

Kapitel 47. Database issues

Dieser Abschnitt enthält häufige Fragen über die Verbindung von PHP und Datenbanken. PHP kann in der Tat auf praktisch jede verfügbare Datenbank zugreifen.

1. Ich habe gehört, dass es möglich ist, den Microsoft SQL-Server aus PHP anzusprechen. Wie?
2. Kann ich auf Microsoft Access-Datenbanken zugreifen?
3. Ich habe auf PHP 4 upgegradet und jetzt gibt MySQL dauernd folgende Fehlermeldung aus: "Warning: MySQL: Unable to save result set in ...". Was ist passiert?
4. PHP 5 liefert keine MySQL-Client-Bibliotheken mehr mit aus, was bedeutet das für mich? Kann ich MySQL immer noch mit PHP benutzen? Wenn ich es versuche, bekomme ich "function undefined"-Errors, was ist passiert?
5. Nach der Installation der Unterstützung für shared-MySQL stürzt der Apache mit einem coredump an, sobald libphp4.so geladen wird. Kann man das beheben?
6. Wieso bekomme ich so eine Fehlermeldung: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>"?

1. Ich habe gehört, dass es möglich ist, den Microsoft SQL-Server aus PHP anzusprechen. Wie?

Auf einem Windows-Rechner können Sie einfach die eingeschlossene ODBC-Unterstützung mit dem passenden Treiber verwenden.

Auf einem Unix-Rechner können Sie die Sybase-CT-Treiber benutzen, um auf Microsoft SQL-Server zuzugreifen, weil diese ein (zumindest nahezu) kompatibles Protokoll aufweisen. Sybase hat eine freie Version der benötigten Bibliotheken für Linux-Systeme erstellt. Sehen Sie sich auch die Antwort auf die nächste Frage an.

2. Kann ich auf Microsoft Access-Datenbanken zugreifen?

Ja. Sie haben bereits alle nötigen Werkzeuge, wenn sie komplett unter Windows 9x/Me oder NT/2000 arbeiten, wo Sie ODBC und die ODBC-Treiber von Microsoft benutzen können, um auf Microsoft Access-Datenbanken zuzugreifen.

Wenn Sie PHP auf einem Unix-Rechner betreiben und auf MS Access auf einem Windows-Rechner zugreifen wollen, brauchen sie ODBC-Treiber für Unix. OpenLink Software bietet Unix-basierte ODBC-Treiber an, die dazu geeignet sind. Es gibt ein freies Pilotprojekt, in dessen Rahmen Sie eine Evaluationslizenz herunterladen können, die unbeschränkt lauffähig ist. Der Preis für die kommerzielle Version beginnt bei 675 US-$.

Eine weitere Alternative ist es, einen SQL-Server zu benutzen, der ODBC-Treiber für Windows anbietet und diesen dann zu benutzen, um die Daten dort abzulegen, um sie dann von Microsoft Access (über ODBC) und PHP (mit den mitgelieferten Treibern) aus anzusprechen, oder ein dazwischengeschaltetetes Dateiformat zu benutzen, das sowohl Access als auch PHP verstehen, beispielsweise Plaintext oder dBase-Datenbanken. Zu diesem Punkt schreibt Tim Hayes von OpenLink Software:

Eine andere Datenbank als vermittelndes Element zu benutzen ist keine gute Idee, wenn Sie ODBC direkt von PHP aus zur Datenbank benutzen können - etwa mit den Openlink-Treibern. Wenn Sie wirklich ein zwischengeschaltetes Dateiformat benötigen, hat Openlink jetzt Virtuoso (eine virtuelle Datenbank) für NT, Linux und andere Unix-Plattformen herausgebracht. Bitte besuchen Sie unsere Webseite, wenn Sie Virtuoso kostenlos herunterladen wollen.

Eine Möglichkeit, die sich als erfolgreich herausgestellt hat, ist die Benutzung von MySQL und den MyODBC-Treibern unter Windows, um die Datenbanken zu synchronisieren. Steve Lawrence schreibt dazu:

  • Installieren Sie MySQL wie in der Dokumentation beschrieben auf ihrem System. Die neueste Version finden Sie auf www.mysql.com (benutzen Sie eine Mirror-Seite). Es ist keine spezielle Konfiguration nötig, außer dass Sie beim Erzeugen einer Datenbank und der Einrichtung des Benutzeraccounts im Host-Feld ein % oder den Hostnamen des Windows-Computers, von dem aus Sie zugreifen möchten, eintragen sollten. Notieren Sie sich den Servernamen, Benutzernamen und das Passwort.

  • Laden Sie die MyODBC for Windows-Treiber von der MySQL-Seite herunter. Die aktuelle stable-Version ist MyODBC-3.51.06.exe. (auch im Quelltext verfügbar). Installieren Sie ihn auf ihrem Windows-Rechner. Sie können die Funktionsfähigkeit mit den mitgelieferten Programmen testen.

  • Erstellen Sie eine Benutzer- oder System-DSN in den ODBC-Optionen in der Systemsteuerung. Überlegen Sie sich einen DSN-Namen und geben Sie den Hostnamen, Benutzernamen, Passwort, Port, etc ihrer MySQL-Datenbank an, die Sie im 1. Schritt konfiguriert haben.

  • Installieren Sie Access als Vollinstallation. Das stellt sicher, dass Sie die richtigen Add-Ins haben. Zumindest benötigen Sie die ODBC-Unterstützung und den Linked-Table-Manager.

  • Jetzt zum lustigen Teil! Erstellen Sie eine neue Access-Datenbank. Rechtsklicken Sie im Tabellenfenster und wählen Sie Link Tables/Tabellen verknüpfen oder im Menü Datei den Punkt Get External Data und dann Link Tables/Tabellen verknüpfen. Wenn das Dateibrowser-Fenster erscheint, wählen Sie Dateien vom Typ: ODBC. Wählen Sie System-DSN und den Namen der DSN, die Sie in Schritt 3 erstellt haben. Wählen sie die zu verknüpfende Tabelle, klicken Sie auf OK und Sie können jetzt die Tabelle öffnen und Daten auf Ihrem MySQL-Server hinzufügen/löschen/ändern. Sie können auch Abfragen erzeugen, Tabellen importieren und exportieren und Formulare und Reports generieren, etc.

Tipps und Tricks:

  • Sie können Ihre Tabellen in Access erstellen und nach MySQL exportieren und Sie dann wieder verknüpfen. Das erleichtert das Erstellen von Tabellen.

  • Wenn Sie Tabellen in Access erstellen, müssen Sie einen Primärschlüssel definieren, wenn Sie über Access Schreibzugriff haben wollen. Vergewissern Sie sich, dass sie einen Primärschlüssel in MySQL erzeugen, bevor Sie die Tabelle in Access verknüpfen.

  • Wenn Sie ein Tabelle in MySQL ändern, müssen Sie sie in Access neu verknüpfen. Rufen Sie Tools>add-ins>linked table manager auf, suchen Sie ihre ODBC-DSN, und wählen Sie die Tabelle aus, die neu verknüpft werden soll. Sie können Ihre DSN-Quelle auch verschieben, wenn Sie die "always prompt for new location"-Checkbox ankreuzen, bevor Sie OK klicken.

3. Ich habe auf PHP 4 upgegradet und jetzt gibt MySQL dauernd folgende Fehlermeldung aus: "Warning: MySQL: Unable to save result set in ...". Was ist passiert?

Wahrscheinlich wurde PHP 4 mit der Option '--with-mysql' kompiliert, ohne dass der Pfad zu MySQL angegeben wurde. Das bedeutet, dass PHP die eingebaute MySQL-Client-Bibliothek benutzt. Wenn Ihr System Anwendungen wie etwa gleichzeitig PHP 3 als Apache-Modul oder auth-mysql, die andere Versionen der MySQL-Client-Bibliohteken benutzen, gibt es einen Konflikt zwisschen diesen verschiedenen Client-Versionen.

Normalerweise hilft es, PHP 4 mit dem Pfad zu MySQL neu zu kompilieren: '--with-mysql=/your/path/to/mysql'

4. PHP 5 liefert keine MySQL-Client-Bibliotheken mehr mit aus, was bedeutet das für mich? Kann ich MySQL immer noch mit PHP benutzen? Wenn ich es versuche, bekomme ich "function undefined"-Errors, was ist passiert?

Ja. Es wird immer eine MySQL-Unterstützung in PHP geben. Die einzige Änderung in PHP 5 ist, dass die eigentliche Client-Bibliothek nicht mehr mitgeliefert wird. Hier sind einige Gründe:

  • Die meisten Systeme haben heutzutage die Client-Bibliothek schon installiert.

  • Gegeben den oben genannten Fall, kann es Probleme mit verschiedenen Versionen von Client-Bibliotheken geben. Wenn man etwa mod_auth_mysql gegen eine Version linkt und PHP gegen eine andere und dann beide im Apache einschaltet, gibt es einen schönen netten Absturz. Außerdem hat die mitgelieferte Bibliothek nicht immer richtig mit der installiertet Serverversion zusammengespielt. Das offensichtlichste Symptom war die Uneinigkeit, wo die Unix-Domain-Socket-Datei mysql.socket zu finden ist.

  • Die Wartung war etwas lax und die Bibliothek fiel immer mehr und mehr hinter der aktuellen Version zurück.

  • Die zukünftigen Versionen der Bibliothek stehen unter der GPL und es gibt keine Update-Möglichkeit, da wir keine Bibliothek, die unter der GPL steht, mit einem Projekt unter einer BSD/Apache-ähnlichen Lizenz mitliefern können. Eine saubere Abspaltung mit PHP 5 schien die beste Möglichkeit zu sein.

Es wird wahrscheinlich nicht besonders viele Leute betreffen. Unix-Benutzer, zumindest die, die wissen, was sie tun, neigen dazu, PHP so zu kompilieren, dass es gegen die libmyqlclient-Bibliothek ihres Systems gelinkt ist, indem sie einfach '--with-mysql=/usr' angeben. Windows-Benutzer können die Erweiterung php_mysql.dll in der php.ini einschalten. Kopieren Sie auch libmySQL.dll in das entsprechende %SYSTEMROOT%-Verzeichnis, wie Sie es mit allen anderen mitgelieferten DLLs im Verzeichnis dll tun.

5. Nach der Installation der Unterstützung für shared-MySQL stürzt der Apache mit einem coredump an, sobald libphp4.so geladen wird. Kann man das beheben?

Wenn Ihre MySQL-Bibliotheken gegen pthreads gelinkt sind, wird das passieren. Sehen Sie mit ldd nach. Wenn sie es sind, schnappen Sie sich den MySQL-Tarball und kompilieren Sie es, oder kompilieren Sie es neu aus dem Source-RPM und entfernen Sie den Schalter in der spec-Datei, der den threaded-client-code einschaltet. Beide Lösungen werden dieses Problem beheben. Kompilieren Sie PHP dann mit den neuen MySQL-Bibliotheken.

6. Wieso bekomme ich so eine Fehlermeldung: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>"?

Sie versuchen, einen result identifier zu benutzen, der 0 ist. Die 0 bedeutet, dass Ihre Abfrage aus irgend einem Grund fehlgeschlagen ist. Sie sollten auf Fehlermeldungen überprüfen, nachdem Sie Ihre Abfrage losgeschickt haben und bevor Sie versuchen, mit dem Ergebnis zu arbeiten. Dies kann mit diesem oder ähnlichem Code bewerkstelligt werden:
<?php

$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
?>
oder
<?php

$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: " . mysql_error());
?>

Zurück | Zum Anfang | Nach vorne
Obtaining PHP | Nach oben | Installation


Installation

PHP Handbuch
Zurück Nach vorne

Kapitel 48. Installation

In diesem Abschnitt geht es um übliche Fragen zur Installation von PHP. PHP gibt es für fast jedes Betriebssystem (außer vielleicht für MacOS vor OSX) und fast jeden Webserver.

Um PHP zu installieren, folgen Sie Bitte den Anweisungen in der Datei INSTALL, die sie in der Distribution finden. Benutzer von Windows sollten auch die Datei install.txt lesen. Weitere hilfreiche Hinweie für Benutzer von Windows gibt es hier.

1. Unix/Windows: Wo sollte sich meine php.ini befinden?
2. Unix: I habe PHP installiert, aber jedesmal, wenn ich eine Seite aufrufe, bekomme ich die Meldung 'Document Contains No Data'! Woran liegt das?
3. Unix: Ich habe PHP mit RPM-Paketen installiert, aber Apache verarbeitet die PHP-Seiten nicht. Was ist da los?
4. Unix: Ich habe PHP 3 mit RPM-Paketen installiert, aber es läßt sich nicht mit der benötigten Datenbank-Unterstützung übersetzen. Was ist da los?
5. Unix: Ich habe Apache mit dem FrontPage-Erweiterungs-Patch versehen und plötzlich funktioniert PHP nicht mehr. Ist PHP zur FrontPage-Erweiterung für Apache inkompatibel?
6. Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich eine leere Seite.
7. Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich vom Server einen 500 Fehler.
8. Manche Betriebssysteme: Ich habe PHP ohne Fehlermeldungen installiert, aber wenn ich versuche, Apache zu starten, erhalte ich Fehler wegen undefinierter Symbole:
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress
9. Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich die Fehlermeldung:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:
10. Windows: Ich habe alle Anweisungen befolgt, aber ich erreiche keine Zusammenarbeit zwischen PHP und den IIS.
11. Wenn Ich PHP mit IIS, PWS, OmniHTTPD oder Xitami als CGI laufen lasse, bekomme ich die folgende Fehlermeldung: Security Alert! PHP CGI cannot be accessed directly..
12. Wie kann ich herausfinden, ob meine php.ini gefunden und gelesen wird? Anscheinend ist das nicht der Fall, weil meine Änderungen nicht übernommen werden.

1. Unix/Windows: Wo sollte sich meine php.ini befinden?

Unter Unix sollte sie standardmäßig in /usr/local/lib sein, was <install-path>/lib ist. Die Meisten werden das beim Übersetzen mit der Option --with-config-file-path ändern wollen. Sie können das, z.B. mit
--with-config-file-path=/etc
festlegen. Dann kopieren Sie die php.ini-dist der Distribution nach /etc/php.ini und editieren sie, um alle gewünschten lokalen Änderungen vorzunehmen.

--with-config-file-scan-dir=PATH

Unter Windows ist der standardmäßige Pfad für die php.ini das Windows-Verzeichnis. Falls die den Apache Webserver verwenden, wird die php.ini zuerst im Apache-Installationsverzeichnis, z.B. c:\program files\apache group\apache, gesucht. Dadurch können Sie auf dem selben Rechner verschiedene php.ini-Dateien für verschiedene Apache-Versionen haben.

Siehe auch das Kapitel über die Konfigurationsdatei.

2. Unix: I habe PHP installiert, aber jedesmal, wenn ich eine Seite aufrufe, bekomme ich die Meldung 'Document Contains No Data'! Woran liegt das?

Das bedeutet wahrscheinlich, dass PHP irgend ein Problem hat und einen Core Dump (Speicherauszug) erzeugt. Schauen Sie in der Fehler-Logdatei Ihres Servers nach, ob das der Fall ist und versuchen Sie dann das Problem mit einem kleinen Test-Script zu reproduzieren. Falls Sie sich mit 'gdb' auskennen, ist es für die Entwickler beim Lokalisieren des Problems sehr hilfreich, wenn Sie Ihrem Fehlerbericht einen Backtrace hinzufügen. Falls Sie PHP als Apache-Modul verwenden, können Sie in etwa Folgendes versuchen:

  • Stoppen Sie Ihre httpd-Prozesse

  • gdb httpd

  • Stoppen Sie Ihre httpd-Prozesse

  • > run -X -f /pfad/zur/httpd.conf

  • Rufen Sie mit Ihrem Browser die URL auf, die das Problem verursacht

  • > run -X -f /path/to/httpd.conf

  • gdb sollte Sie jetzt darüber in Kenntnis setzen, falls Sie einen Core Dump bekommen

  • Geben Sie ein: bt

  • Sie sollten Ihren Backtrace in Ihren Fehlerbericht einfügen und diesen unter http://bugs.php.net/ abgeben.

Falls Sie in Ihrem Script Funktionen regulärer Ausdrücke (ereg() und Freunde) verwenden, sollten Sie sicherstellen, dass Sie PHP und Apache mit dem selben Programmpaket für reguläre Ausdrücke übersetzt haben. Mit PHP und Apache 1.3.x sollte das automatisch der Fall sein.

3. Unix: Ich habe PHP mit RPM-Paketen installiert, aber Apache verarbeitet die PHP-Seiten nicht. Was ist da los?

Unter der Annahme, dass Sie sowohl Apache als auch PHP mit RPM-Paketen installiert haben, müssen Sie einige oder alle der folgenden Zeilen in die Datei httpd.conf einfügen oder die Kommentarzeichen davor entfernen:
# Extra Modules
AddModule mod_php.c
AddModule mod_php3.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php3_module        modules/libphp3.so     # fuer PHP 3
LoadModule php4_module        modules/libphp4.so     # fuer PHP 4
LoadModule perl_module        modules/libperl.so
Und fügen Sie
AddType application/x-httpd-php3 .php3    # fuer PHP 3
AddType application/x-httpd-php .php      # fuer PHP 4
... in die globalen Eigenschaften oder in die Eigenschaften der VirtualDomain, für die Sie PHP-Unterstützung benötigen, ein.

4. Unix: Ich habe PHP 3 mit RPM-Paketen installiert, aber es läßt sich nicht mit der benötigten Datenbank-Unterstützung übersetzen. Was ist da los?

Aufgrund des Aufbaus von PHP 3 ist es nicht einfach, ein vollständig flexibles PHP-RPM zu bauen. Dieses Problem wurde in PHP 4 angegangen. Für PHP 3 empfehlen wir Ihnen, dass Sie nach der Methode vorgehen, die in der Datei INSTALL.REDHAT der PHP-Distribution beschrieben wird. Falls Sie darauf bestehen, eine RPM-Version von PHP 3 zu verwenden, lesen Sie weiter...

Um die Installation zu vereinfachen und weil RPMs statt des Standardverzeichnisses /usr/local/ das Verzeichnis /usr/ benutzen, konfigurieren die RPM-Paketbauer die RPMs so, dass sie ohne Datenbank-Unterstützung installiert werden. Sie müssen in der RPM spec Datei also angeben, welche Datenbanken unterstützt werden sollen und wo sich die höchste Verzeichnisebene Ihres Datenbank-Servers befindet.

Dieses Beispiel erklärt die Vorgehensweise, mit der die Unterstützung für den beliebten MySQL Datenbank-Server bei gleichzeitiger Verwendung der Apache-Modul-Installation hinzugefügt wird.

Selbstverständlich kann die gesamte Information für jeden Datenbank-Server angepasst werden, den PHP unterstützt. Es wird bei diesem Beispiel davon ausgegangen, dass Sie MySQL und Apache komplett mit RPMs installiert haben.

  • Entfernen Sie zuerst mod_php3 :
    rpm -e mod_php3

  • Holen Sie sich dann das Source-RPM und INSTALLIEREN Sie es, NICHT --rebuild
    rpm -Uvh mod_php3-3.0.5-2.src.rpm

  • Editieren Sie als Nächstes die Datei /usr/src/redhat/SPECS/mod_php3.spec

    Fügen Sie im %build Abschnitt die gewünschte Datenbank-Unterstützung und den Pfad hinzu.

    Für MySQL wäre das
    --with-mysql=/usr \
    Der %build Abschnitt sieht in etwa so aus:
    ./configure --prefix=/usr \
        --with-apxs=/usr/sbin/apxs \
        --with-config-file-path=/usr/lib \
        --enable-debug=no \
        --enable-safe-mode \
        --with-exec-dir=/usr/bin \
        --with-mysql=/usr \
        --with-system-regex

  • Nachdem Sie die Änderung vorgenommen haben, bauen Sie das Binary-RPM folgendermaßen:
    rpm -bb /usr/src/redhat/SPECS/mod_php3.spec

  • Dann installieren Sie das RPM
    rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

Wenn Sie nun den Apache neu starten, haben Sie PHP 3 mit MySQL-Unterstützung unter Verwendung von RPMs. Beachten Sie, dass es mit dem Tarball der PHP 3 Distribution unter Befolgen der Anweisungen in INSTALL.REDHAT, das sich in dieser Distribution befindet, wahrscheinlich wesentlich einfacher zu bauen ist.

5. Unix: Ich habe Apache mit dem FrontPage-Erweiterungs-Patch versehen und plötzlich funktioniert PHP nicht mehr. Ist PHP zur FrontPage-Erweiterung für Apache inkompatibel?

Nein, PHP funktioniert bestens mit der FrontPage-Erweiterung. Das Problem liegt darin, dass der FrontPage-Patch mehrere Apache-Strukturen verändert, auf die sich PHP verlässt. Eine Neuübersetzung von PHP (mittels 'make clean ; make'), nachdem der Patch angewandt wurde, löst das Problem.

6. Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich eine leere Seite.

Wenn Sie sich im Browser den Quelltext der Seite anschauen, werden Sie vermutlich den Quellcode Ihres PHP-Scripts sehen können. Das bedeutet, dass der Webserver das Script nicht zur Interpretation an PHP übergeben hat. Mit Ihrer Server-Konfiguration ist etwas nicht in Ordnung - überprüfen Sie Ihre Server-Konfiguration nochmal genau anhand der PHP-Installationsanleitung.

7. Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich vom Server einen 500 Fehler.

Beim Versuch des Servers PHP zu starten ist etwas schiefgegangen. Wechseln Sie auf der Kommandozeile (in der Eingabeaufforderung) in das Verzeichnis, das die ausführbare PHP-Datei (unter Windows php.exe) enthält und lassen Sie php -i laufen, um eine sinnvolle Fehlermeldung zu bekommen. Falls PHP irgendwelche Probleme bei der Ausführung hat, werden entsprechende Fehlermeldungen ausgegeben, die Ihnen Hinweise darauf liefern, was zu tun ist. Falls sich der Bildschirm mit HTML-Quelltext füllt (die Ausgabe der Funktion phpinfo()), funktioniert PHP und Ihr Problem könnte mit Ihrer Server-Konfiguration zusammen hängen, die Sie dann nochmal genau überprüfen sollten.

8. Manche Betriebssysteme: Ich habe PHP ohne Fehlermeldungen installiert, aber wenn ich versuche, Apache zu starten, erhalte ich Fehler wegen undefinierter Symbole:
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Das hat nichts mit PHP zu tun, sondern mit den MySQL-Client-Bibliotheken. Manche benötigen --with-zlib, manche nicht. Auf diese Frage wird in den MySQL FAQ eingegangen.

9. Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich die Fehlermeldung:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Diese Fehlermeldung bedeutet, dass PHP daran gescheitert ist, überhaupt irgendwas auszugeben. Wechseln Sie auf der Kommandozeile (in der Eingabeaufforderung) in das Verzeichnis, das die ausführbare PHP-Datei (unter Windows php.exe) enthält und lassen Sie php -i laufen, um eine sinnvolle Fehlermeldung zu bekommen. Falls PHP irgendwelche Probleme bei der Ausführung hat, werden entsprechende Fehlermeldungen ausgegeben, die Ihnen Hinweise darauf liefern, was zu tun ist. Falls sich der Bildschirm mit HTML-Quelltext füllt (die Ausgabe der Funktion phpinfo()), funktioniert PHP.

Funktioniert PHP erst mal auf der Kommandozeile, versuchen Sie nochmal, das Script mit dem Browser aufzurufen. Falls das immer noch misslingt, könnte das eine der folgenden Ursachen haben:

  • Die Zugriffsberechtigungen Ihres PHP-Scripts, Ihrer php.exe, php4ts.dll, php.ini oder irgendeiner PHP-Erweiterung die Sie versuchen zu laden, sind für den anonymen Internetbenutzer ISUR_<machinename> nicht ausreichend.

  • Die Scriptdatei existiert nicht (oder ist vielleicht, bezogen auf Ihr Web-Wurzelverzeichnis, nicht da, wo Sie denken). Beachten Sie, dass Sie beim IIS diesen Fehler aufspüren können, wenn Sie im Internet Services Manager beim Einstellen der script mappings die Option 'check file exists' ankreuzen. Falls dann eine Scriptdatei nicht existiert gibt der Server stattdessen einen 404 Fehler zurück. Das hat außerdem den zusätzlichen Vorteil, dass der IIS die erforderlichen Authentisierungen an Ihrem Script auf Grundlage der NTLanMan-Berechtigungen für Sie durchführt.

10. Windows: Ich habe alle Anweisungen befolgt, aber ich erreiche keine Zusammenarbeit zwischen PHP und den IIS.

Stellen Sie sicher, dass jeder Benutzer, der ein PHP-Script ausführt, die Berechtigung hat php.exe auzuführen! Der IIS verwendet den Benutzer anonymous, der bei der Installation des IIS hinzugefügt wird. Dieser Benutzer benötigt die entsprechenden Berechtigungen für php.exe. Außerdem benötigt auch jeder angemeldete Benutzer die Berechtigung php.exe auszuführen. Dem IIS4 müssen Sie mitteilen, dass PHP eine Script-Engine ist. Lesen Sie auch diese FAQ.

11. Wenn Ich PHP mit IIS, PWS, OmniHTTPD oder Xitami als CGI laufen lasse, bekomme ich die folgende Fehlermeldung: Security Alert! PHP CGI cannot be accessed directly..

Sie müssen die cgi.force_redirect-Anweisung auf 0 setzen. Weil diese Anweisung standardmäßig auf 1 gesetzt ist, müssen Sie darauf achten, dass sie nicht mit einem ; auskommentiert ist. Wie alle Anweisungen wird auch diese in der php.ini gesetzt.

Wegen des standardmäßigen Werts von 1 ist es äußerst wichtig sicherzustellen, dass die richtige php.ini gelesen wird. Lesen Sie für Einzelheiten diese FAQ.

12. Wie kann ich herausfinden, ob meine php.ini gefunden und gelesen wird? Anscheinend ist das nicht der Fall, weil meine Änderungen nicht übernommen werden.

Rufen Sie phpinfo() auf, um zu überprüfen, ob Ihre php.ini von PHP gelesen wird. Fast ganz oben gibt es einen Punkt namens Configuration File (php.ini). Dort können Sie feststellen, wo PHP nach der php.ini sucht und ob sie gelesen wird oder nicht. Falls es dort nur einen VerzeichnisPFAD gibt, wird sie nicht gelesen und Sie sollten Ihre php.ini in dieses Verzeichnis legen. Falls der Pfad die php.ini beinhaltet, dann wird sie auch gelesen.

Wenn Ihre php.ini gelesen wird und Sie PHP als Modul benutzen, müssen Sie Ihren Webserver neu starten, nachdem Sie Änderungen an der php.ini vorgenommen haben.

Zurück | Zum Anfang | Nach vorne
Database issues | Nach oben | Probleme bei der Compilierung


Probleme bei der Compilierung

PHP Handbuch
Zurück Nach vorne

Kapitel 49. Probleme bei der Compilierung

Diese Sektion behandelt die meistverbreiteten Fehler, die beim Compilieren von PHP auftauchen.

1. Ich habe mir die aktuellste Version von PHP mit Hilfe des Anonymous-CVS-Dienstes besorgt, kann aber kein configure-Script finden.
2. Ich habe Probleme. PHP für den Apache zu konfigurieren. Er beschwert sich, dass er die Datei httpd.h nicht finden kann, obwohl sie sich genau dort befindet, wo ich es angegeben habe.
3. When I run configure, it says that it can't find the include files or library for GD, gdbm, or some other package!
4. Wenn die Datei language-parser.tab.c compiliert wird, erscheinen Fehler, die yytname undeclared besagen.
5. Wenn ich make ausführe, scheint alles normal zu verlaufen, aber sobald es versucht, die Applikation zu linken, beschwert es sich, einige Dateien nicht finden zu können.
6. Wenn PHP gelinkt wird, berschwert es sich über undefinierte Referenzen.
7. Wie wird PHP mit Apache 1.3.x compiliert?
8. Ich habe die Schritte, die zur Installation des Apache-Modules unter UNIX nötig sind, aber wenn ich mit meinem Browser PHP-Scripts aufrufe, werde ich aufgefordert, die Dateien zu speichern.
9. Es heisst, es muss --activate-module=src/modules/php4/libphp4.a benutzt werden, aber diese Datei existiert nicht, also habe ich es zu --activate-module=src/modules/php4/libmodphp4.a geändert, aber es funktioniert nicht.
10. Wenn ich versuche, den Apache mit PHP als statisches Modul mittels --activate-module=src/modules/php4/libphp4.a zu compilieren, kommt die Fehlermeldung, mein Compiler sei nicht ANSI-Konform.
11. Wenn ich versuche, PHP mittels der Option --with-apxs zu compilieren, bekomme ich komische Fehlermeldungen.
12. Während des make bekomme ich Fehler in microtime und jede Menge RUSAGE_-Zeugs.
13. Ich möchte mein PHP aktualisieren. Wo kann ich die ./configure-Zeile finden, die von meiner aktuellen PHP-Version verwendet wird?
14. Wenn ich PHP mit der GD-Library compiliere, tauchen seltsame Compilerfehler auf oder PHP startet nicht.

1. Ich habe mir die aktuellste Version von PHP mit Hilfe des Anonymous-CVS-Dienstes besorgt, kann aber kein configure-Script finden.

Sie müssen das GNU autoconf-Paket installiert haben, damit das configure-Script aus configure.in generiert werden kann. Mittels ./buildconf im Hauptverzeichnis des vom CVS-Server gezogenen Source-Trees wird das configure-Script generiert. Es ist zu beachten, dass das configure-Script bei einer geänderten configure.in nicht neu generiert wird, es sei denn, configure wird mit dem Parameter --enable-maintainer-mode aufgerufen. Es sollte also darauf geachtet werden, dass das configure-Script manuell neu generiert wird, wenn configure.in verändert wurde. Ein Symptom für eine Veränderung des configure.in ist, wenn Dinge wie @VARIABLE@ im Makefile auftachen, nachem configure oder config.status ausgeführt wurde.

2. Ich habe Probleme. PHP für den Apache zu konfigurieren. Er beschwert sich, dass er die Datei httpd.h nicht finden kann, obwohl sie sich genau dort befindet, wo ich es angegeben habe.

Sie müssen dem configure/setup-Script die Top-Level-Pfad des Apache-Source-Trees mitteilen. Das bedeutet, dass z.B. --with-apache=/path/to/apache korrekt ist, --with-apache=/path/to/apache/src jedoch nicht.

3. When I run configure, it says that it can't find the include files or library for GD, gdbm, or some other package!

Es ist möglich, das configure-Script so anzupassen, dass es nicht nur in Standard-Pfaden nach Headerdatei und Bibliotheken sucht, in dem dem C Präprozessor und Linker zusätzliche Flags übergeben werden:
CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
Wenn Sie (aus welchem Grund auch immer) eine csh-Variante als Login-Shell verwenden:
env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

4. Wenn die Datei language-parser.tab.c compiliert wird, erscheinen Fehler, die yytname undeclared besagen.

Sie müssen Bison updaten. Die aktuellste Version findet sich unter http://www.gnu.org/software/bison/bison.html.

5. Wenn ich make ausführe, scheint alles normal zu verlaufen, aber sobald es versucht, die Applikation zu linken, beschwert es sich, einige Dateien nicht finden zu können.

Einige alte Versionen von make platzieren die compilierten Versionen der Dateien nicht in das korrekte Verzeichnis. Versuchen Sie, das Problem zu lösen, indem sie zunächst mittels cp *.o functions die Dateien an der vorgesehenen Platz kopieren, und anschließend make noch einmal ausführen. Sollte es dann funktionieren, empfehlen wir, Ihre Version von GNU make zu aktualisieren.

6. Wenn PHP gelinkt wird, berschwert es sich über undefinierte Referenzen.

Schauen Sie sich die Link-Zeile an, und stellen Sie sicher, das alle nötigen Bibliotheken am Ende mit eingeschlossen werden. Häufig werden '-ldl' und Datenbankbibliothken vergessen.

Wenn Sie mit Apache 1.2.x linken, haben Sie daran gedacht, die benötigten Informationen in die EXTRA_LIBS-Zeile des Konfigurationsscriptes einzufügen, und haben Sie das configure-Script des Apache wiederholt ausgeführt? Weitere Informationen dazu finden Sie im INSTALL File Ihrer Distribution.

Einige Leute haben berichtet, dass sie '-ldl' unmittelbar nach libphp4.a einfügen mußten, wenn sie PHP mit Apache gelinkt haben.

7. Wie wird PHP mit Apache 1.3.x compiliert?

Folgen Sie diesen Schritten:

  • Besorgen Sie sich die letzte Version von Apache unter http://www.apache.org/dist/httpd/.

  • Entpacken Sie die Datei zum Beispiel unter /usr/local/src/apache-1.3.

  • Compilieren Sie zunächst PHP, zum Beispiel mit ./configure --with-apache=/<path>/apache-1.3 (ersetzen Sie <path> mit dem Pfad zu Ihrem apache-1.3-Verzeichnis.

  • Führen Sie make, gefolgt von einem make install aus, und kopieren die benötigten Dateien in den Apache-Tree.

  • Wechseln Sie in das Verzeichnis /<path>/apache-1.3/src und bearbeiten die Datei Configuration. Fügen Sie AddModule modules/php4/libphp4.a hinzu.

  • Führen Sie ./Configure, gefolgt von make aus.

  • Nun sollte eine lauffähige Version eines PHP-fähigen Apaches compiliert sein.

Bitte beachten Sie: Sie können auch das neue Apache ./configure-Script nutzen. Weitere Informationen dazu finden sie in der Datei README.configure, die der Apache-Distribution beiliegt. Auch in der Datei INSTALL Ihrer PHP-Distribution finden sich Informationen dazu.

8. Ich habe die Schritte, die zur Installation des Apache-Modules unter UNIX nötig sind, aber wenn ich mit meinem Browser PHP-Scripts aufrufe, werde ich aufgefordert, die Dateien zu speichern.

Das bedeutet, dass das PHP-Modul nicht aufgerufen wird. Sie sollten folgende Dinge überprüfen:

  • Stellen Sie sicher, dass das httpd-Binary, das Sie ausführen, tatsächlich das neue httpd-Binary ist, das sie compiliert haben. Um das zu tun versuchen Sie, /path/to/binary/httpd -l auszuführen.

    Wenn mod_php4.c nicht auftaucht, führen Sie nicht das korrekte Binary aus. Finden und installieren Sie das korrekte Binary.

  • Stellen Sie sicher, dass Sie den korrekten Mime-Type in ihrer Apache .conf-Datei angegeben haben. Er sollte AddType application/x-httpd-php3 .php3 (für PHP 3)

    oder AddType application/x-httpd-php .php (für PHP 4) lauten.

    Stellen Sie ebenfalls sicher, dass diese AddType-Anweisung sich nicht in einem <Virtualhost> oder <Directory> Block befindet.

  • Der Standardplatz der Apache Konfigurationsdateien hat sich von Apache 1.2 zu Apache 1.3 verändert. Sie sollten sicherstellen, das die Konfigurationsdatei, zu der sie die AddType-Anweisung hinzugefügt haben diejenige ist, die auch verarbeitet wird. Sie können einen offensichtlichen Syntaxfehler oder eine andere eindeutige Änderung in Ihre httpd.conf einfbauen, um dies zu überprüfen.

9. Es heisst, es muss --activate-module=src/modules/php4/libphp4.a benutzt werden, aber diese Datei existiert nicht, also habe ich es zu --activate-module=src/modules/php4/libmodphp4.a geändert, aber es funktioniert nicht.

Die Datei libphp4.a soll nicht existieren, der Apache wird es generieren.

10. Wenn ich versuche, den Apache mit PHP als statisches Modul mittels --activate-module=src/modules/php4/libphp4.a zu compilieren, kommt die Fehlermeldung, mein Compiler sei nicht ANSI-Konform.

Das ist eine irreführende Fehlermeldung des Apache, die in aktuellen Versionen behoben ist.

11. Wenn ich versuche, PHP mittels der Option --with-apxs zu compilieren, bekomme ich komische Fehlermeldungen.

Hier sind drei Dinge zu überprüfen: Wenn Apache das apxs Perlscript generiert, werden manchmal aus unerfindlichen Gründen nicht die richtigen Compiler-Flags verwendet. Öffnen Sie Ihr apxs-Script und überprüfen es auf Zeilen, die ähnlich wie folgende aussehen:
my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
Wenn Sie so etwas sehen, haben Sie Ihr Problem gefunden. Ändern Sie die Zeilen wie folgt:
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
Das zweite mögliche Problem kann unter Red Hat 6.1 und 6.2 auftauchen. Das apxs-Script, das Red Hat ausliefert, ist fehlerhaft. Suchen sie nach dieser Zeile:
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
Ändern Sie diese Zeile in
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
Zuguterletzt, wenn sie Apache neu installieren, fügen Sie ein make clean nach dem ./configure und vor dem make ein.

12. Während des make bekomme ich Fehler in microtime und jede Menge RUSAGE_-Zeugs.

Wenn während des make-Teils der Installation Probleme auftauchen, die wie folgt aussehen:
microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

ist Ihr System beschädigt. Sie müssen Ihr /usr/include reparieren, indem sie das glibc-devel-Paket installieren, dessen Version mit der Ihrer glibc übereinstimmt. Das hat absolut nichts mit PHP zu tun. Um sich selbst davon zu überzeugen, führen Sie folgenden simplen Test durch:
$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
Wenn hier Fehler auftauchen, wissen sie, dass Ihre include-Dateien fehlen oder fehlerhaft sind.

13. Ich möchte mein PHP aktualisieren. Wo kann ich die ./configure-Zeile finden, die von meiner aktuellen PHP-Version verwendet wird?

Entweder schauen sie in die config.nice-Datei im Source-Tree ihrer aktuellen PHP-Version nach, oder Sie führen folgendes Script aus:
<?php phpinfo(); ?>
Zu Beginn der Datei wird die ./configure-Zeile angezeigt.

14. Wenn ich PHP mit der GD-Library compiliere, tauchen seltsame Compilerfehler auf oder PHP startet nicht.

Stellen Sie sicher, dass PHP und die GD-Library gegen die selben Bibliotheken wie libPNG gelinkt sind.

Zurück | Zum Anfang | Nach vorne
Installation | Nach oben | PHP benutzen


PHP benutzen

PHP Handbuch
Zurück Nach vorne

Kapitel 50. PHP benutzen

Diese Rubrik behandelt viele beim Schreiben von PHP-Skripten auftretende Fehler.

1. Ich möchte ein PHP-Skript schreiben, das Daten von beliebigen Formularen verarbeiten kann. Woher weiß ich, welche Variablen über die POST-Methode verfügbar sind?
2. Ich möchte alle einfachen Anführungszeichen (') in einen Backslash gefolgt von einem einfachen Anführungszeichen (') ersetzen lassen. Wie kann ich das mit einem regulären Ausdruck machen? Ich möchte außerdem " zu \" und \ zu \\ konvertieren.
3. Alle meine " werden in \" und meine ' werden in \' konvertiert. Wie kann ich den nicht gewünschten Backslash entfernen? Warum und wie sind diese Zeichen überhaupt konvertiert worden?
4. Wenn ich den folgenden Code ausführe, wird die Ausgabe in der falschen Reihenfolge ausgegeben:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
Woran liegt das?
5. Wo sind meine Zeilenumbrüche geblieben?
<pre>
<?php echo "Das soll die erste Zeile sein."; ?>
<?php echo "Das soll nach dem obigen Zeilenumbruch erscheinen."; ?>
</pre>
6. Ich bekomme die Meldung 'Warning: Cannot send session cookie - headers already sent...' oder 'Cannot add header information - headers already sent...'.
7. Wie kann ich auf Informationen aus dem Request-Header zugreifen?
8. Wenn ich versuche, Authentifikation mit IIS zu nutzen, bekomme ich die Meldung 'No Input file specified'.
9. Mein PHP-Skript funktioniert unter IE und Lynx, aber unter Netscape fehlt ein Teil meiner Ausgabe. Wenn ich mir den Quelltext anschaue, sehe ich die Ausgabe unter IE, aber nicht unter Netscape.
10. Wie kann ich XML und PHP mischen? PHP beschwert sich über meine <?xml-Tags!
11. Wie kann ich mit PHP mit Frontpage oder einem anderen HTML-Editor, der meinen Code verschiebt, benutzen?
12. Wo kann ich eine komplette Liste der mir zur Verfügung stehenden Variablen finden?
13. Ich versuche, auf eine der Standard-CGI-Variablen (wie $DOCUMENT_ROOT oder $HTTP_REFERER) in einer selbst-definierten Funktion zuzugreifen, aber anscheinend kann ich nicht darauf zugreifen. Was mache ich falsch?

1. Ich möchte ein PHP-Skript schreiben, das Daten von beliebigen Formularen verarbeiten kann. Woher weiß ich, welche Variablen über die POST-Methode verfügbar sind?

PHP bietet viele vordefinierte Variablen, wie das superglobale $_POST. Sie können $_POST mit einer Schleife durchlaufen, da es sich um ein assoziatives Array mit allen über die POST-Methode übertragenen Variablen handelt. Als Beispiel benutzen wir die foreach-Schleife, um auf leere Werte (mit der empty()-Funktion) zu prüfen und geben diese Werte aus.
<?php
$empty = $post = array();
foreach ($_POST as $varname => $varvalue) {
    if (empty($varvalue)) {
        $empty[$varname] = $varvalue;
    } else {
        $post[$varname] = $varvalue;
    }
}

print "<pre>";
if (empty($empty)) {
    print "Keiner der POST-Werte ist leer. Die Werte sind:\n";
    var_dump($post);
} else {
    print "Wir haben " . count($empty) . " leere Werte:\n";
    print "Alle Werte:\n"; var_dump($post);
    print "Leer:\n";  var_dump($empty);
    exit;
}
?>

2. Ich möchte alle einfachen Anführungszeichen (') in einen Backslash gefolgt von einem einfachen Anführungszeichen (') ersetzen lassen. Wie kann ich das mit einem regulären Ausdruck machen? Ich möchte außerdem " zu \" und \ zu \\ konvertieren.

Die Funktion addslashes() erledigt genau das.
Siehe auch mysql_escape_string(). Mit der
Funktion stripslashes() können Sie die
Backslash-Zeichen wieder entfernen.

directive note: magic_quotes_gpc: The PHP directive magic_quotes_gpc defaults to on. It essentially runs addslashes() on all your GET, POST, and COOKIE data. You may use stripslashes() to strip them.

3. Alle meine " werden in \" und meine ' werden in \' konvertiert. Wie kann ich den nicht gewünschten Backslash entfernen? Warum und wie sind diese Zeichen überhaupt konvertiert worden?

Die PHP-Funktion stripslashes() entfernt solche Backslash-Zeichen aus Ihrem String. In den meisten Fällen existieren diese Zeichen automatisch, weil die magic_quotes_gpc-Direktive auf on steht.

directive note: magic_quotes_gpc: The PHP directive magic_quotes_gpc defaults to on. It essentially runs addslashes() on all your GET, POST, and COOKIE data. You may use stripslashes() to strip them.

4. Wenn ich den folgenden Code ausführe, wird die Ausgabe in der falschen Reihenfolge ausgegeben:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
Woran liegt das?

Um das Ergebnis Ihrer Funktion in einem Ausdruck verwenden zu können (um es z.B. wie im obigen Beispiel mit dem anderen String zu verbinden), müssen Sie den Wert mit return() zurückgeben und ihn nicht mit echo() ausgeben.

5. Wo sind meine Zeilenumbrüche geblieben?
<pre>
<?php echo "Das soll die erste Zeile sein."; ?>
<?php echo "Das soll nach dem obigen Zeilenumbruch erscheinen."; ?>
</pre>

In PHP können Code-Blöcke entweder mit "?>" oder mit "?>\n" enden (\n steht für Zeilenumbruch). Im obigen Beispiel sind die ausgegebenen Zeilen daher in einer Zeile, denn PHP lässt die Zeilenumbrüche nach den Block-Ende-Zeichen weg. Wenn Sie möchten, dass PHP einen Zeilenumbruch ausgibt, müssen Sie nach jedem Code-Block einen zusätzlichen Zeilenumbruch einfügen.

Warum macht PHP das so? Wenn Sie normales HTML formatieren, erleichert PHP Ihnen die Arbeit, da Sie meist diesen Zeilenumbruch gar nicht haben möchten. Würde PHP diesen Zeilenumbruch ausgeben, müssten Sie sehr lange Zeilen schreiben und Ihren Code damit unlesbar machen.

6. Ich bekomme die Meldung 'Warning: Cannot send session cookie - headers already sent...' oder 'Cannot add header information - headers already sent...'.

Die Funktionen header(), setcookie() und die Session-Funktionen müssen Header dem Output-Stream hinzufügen. Header können aber nur gesendet werden, wenn Sie vor allen anderen Daten gesendet werden. Vor dem Aufruf dieser Funktionen darf also keine Ausgabe (wie z.B. HTML-Code) stattfinden. Die Funktion headers_sent() prüft, ob Ihr Skript bereits Header gesendet hat. Nützlich sind in diesem Zusammenhang auch die Funktionen zur Ausgabesteuerung.

7. Wie kann ich auf Informationen aus dem Request-Header zugreifen?

Wenn Sie PHP als Apache-Modul laufen lassen, liefert Ihnen die getallheaders()-Funktion die gewünschten Informationen. Der folgende Code gibt alle Request-Header aus:
<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br>\n";
}
?>

Siehe auch
apache_lookup_uri(),
apache_response_headers() und
fsockopen().

8. Wenn ich versuche, Authentifikation mit IIS zu nutzen, bekomme ich die Meldung 'No Input file specified'.

Das Sicherheitsmodell des IIS hat Unrecht. Dies ist ein Problem, das alle CGI-Programme, die unter dem IIS laufen, haben. Als Workaround können Sie eine leere HTML-Datei, die nicht von PHP geparst wird, als Eingangsseite in ein per Authenfikation geschütztes Verzeichnis erzeugen. Anschließend leiten Sie den Browser durch ein META-Tag auf die PHP-Seite weiter oder sie setzen einen Link auf die PHP-Seite. PHP erkennt dann die Authentifizierung korrekt. Dieses Problem tritt mit dem ISAPI-Modul nicht auf. Auch auf anderen NT-Web-Servern sollte dieses Problem nicht auftauchen. Weitere Informationen finden Sie auch hier: ???. Lesen Sie auch den Manual-Abschnitt zur HTTP-Authentifizierung mit PHP.

9. Mein PHP-Skript funktioniert unter IE und Lynx, aber unter Netscape fehlt ein Teil meiner Ausgabe. Wenn ich mir den Quelltext anschaue, sehe ich die Ausgabe unter IE, aber nicht unter Netscape.

Netscape verarbeitet HTML-Tags (z.B. Tabellen) strenger als der IE. Meist ist es hilfreich, wenn Sie Ihre HTML-Ausgabe mit einem HTML-Validator (z.B. validator.w3.org) prüfen. Z.B. kann ein fehlendes </table> den Fehler verursachen.

IE und Lynx ignorieren auch NULs (\0) im HTML-Stream, Netscape nicht. Um dies zu überprüfen, kompilieren Sie am besten die Kommandozeilen-Version von PHP (auch bekannt als die CGI-Version) und führen Sie Ihr Skript auf der Kommandozeile aus. Unter Unix pipen Sie es durch od -c und schauen Sie nach \0 Zeichen. Unter Windows müssen Sie einen Editor oder ein anderes Programm benutzen, das es Ihnen ermöglicht, binäre Dateien anzuschauen. Wenn Netscape ein NUL in einer Datei findet, gibt es normalerweise in dieser Zeile nichts mehr aus, während IE und Lynx die Zeile normal ausgeben.

10. Wie kann ich XML und PHP mischen? PHP beschwert sich über meine <?xml-Tags!

Um <?xml in Ihren PHP-Code einzufügen müssen Sie die Kurzform der öffnenden PHP-Tags abschalten, indem Sie in Ihrer php.ini short_tags auf 0 setzen. Sie können diese Direktive nicht mit der Funktion ini_set() setzen. Sie können unabhängig davon, ob short_open_tags auf on oder off gesetzt ist, z.B. <?php echo '<?xml'; ?> benutzen. Der Standardwert für diese Direktive ist on.

11. Wie kann ich mit PHP mit Frontpage oder einem anderen HTML-Editor, der meinen Code verschiebt, benutzen?

Die einfachste Möglichkeit ist, ASP-Tags in Ihrem PHP-Code zu aktivieren. Sie können dann <% und %> zur Begrenzung Ihres Codes verwenden. Viele HTML-Editoren verarbeiten solche Code-Blöcke intelligenter. Um die ASP-Tags zu aktiveren, müssen Sie in Ihrer php.ini asp_tags auf On setzen oder die gleichwertige Apache-Direktive verwenden.

12. Wo kann ich eine komplette Liste der mir zur Verfügung stehenden Variablen finden?

Lesen Sie die Manual-Seite zu vordefinierten Variablen, die eine (unvollständige) Liste der vordefinierten Variablen, die Ihren Skripten zur Verfügung stehen, enthält. Eine komplette Liste der verfügbaren Variablen (und viele weitere Informationen) können Sie sehen, wenn Sie die Funktion phpinfo() aufrufen. Beachten Sie auch den Abschnitt zu Variablen außerhalb von PHP, der verschiedene Szenarien für externen Variablen wie HTML-Formulare, Cookies oder den URL beschreibt.

register_globals: important note: Since PHP 4.2.0, the default value for the PHP directive register_globals is off. The PHP community encourages all to not rely on this directive but instead use other means, such as the superglobals.

13. Ich versuche, auf eine der Standard-CGI-Variablen (wie $DOCUMENT_ROOT oder $HTTP_REFERER) in einer selbst-definierten Funktion zuzugreifen, aber anscheinend kann ich nicht darauf zugreifen. Was mache ich falsch?

Es ist wichtig, zu verstehen, dass die PHP-Direktive register_globals auch Server- und Umgebungsvariablen betrifft. Wenn register_globals = off (Standardwert seit PHP 4.2.0), dann existiert $DOCUMENT_ROOT nicht. Stattdessen können Sie $_SERVER['DOCUMENT_ROOT'] benutzen. Wenn register_globals = on, dann existieren auch die Variablen $DOCUMENT_ROOT und $GLOBALS['DOCUMENT_ROOT'].

Wenn Sie sicher sind, dass register_globals = on, und sich wundern, warum $DOCUMENT_ROOT innerhalb von Funktionen nicht verfügbar ist: das liegt daran, dass es sich dabei um eine Variable wie jede andere handelt und sie deswegen innerhalb der Funktion zunächst global $DOCUMENT_ROOT benutzen müssen. Siehe auch die Manual-Seite zum Geltungsbereich von Variablen. Empfehlenswert ist, register_globals = off zu verwenden.

Superglobals: availability note: Since PHP 4.1.0, superglobal arrays such as $_GET , $_POST, and $_SERVER, etc. have been available. For more information, read the manual section on superglobals

Zurück | Zum Anfang | Nach vorne
Probleme bei der Compilierung | Nach oben | PHP und HTML


PHP und HTML

PHP Handbuch
Zurück Nach vorne

Kapitel 51. PHP und HTML

PHP und HTML interagieren stark: PHP kann HTML generieren und HTML kann Informationen an PHP weitergeben. Bevor Sie diese FAQ lesen, sollten Sie verstanden haben, wie Sie auf Variablen außerhalb von PHP zugreifen können. Die Manual-Seite zu diesem Thema enthält viele Beispiele, die das Verständnis erleichtern. Besonders wichtig ist weiterhin, zu wissen, was die register_globals-Einstellung für Sie bedeutet.

1. Wie muss ich enkodieren / dekodieren, wenn ich einen Wert über ein Formular / einen URL weitergeben möchte?
2. Ich versuche ein <input type="image">-Tag zu benutzen, aber die Variablen $foo.x and $foo.y sind nicht verfügbar. Auch $_GET['foo.x'] existiert nicht. Wo finde ich diese?
3. Wie kann ich Array aus einem HTML-Formular erstellen?
4. Wie bekomme ich alle Werte aus einem "select multiple"-HTML-Tag?

1. Wie muss ich enkodieren / dekodieren, wenn ich einen Wert über ein Formular / einen URL weitergeben möchte?

Es gibt mehrere Stufen, für die Enkodierung wichtig ist. Angenommen, Sie haben einen String $data, der den String, den Sie in nicht-enkodierter Weise weitergeben möchten, enthält. Dann sind dies die relevanten Stufen:

  • HTML-Interpretation: Wenn Sie einen zufälligen String angeben wollen, müssen Sie ihn in die doppelte Anführungszeichen einschließen und htmlspecialchars() auf den gesamten Wert anwenden.

  • URL: Ein URL besteht aus mehreren Teilen. Wenn Sie wollen, dass Ihre Daten als ein Element interpretiert werden, dann müssen Sie Ihre Daten mit urlencode() enkodieren.

Beispiel 51-1. Ein verstecktes HTML-Formular-Element

<?php
    echo "<input type=hidden value=\"" . htmlspecialchars($data) . "\">\n";
?>

Anmerkung: Es wäre falsch, urlencode() auf $data anzuwenden, da es die Aufgabe des Browsers ist, die Daten zu enkodieren. Alle populären Browser machen dies auch korrekt. Beachten Sie, dass dies unabhängig von der verwendeten Methode (also z.B. GET oder POST) geschieht. Feststellen werden Sie dies aber nur bei GET-Anfragen, da POST-Anfragen meist versteckt geschehen.

Beispiel 51-2. Daten, die vom Benutzer bearbeitet werden sollen

<?php
    echo "<textarea name=mydata>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Anmerkung: Die Daten werden wie Browser wie gewünscht ausgegeben, da der Browser die HTML-escapten Symbole interpretiert.

Nach dem Abschicken, egal ob via GET oder POST, werden die Daten für den Transfer enkodiert (mit urlencode()) und von PHP direkt wieder dekodiert (mit urldecode()). Sie müssen also für die En- und Dekodierung nicht selbst sorgen, die Browser und PHP erledigen dies automatisch für Sie.

Beispiel 51-3. In einem URL

<?php
    echo "<a href=\"" . htmlspecialchars("/nextpage.php?stage=23&data=" .
        urlencode($data)) . "\">\n";
?>

Anmerkung: Hier wird eine HTML-GET-Anfrage gefakt, deswegen müssen Sie die Daten manuell mit urlencode() enkodieren.

Anmerkung: Sie müssen htmlspecialchars() auf den gesamten URL anwenden, da der URL als Wert eines HTML-Attributs auftritt. In diesem Fall wird der Browser zuerst etwas wie "un-htmlspecialchars()" auf den Wert anwenden und dann erst den URL weitergeben. PHP wird den URL korrekt verstehen, da Sie die Daten mit urlencode() enkodiert haben.

Sie werden feststellen, dass das & im URL durch &amp; ersetzt wird. Auch wenn die meisten Browser richtig arbeiten, falls Sie diese Ersetzung vergessen sollten, sollten Sie sich trotzdem nicht darauf verlassen. Das bedeutet, dass Sie - auch wenn Ihr URL nicht dynamisch ist - trotzdem htmlspecialchars() auf den URL anwenden müssen.

2. Ich versuche ein <input type="image">-Tag zu benutzen, aber die Variablen $foo.x and $foo.y sind nicht verfügbar. Auch $_GET['foo.x'] existiert nicht. Wo finde ich diese?

Wenn ein Formular abgeschickt werden soll, ist es möglich, ein Bild statt des Standard-Submit-Buttons zu verwenden, indem Sie ein Tag wie das folgende verwenden:
<input type="image" src="image.gif" name="foo">
Wenn der Benutzer irgendwo auf das Bild klickt, wird das zugehörige Formular zusammen mit zwei zusätzlichen Variablen übertragen: foo.x und foo.y.

Da foo.x und foo.y in PHP ungültige Variablennamen erzeugen würden, werden Sie automatisch in $foo_x und $foo_y konvertiert. Die Punkte werden also durch Unterstriche ersetzt. Sie können auf diese Variablen also genauso wie im Abschnitt Variablen außerhalb von PHP zugreifen, z.B. $_GET['foo_x'].

3. Wie kann ich Array aus einem HTML-Formular erstellen?

Um die Formularwerte als Array im PHP-Skript zur Verfügung zu haben, müssen Sie die <input>, <select> or <textarea>-Felder wie folgt benennen:
<input name="MeinArray[]">
<input name="MeinArray[]">
<input name="MeinArray[]">
<input name="MeinArray[]">
Beachten Sie die eckigen Klammern hinter dem Variablen-Namen, denn dadurch wird das Array erst erzeugt. Sie können Felder in verschiedenen Arrays gruppieren, wenn Sie verschiedenen Feldern die gleichen Namen geben:
<input name="MeinArray[]">
<input name="MeinArray[]">
<input name="MeinAnderesArray[]">
<input name="MeinAnderesArray[]">
Daraus werden zwei Arrays, MeinArray und MeinAnderesArray erstellt. Es ist auch möglich, spezielle Schlüssel anzugeben:
<input name="AnderesArray[]">
<input name="AnderesArray[]">
<input name="AnderesArray[email]">
<input name="AnderesArray[telefon]">
Das Array AnderesArray enthält daraufhin die Schlüssel 0, 1, email und telefon.

Anmerkung: Die Angabe eines Array-Schlüssels ist in HTML optional. Wenn Sie keinen Schlüssel angeben, wird das Array in der Formular-Reihenfolge gefüllt. Im ersten Beispiel enthält das Array MeinArray also die Schlüssel 0, 1, 2 und 3.

Siehe auch: Array-Funktionen und Variablen außerhalb von PHP.

4. Wie bekomme ich alle Werte aus einem "select multiple"-HTML-Tag?

Mit einem "select multiple"-Tag können Benutzer mehrere Werte aus einer Liste auswählen. Diese Werte werden dann an den "action handler" des Formulars (z.B. ein PHP-Skript) übergeben. Problematisch ist dabei, dass alle mit demselben Namen übergeben werden, z.B.:
<select name="var" multiple>
Jede ausgewählte Option wird übergeben als:
var=option1
var=option2
var=option3
Jede Option wird den Inhalt der vorherigen $var-Variablen überschreiben. Die Lösung ist, die spezielle PHP-Lösung hierfür zu verwenden. Sie sollten das Tag wie folgt umschreiben:
<select name="var[]" multiple>
PHP weiß dann, dass $var als Array behandelt werden soll. Jede ausgewählte Wert wird dem Array hinzugefügt. Das erste Element wird zu $var[0], das nächste zu $var[1] etc. Die count()-Funktion kann benutzt werden, um herauszufinden, wie viele Optionen ausgewählt wurden. Mit der sort()-Funktion können Sie bei Bedarf das Array sortieren.

Beachten Sie, dass, falls Sie JavaScript benutzen, die eckigen Klammern [] im Feldnamen Probleme machen können, wenn Sie versuchen, über den Namen auf das Feld zu verweisen. Benutzen Sie stattdessen die numerische ID des Formularfelds oder schließen Sie den Variablennamen in einfache Anführungszeichen ein und benutzen Sie dies als den Index, z.B.:
variable = documents.forms[0].elements['var[]'];

Zurück | Zum Anfang | Nach vorne
PHP benutzen | Nach oben | PHP and COM


PHP and COM

PHP Handbuch
Zurück Nach vorne

Kapitel 52. PHP and COM

PHP can be used to access COM and DCOM objects on Win32 platforms.

1. I have built a DLL to calculate something. Is there any way to run this DLL under PHP ?
2. What does 'Unsupported variant type: xxxx (0xxxxx)' mean ?
3. Is it possible manipulate visual objects in PHP ?
4. Can I store a COM object in a session ?
5. How can I trap COM errors ?
6. Can I generate DLL files from PHP scripts like i can in Perl ?
7. What does 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' mean ?
8. How can I run COM object from remote server ?
9. I get 'DCOM is disabled in C:\path...\scriptname.php on line 6', what can I do ?
10. Is it possible to load/manipulate an ActiveX object in a page with PHP ?
11. Is it possible to get a running instance of a component ?
12. Is there a way to handle an event sent from COM object ?
13. I'm having problems when trying to invoke a method of a COM object which exposes more than one interface. What can I do ?
14. So PHP works with COM, how about COM+ ?
15. If PHP can manipulate COM objects, can we imagine to use MTS to manage components resources, in conjunction with PHP ?

1. I have built a DLL to calculate something. Is there any way to run this DLL under PHP ?

If this is a simple DLL there is no way yet to run it from PHP. If the DLL contains a COM server you may be able to access it if it implements the IDispatch interface.

2. What does 'Unsupported variant type: xxxx (0xxxxx)' mean ?

There are dozens of VARIANT types and combinations of them. Most of them are already supported but a few still have to be implemented. Arrays are not completely supported. Only single dimensional indexed only arrays can be passed between PHP and COM. If you find other types that aren't supported, please report them as a bug (if not already reported) and provide as much information as available.

3. Is it possible manipulate visual objects in PHP ?

Generally it is, but as PHP is mostly used as a web scripting language it runs in the web servers context, thus visual objects will never appear on the servers desktop. If you use PHP for application scripting e.g. in conjunction with PHP-GTK there is no limitation in accessing and manipulating visual objects through COM.

4. Can I store a COM object in a session ?

No, you can't. COM instances are treated as resources and therefore they are only available in a single script's context.

5. How can I trap COM errors ?

Currently it's not possible to trap COM errors beside the ways provided by PHP itself (@, track_errors, ..), but we are thinking of a way to implement this.

6. Can I generate DLL files from PHP scripts like i can in Perl ?

No, unfortunately there is no such tool available for PHP.

7. What does 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' mean ?

This error can have multiple reasons:

  • the CLSID is wrong

  • the requested DLL is missing

  • the requested component doesn't implement the IDispatch interface

8. How can I run COM object from remote server ?

Exactly like you run local objects. You only have to pass the IP of the remote machine as second parameter to the COM constructor.

Make sure that you have set com.allow_dcom=true in your php.ini.

9. I get 'DCOM is disabled in C:\path...\scriptname.php on line 6', what can I do ?

Edit your php.ini and set com.allow_dcom=true.

10. Is it possible to load/manipulate an ActiveX object in a page with PHP ?

This has nothing to do with PHP. ActiveX objects are loaded on client side if they are requested by the HTML document. There is no relation to the PHP script and therefore there is no direct server side interaction possible.

11. Is it possible to get a running instance of a component ?

This is possible with the help of monikers. If you want to get multiple references to the same word instance you can create that instance like shown:

<?php
$word = new COM("C:\docs\word.doc");
?>

This will create a new instance if there is no running instance available or it will return a handle to the running instance, if available.

12. Is there a way to handle an event sent from COM object ?

Starting in PHP 4.3.0, you can define an event sink and bind it as shown in the example below. You can use com_print_typeinfo() to have PHP generate a skeleton for the event sink class.

Beispiel 52-1. COM event sink example

<?php
class IEEventSinker {
  var $terminated = false;

  function ProgressChange($progress, $progressmax) {
    echo "Download progress: $progress / $progressmax\n";
  }

  function DocumentComplete(&$dom, $url) {
    echo "Document $url complete\n";
  }

  function OnQuit() {
    echo "Quit!\n";
    $this->terminated = true;
  }
}
$ie = new COM("InternetExplorer.Application");
$sink =& new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.php.net");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

13. I'm having problems when trying to invoke a method of a COM object which exposes more than one interface. What can I do ?

The answer is as simple as unsatisfying. I don't know exactly but i think you can do nothing. If someone has specific information about this, please let me know :)

14. So PHP works with COM, how about COM+ ?

COM+ extends COM by a framework for managing components through MTS and MSMQ but there is nothing special that PHP has to support to use such components.

15. If PHP can manipulate COM objects, can we imagine to use MTS to manage components resources, in conjunction with PHP ?

PHP itself doesn't handle transactions yet. Thus if an error occurs no rollback is initiated. If you use components that support transactions you will have to implement the transaction management yourself.

Zurück | Zum Anfang | Nach vorne
PHP und HTML | Nach oben | PHP und andere Sprachen


PHP und andere Sprachen

PHP Handbuch
Zurück Nach vorne

Kapitel 53. PHP und andere Sprachen

PHP ist die beste Sprache für Webanwendungen, aber was ist mit anderen Sprachen?

1. PHP vs. ASP?
2. Gibt es ein Programm, was ASP in PHP konvertieren kann?
3. PHP vs. Cold Fusion?
4. PHP vs. Perl?

1. PHP vs. ASP?

ASP ist eigentlich keine Sprache an sich, es ist ein Akronym für Active Server Pages, die eigentlichen Sprachen in denen ASP programmiert wird sind Visual Basic Script oder JScript. Der größte Nachteil von ASP ist, dass es ein proprietäres System ist und nativ nur auf Microsofts Internet Information Server (IIS) verwendet werden kann. Dies limitiert ASP auf Win32 basierende Server. Es gibt einige Projekte, die die Möglichkeit bieten, ASP unter anderen Umgebungen zu verwenden: InstantASP von Halcyon (kommerziell), Chili!Soft ASP von Chili!Soft (kommerziell) und OpenASP von ActiveScripting.org (kostenlos). ASP wird nachgesagt, dass es eine langsamere und schwerfälligere Sprache als PHP ist, instabiler noch dazu. Eines der Vorteile von ASP ist, dass es, weil VBScript verwendet wird, relativ leicht zu erlernen ist, wenn Sie bereits Visual Basic programmieren können. Auch ist die ASP-Unterstützung im IIS Server standardmäßig vorhanden, was es einfach macht, ASP zum laufen zu kriegen. Der Umfang von ASP ist allerdings sehr limitiert. Wenn Sie also "fortgeschrittene" Features wie die Verbindung zu FTP-Servern nutzen wollen, müssen Sie kommerzielle Komponenten hinzukaufen.

2. Gibt es ein Programm, was ASP in PHP konvertieren kann?

Ja, asp2php wird meistens als Antwort genannt.

3. PHP vs. Cold Fusion?

PHP is commonly said to be faster and more efficient for complex programming tasks and trying out new ideas. PHP is generally referred to as more stable and less resource intensive as well. Cold Fusion has better error handling, database abstraction and date parsing although database abstraction is addressed in PHP 4. Another thing that is listed as one of Cold Fusion's strengths is its excellent search engine, but it has been mentioned that a search engine is not something that should be included in a web scripting language. PHP runs on almost every platform there is; Cold Fusion is only available on Win32, Solaris, Linux and HP/UX. Cold Fusion has a good IDE and is generally easier to get started with, whereas PHP initially requires more programming knowledge. Cold Fusion is designed with non-programmers in mind, while PHP is focused on programmers.

A great summary by Michael J Sheldon on this topic has been posted to the PHP mailing list. A copy can be found here.

4. PHP vs. Perl?

The biggest advantage of PHP over Perl is that PHP was designed for scripting for the web where Perl was designed to do a lot more and can because of this get very complicated. The flexibility / complexity of Perl makes it easier to write code that another author / coder has a hard time reading. PHP has a less confusing and stricter format without losing flexibility. PHP is easier to integrate into existing HTML than Perl. PHP has pretty much all the 'good' functionality of Perl: constructs, syntax and so on, without making it as complicated as Perl can be. Perl is a very tried and true language, it's been around since the late eighties, but PHP is maturing very quickly.

Zurück | Zum Anfang | Nach vorne
PHP and COM | Nach oben | Von PHP 2 auf PHP 3 umsteigen


Von PHP 2 auf PHP 3 umsteigen

PHP Handbuch
Zurück Nach vorne

Kapitel 54. Von PHP 2 auf PHP 3 umsteigen

PHP hat schon eine lange Geschichte hinter sich: Das legendäre PHP 1.0, PHP/FI, PHP 3.0 und PHP 4.0.

1. Von PHP 2 auf PHP 3 umsteigen?

1. Von PHP 2 auf PHP 3 umsteigen?

PHP/FI 2.0 wird nicht mehr unterstützt. Lesen Sie bitte den entsprechenden Abschnitt im Handbuch für Informationen zum Umstieg von PHP/FI 2.0.

Wenn Sie immer noch mit PHP 2 arbeiten empfehlen wir stärkstens, direkt auf PHP 4 umzusteigen.

Zurück | Zum Anfang | Nach vorne
PHP und andere Sprachen | Nach oben | Von PHP 3 auf PHP 4 umsteigen


Von PHP 3 auf PHP 4 umsteigen

PHP Handbuch
Zurück Nach vorne

Kapitel 55. Von PHP 3 auf PHP 4 umsteigen

PHP hat schon eine lange Geschichte hinter sich: Das legendäre PHP 1.0, PHP/FI, PHP 3.0 und PHP 4.0.

1. Von PHP 3 auf PHP 4 umsteigen?
2. Inkompatible Funktionen?

1. Von PHP 3 auf PHP 4 umsteigen?

PHP 4 wurde so abwärtskompatibel wie möglich entwickelt. Nur wenig der Funktionalität wurde dabei grundlegend verändert. Wenn Sie sich über die Kompatibilität wirklich nicht sicher sind, dann sollten Sie PHP 4 auf einem Testsystem installieren und Ihre Scripts dort testen.

Siehe auch im Kapitel Richtiges Umsteigen dieses Handbuchs.

2. Inkompatible Funktionen?

Da PHP 4 eigentlich ein Rewrite der gesamten PHP Engine ist, gibt es sehr wenige Funktionen, die verändert wurden. Und auch darunter nur einige exotische.

Zurück | Zum Anfang | Nach vorne
Von PHP 2 auf PHP 3 umsteigen | Nach oben | Verschiedene Fragen


Verschiedene Fragen

PHP Handbuch
Zurück Nach vorne

Kapitel 56. Verschiedene Fragen

Es gibt diverse Fragen, die in keine andere Kategorie passen. Diese Fragen finden Sie hier.

1. Wie entpacke ich Manuals unter Windows, die mit bz2 komprimiert wurden?

1. Wie entpacke ich Manuals unter Windows, die mit bz2 komprimiert wurden?

Wenn Sie keinen Entpacker haben, der bz2 entpacken kann, laden Sie sich das Kommandozeilenprogramm von Redhat herunter (siehe Informationen weiter unten).

Wenn Sie nicht das Kommandozeeilenprogramm verwenden wollen, dann können Sie kostenlose Tools wie den Stuffit Expander, UltimateZip, 7-Zip, oder Quick Zip verwenden. Wenn Sie WinRAR oder Power Archiver haben, können Sie die bz2 Dateien damit entpacken. Sollten Sie Windows Commander verwenden, so gibt es dafür ein kostenloses bz2 Plugin auf der Windows Commander Seite.

Das bzip2 Kommandozeilenprogramm von Redhat:

Benutzer von Win2k SP2 verwenden die aktuelle Version 1.0.2, alle anderen Windows-Benutzer sollten Version 1.00 nehmen. Nach dem Download sollten Sie die Datei in bzip2.exe umbenennen. Kopieren Sie diese zur leichteren Handhabung in ein Verzeichnis im Windows-Pfad, z.B. C:\Windows, wobei C: das Laufwerk Ihrer Windows Installation ist.

Anmerkung: lang steht für die Sprache und x für das Format, z.B. pdf. Zum entpacken von php_manual_lang.x.bz2 folgen Sie diesen einfachen Schritten:

  • Öffenen Sie die Eingabeaufforderung

  • Springen Sie mit cd in das Verzeichnis, in dem Sie die heruntergeladene Datei php_manual_lang.x.bz2 gespeichert haben

  • Mit bzip2 -d php_manual_lang.x.bz2, entpacken Sie die Datei php_manual_lang.x im selben Verzeichnis

Wenn Sie die Datei php_manual_lang.tar.bz2 heruntergeladen haben, die viele HTML-Dateien enthält, gehen Sie genauso vor. Der einzige Unterschied ist, dass Sie eine Datei namens php_manual_lang.tar erhalten. Die meisten Entpacker unter Windows verstehen das tar Format wie z.B. WinZip.

Zurück | Zum Anfang | Nach vorne
Von PHP 3 auf PHP 4 umsteigen | Nach oben | Anhang


Anhang

PHP Handbuch
Zurück Nach vorne

IX. Anhang

Inhaltsverzeichnis
A. Die Geschichte von PHP und verwandten Projekten
B. Migrating from PHP 4 to PHP 5
C. Migrating from PHP 3 to PHP 4
D. Migration von PHP/FI 2.0 zu PHP 3.0
E. Der PHP-Debugger
F. Extending PHP 3
G. Liste der Funktion Aliase
H. Reservierte Wörter in PHP
I. Liste von Ressourcentypen
J. List of Supported Protocols/Wrappers
K. List of Available Filters
L. List of Supported Socket Transports
M. PHP type comparison tables
N. List of Parser Tokens
O. Über das Handbuch
P. Open Publication License
Q. Funktions-Index
R. Fehlendes

Zurück | Zum Anfang | Nach vorne
Verschiedene Fragen |  | Die Geschichte von PHP und verwandten Projekten


Die Geschichte von PHP und verwandten Projekten

PHP Handbuch
Zurück Nach vorne

Anhang A. Die Geschichte von PHP und verwandten Projekten

Inhaltsverzeichnis
Die Geschichte von PHP
Geschichte von PHP verwandten Projekten
Bücher über PHP
Publikationen über PHP

PHP hat in den letzten Jahren einen langen Weg hinter sich, und zu einer der bekanntesten Sprachen für das Web zu werden, war keine einfache Aufgabe. Wenn Sie daran interessiert sind kurz zu sehen, wie PHP zu dem gewachsen ist was es heute ist, dann lesen Sie weiter. Ältere Versionen von PHP finden Sie im PHP Museum.

Die Geschichte von PHP

PHP/FI

PHP ist der Nachfolger eines älteren Produktes, PHP/FI. PHP/FI wurde 1995 von Rasmus Lerdorf geschaffen. Ursprünglich war PHP/FI ein Set von Perl Skripten zur Erfassung der Zugriffe auf seinen Webauftritt. Er nannte dieses Set von Skripten 'Personal Home Page Tools'. Als dann mehr Funktionalität benötigt wurde, schrieb Rasmus eine viel größere Umsetzung in C, welche auch mit Datenbanken kommunizieren konnte, und den Benutzern die Entwicklung einfacher dynamischer Webapplikationen ermöglichte. Rasmus entschloss sich, den Sourcecode von PHP/FI zu veröffentlichen, sodass ihn jeder benutzen, von Fehlern bereinigen, und weiterentwicklen konnte.

PHP/FI stand für Personal Home Page / Forms Interpreter, und beinhaltete manches an Funktionalität des PHP wie wir es heute kennen. Es besaß Variablen wie in Perl, eine automatische Interpretation von Formularvariablen und eine in HTML eingebettete Syntax. Die Syntax selbst war der von Perl ähnlich, wenn auch viel eingeschränkter, einfach, und ziemlich inkonsistent.

1997 war PHP/FI 2.0, die zweite Überarbeitung der C Implementierung, Kult für einige tausend Benutzer weltweit (geschätzt). Etwa 50.000 Domains berichteten PHP/FI 2.0 installiert zu haben, was mit ca. 1% der Domains im Internet zu Buche schlug. Obwohl manche Leute diesem Projekt ein Stück Code beisteuerten, war es insgesamt immer noch ein Ein-Mann-Projekt.

PHP/FI 2.0 wurde im November 1997 offiziell freigegeben, nachdem es die meiste Zeit seines Lebenszyklus als verschiedene Betaversionen verbracht hatte. Es wurde kurz danach von den ersten Alphaversionen von PHP 3 abgelöst.

PHP 3

PHP 3.0 war die erste Version, die dem heutigen PHP sehr gleicht. Es wurde 1997 von Andi Gutmans und Zeev Suraski neu geschrieben, nachdem PHP/FI 2.0 ihrer Meinung nach für die Entwicklung ihrer eCommerce Applikation für ein Universitätsprojekt arbeiteten, viel zu schwach war. Auf die Basis der bestehenden Benutzer von PHP/FI aufbauend, entschieden sich Andi, Rasmus und Zeev zur Kooperation, und kündigten PHP 3.0 als den offiziellen Nachfolger von PHP/FI 2.0 an, und die Entwicklung von PHP/FI 2.0 wurde größtenteils eingestellt.

Eine der größten Stärken von PHP 3.0 waren die starken Erweiterungsmöglichkeiten. Zusätzlich zu der soliden Infrastruktur für eine Menge an Datenbanken, Protokollen und APIs, lockten vor allem die Erweiterungsmöglichkeiten von PHP 3 dutzende von Entwicklern an, welche sich beteiligten, und neue Erweiterungsmodule einbrachten. Möglicherweise war das der Schlüssel zu dem gewaltigen Erfolg von PHP 3.0. Weitere besondere Merkmale von PHP 3.0 waren die Unterstützung für objektorientierte Syntax und die viel bessere sowie konsistentere Sprachsyntax.

Die gesamte neue Sprache wurde unter einem neuen Namen veröffentlicht, welche die im Namen PHP/FI 2.0 vorhandene Implizierung einer eingeschränkten persönlichen Nutzung beseitigte. Es wurde einfach 'PHP' genannt, ein rekursives Akronym für PHP: Hypertext Preprocessor.

Gegen Ende 1998 wuchs PHP auf eine installierte Basis von (geschätzten) zehntausenden Benutzern und hunderttausenden Websites, auf denen PHP installiert war, heran. An seinem Höhepunkt war PHP 3.0 auf etwa 10% der Webserver im Internet installiert.

PHP 3.0 wurde im Juni 1998 nach einer neunmonatigen öffentlichen Testphase offiziell freigegeben.

PHP 4

Im Winter 1998, kurz nach der offiziellen Freigabe von PHP 3.0, begannen Andi Gutmans und Zeev Suraski den Kern von PHP umzuschreiben. Die Ziele waren eine verbesserte Leistung von komplexen Applikationen, und eine verbesserte Modularität des Basiscodes. Solche Applikationen wurden durch die neuen Leistungsmerkmale von PHP 3.0, der Unterstützung einer großen Auswahl von Datenbanken und APIs von Drittanbietern möglich gemacht, aber PHP 3.0 war nicht dafür entworfen, solche komplexen Applikationen auch effizient zu handhaben.

Die neue Engine, tituliert als 'Zend Engine' (aus den Vornamen Zeev und Andi gebildet), entsprach diesen Zielen im Design erfolgreich, und wurde zum ersten Mal Mitte 1999 eingeführt. PHP 4.0, das auf dieser Engine, verbunden mit einer großen Auswahl an zusätzlichen Leistungsmerkmalen basiert, wurde im Mai 2000 offiziell freigegeben, fast zwei Jahre nach seinem Vorgänger PHP 3.0. Zusätzlich zu der stark verbesserten Leistung, inkludierte PHP 4.0 andere wichtige Leistungsmerkmale, wie Unterstützung für viele weitere Webserver, HTTP-Sessions, Ausgabepufferung, sicherere Wege im Umgang mit Benutzereingaben, und verschiedene neue Sprachkonstrukte.

PHP 4 ist die derzeit aktuellste freigegebene Version von PHP. Die Arbeit an der Modifikation und Verbesserung der Zend Engine zur Integration der neuen für PHP 5.0 entworfenen Leistungsmerkmale hat bereits begonnen.

Heute wird PHP von (schätzungsweise) hunderttausenden Entwicklern verwendet, und es wird von mehreren Millionen Sites berichtet, auf welchen PHP installiert ist, was mit über 20% der Domains im Internet zu Buche schlägt.

Das Entwicklerteam von PHP umfasst dutzende Entwickler, sowie dutzende andere, welche an PHP verwandten Projekten wie PEAR oder dem Dokumentationsprojekt arbeiten.

PHP 5

Die Zukunft von PHP ist hauptsächlich von seinem Kern, der Zend Engine, geprägt. PHP 5 wird die neue Zend Engine 2.0 enthalten. Weitere Informationen zur Zend Engine finden Sie auf der Webseite.

Zurück | Zum Anfang | Nach vorne
Anhang | Nach oben | Geschichte von PHP verwandten Projekten


Geschichte von PHP verwandten Projekten

PEAR

PEAR, das PHP Extension and Application Repository (ursprünglich PHP Extension and Add-on Repository) ist PHP's Version von fundamentalen Klassen, und könnte in der Zukunft zu einem der Hauptwege zur Verteilung von PHP- und C-basierten PHP Erweiterungen zwischen Entwicklern werden.

PEAR entstand in Diskussionen während des PHP Developers' Meeting (PDM) vom Januar 2000 in Tel Aviv. Es wurde von Stig S. Bakken geschaffen, und ist seiner erstgeborenen Tochter, Malin Bakken, gewidmet.

Seit Anfang 2000 ist PEAR zu einem großen, signifikanten Projekt mit vielen Entwicklern gewachsen, welche an der Implementierung von gemeinsamer, wiederverwendbarer Funktionalität zum Nutzen der gesamten PHP Gemeinschaft arbeiten. PEAR umfasst heute eine große Auswahl an infrastrukturellen Basisklassen, für Datenbankzugriff, Zwischenspeicherung von Inhalten, mathematischen Kalkulationen, eCommerce, und viel, viel mehr.

PHP Initiative zur Qualitätssicherung

Die PHP Initiative zur Qualitätssicherung wurde im Sommer 2000 als Reaktion auf die Kritik, dass PHP Releases für Produktionssysteme nicht genügend getestet würden. Das Team besteht nun aus einer Hauptgruppe von Entwicklern mit einem guten Verständnis der PHP Codebasis. Diese Entwickler stecken eine Menge ihrer Zeit in das auffinden und Beheben von Fehlern in PHP. Zusätzlich gibt es noch viele andere Teammitglieder, die diese Fehlerbehebungen auf den verschiedensten Plattformen testen, und Feedback geben.

PHP-GTK

PHP-GTK ist die Lösung von PHP, um clientseitige GUI Applikationen zu schreiben. Andrei Zmievski erinnert sich an die Planungs- und Erstellungsphase von PHP-GTK:

GUI Programmierung hat mich immer schon interessiert und ich fand, dass Gtk+ ein sehr nettes Werkzeug ist, außer dass dessen Programmierung in C etwas langwierig ist. Nachdem ich die Implementierungen von PyGtk und GTK-Perl miterlebt habe, entschied ich mich zu sehen, ob PHP ebenfalls mit Gtk+ verbunden werden könnte, wenn auch minimal. Ab August 2000 hatte ich etwas mehr Freizeit, und begann zu experimentieren. Meine Hauptvorlage war die PyGTK Implementierung, denn sie war von den Leistungsmerkmalen her ziemlich komplett, und hatte eine nette objektorientierte Schnittstelle. James Henstridge, der Autor von PyGtk, hatte in diesen ersten Schritten immer hilfreichen Rat.

Die Schnittstellen zu all den Gtk+ Funktionen per Hand zu schreiben kam nicht in Frage, und so griff ich die Idee eines Code Generators auf, ähnlich wie es PyGTK tat. Der Code Generator ist ein PHP Programm, das eine Reihe von .defs Dateien mit den Gtk+ Klassen, Konstanten und Information über Methoden liest, und danach C Code generiert, der PHP mit ihnen verbindet. Was nicht automatisch generiert werden kann, wird händisch in eine .overrides Datei geschrieben.

Die Arbeit an dem Code Generator und der Infrastruktur dauerte einige Zeit, da ich im Herbst 2000 nur wenig Zeit für die Arbeit an PHP-GTK erübrigen konnte. Nachdem ich PHP-GTK Frank Kronman gezeigt hatte bekam er Interesse, und begann mir bei der Arbeit am Code Generator und der Win32 Implementierung zu helfen. Es war richtig aufregend, als wir das erste Hello World Programm schrieben und laufen ließen. Es dauerte noch einige Monate, bis wir das Projekt in einen vorzeigbaren Zustand brachten und am 1. März 2001 die erste Version freigeben konnten. Die Geschichte schlug prompt SlashDot.

In dem Gefühl, dass PHP-GTK umfangreich werden könnte, habe ich extra Mailinglisten und CVS Repositories dafür eingerichtet, wie auch mit Hilfe von Colin Viebrock die Website gtk.php.net. Die Dokumentation musste ebenfalls erstellt werden, und James Moore begann hierbei zu helfen.

Seit seiner Freigabe gewinnt PHP-GTK an Popularität. Wir haben unser eigenes Dokumentationsteam, das Handbuch wird weiter verbessert, die Leute beginnen Erweiterungen für PHP-GTK, und auch immer mehr Applikationen mit PHP-GTK zu schreiben.

Zurück | Zum Anfang | Nach vorne
Die Geschichte von PHP und verwandten Projekten | Nach oben | Bücher über PHP


Bücher über PHP

Seit PHP gewachsen ist, wurde auch begonnen, es als weltweit populäre Entwicklungsplattform anzuerkennen. Eine der Interessantesten Arten dies zu sehen war, die im Laufe der Jahre erscheinenden Bücher über PHP zu beobachten.

Unseres Wissens nach was das erste Buch über PHP 'PHP - tvorba interaktivních internetových aplikací', ein im im April 1999 erschienenes, von Jirka Kosek geschriebenes tschechisches Buch. Ein Monat später folgte ein von Egon Schmid, Christian Cartus und Richard Blume verfasstes deutsches Buch. Das erste englischsprachige Buch über PHP wurde kurz danach veröffentlicht, es war 'Core PHP Programming' von Leon Atkinson. Beide Bücher deckten PHP 3.0 ab.

Nachdem diese Bücher die ersten ihrer Art waren, folgte schnell eine große Anzahl Bücher von einer Menge Autoren und Verlegern. Es gibt über 40 englischsprachige Bücher, 50 Bücher in Deutsch, und über 20 Bücher in Französisch! Weiters gibt es Bücher über PHP in vielen anderen Sprachen, wie Spanisch, Koreanisch, Japanisch und Hebräisch.

Diese große Anzahl von Büchern, die von verschiedenen Autoren geschrieben, und vielen Verlegern veröffentlicht wurden, sowie deren Verfügbarkeit in so vielen Sprachen sind ein guter Beweis für den weltweiten Erfolg von PHP.

Zurück | Zum Anfang | Nach vorne
Geschichte von PHP verwandten Projekten | Nach oben | Publikationen über PHP


Publikationen über PHP

Soweit wir wissen, erschien der erste Artikel über PHP in einem gedruckten Magazin gegen Ende 1998 in der tschechischen Ausgabe der Computerworld, und behandelte PHP 3.0. Wie auch bei den Büchern war dieser der erste von einer ganzen Serie von Artikeln über PHP, welche in verschiedenen populären Magazinen erschienen sind.

Artikel über PHP erschienen in Dr. Dobbs, Linux Enterprise, Linux Magazine und vielen mehr. Artikel über die Migration von ASP-basierten Applikationen nach PHP unter Windows tauchten sogar in Microsoft's eigenem MSDN auf!

Zurück | Zum Anfang | Nach vorne
Bücher über PHP | Nach oben | Migrating from PHP 4 to PHP 5


Migrating from PHP 4 to PHP 5

PHP Handbuch
Zurück Nach vorne

Anhang B. Migrating from PHP 4 to PHP 5

Inhaltsverzeichnis
What has changed in PHP 5
Backward Incompatible Changes
CLI and CGI
Migrating Configuration Files
New Functions
New Directives
Databases
New Object Model

What has changed in PHP 5

PHP 5 and the integrated Zend Engine 2 have greatly improved PHP's performance and capabilities, but great care has been taken to break as little existing code as possible. So migrating your code from PHP 4 to 5 should be very easy. Most existing PHP 4 code should be ready to run without changes, but you should still know about the few differences and take care to test your code before switching versions in production environments.

Zurück | Zum Anfang | Nach vorne
Publikationen über PHP | Nach oben | Backward Incompatible Changes


Backward Incompatible Changes

Although most existing PHP 4 code should work without changes, you should pay attention to the following backward incompatible changes:

  • strrpos() and strripos() now use the entire string as a needle.

  • Illegal use of string offsets causes E_ERROR instead of E_WARNING.

  • array_merge() was changed to accept only arrays. If a non-array variable is passed, a E_WARNING will be thrown for every such parameter. Be careful because your code may start emitting E_WARNING out of the blue.

  • PATH_TRANSLATED server variable is no longer set implicitly under Apache2 SAPI in contrast to the situation in PHP 4, where it is set to the same value as the SCRIPT_FILENAME server variable when it is not populated by Apache. This change was made to comply with the CGI specification. Please refer to bug #23610 for further information.

  • The T_ML_CONSTANT constant is no longer defined by the Tokenizer extension. If error_reporting is set to E_ALL, PHP will generate a notice. Although the T_ML_CONSTANT was never used at all, it was defined in PHP 4. In both PHP 4 and PHP 5 // and /* */ are resolved as the T_COMMENT constant. However the PHPDoc style comments /** */ ,which starting PHP 5 are parsed by PHP, are recognized as T_DOC_COMMENT.

  • $_SERVER should be populated with argc and argv if variables_order includes "S". If you have specifically configured your system to not create $_SERVER, then of course it shouldn't be there. The change was to always make argc and argv available in the CLI version regardless of the variables_order setting. As in, the CLI version will now always populate the global $argc and $argv variables.

  • An object with no properties is no longer considered "empty".

  • Classes must be declared before used.

Beispiel B-1. strrpos() and strripos() now use the entire string as a needle

<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Beispiel B-2. An object with no properties is no longer considered "empty"

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if (!$t) {
    // Will be executed
}
?>

The following example was valid in PHP 4, although it will produce a fatal error in PHP 5.

Beispiel B-3. Classes must be declared before used

<?php
$test = new fubar();
$test->barfu();

class fubar {
    function barfu() {
        echo 'fubar';
    }
}
?>

Zurück | Zum Anfang | Nach vorne
Migrating from PHP 4 to PHP 5 | Nach oben | CLI and CGI


CLI and CGI

In PHP 5 there were some changes in CLI and CGI filenames. In PHP 5, the CGI version was renamed to php-cgi.exe (previously php.exe) and the CLI version now sits in the main directory (previously cli/php.exe).

In PHP 5 it was also introduced a new mode: php-win.exe. This is equal to the CLI version, except that php-win doesn't output anything and thus provides no console (no "dos box" appears on the screen). This behavior is similar to php-gtk.

In PHP 5, the CLI version will always populate the global $argv and $argc variables.

Zurück | Zum Anfang | Nach vorne
Backward Incompatible Changes | Nach oben | Migrating Configuration Files


Migrating Configuration Files

Since the ISAPI modules changed their names, from php4xxx to php5xxx, you need to make some changes in the configuration files. There were also changes in the CLI and CGI filenames. Please refer to the corresponding section for more information.

Migrate the Apache configuration is extremely easy. See the example below to check the change you need to do:

# change this line:
LoadModule php4_module /php/sapi/php4apache2.dll

# with this one:
LoadModule php5_module /php/php5apache2.dll

If your webserver is running PHP in CGI mode, you should note that the CGI version has changed its name from php.exe to php-cgi.exe. In Apache you should do something like this:

# change this line:
Action application/x-httpd-php "/php/php.exe"

# with this one:
Action application/x-httpd-php "/php/php-cgi.exe"

In other webservers you need to change either the CGI or the ISAPI module filenames.

Zurück | Zum Anfang | Nach vorne
CLI and CGI | Nach oben | New Functions


New Functions

In PHP 5 there are some new functions. Here is the list of them:

Arrays:

  • array_combine() - Creates an array by using one array for keys and another for its values

  • array_diff_uassoc() - Computes the difference of arrays with additional index check which is performed by a user supplied callback function

  • array_udiff() - Computes the difference of arrays by using a callback function for data comparison

  • array_udiff_assoc() - Computes the difference of arrays with additional index check. The data is compared by using a callback function

  • array_udiff_uassoc() - Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

  • array_walk_recursive() - Apply a user function recursively to every member of an array

InterBase:

  • ibase_affected_rows() - Return the number of rows that were affected by the previous query

  • ibase_backup() - Initiates a backup task in the service manager and returns immediately

  • ibase_commit_ret() - Commit a transaction without closing it

  • ibase_db_info() - Request statistics about a database

  • ibase_drop_db() - Drops a database

  • ibase_errcode() - Return an error code

  • ibase_free_event_handler() - Cancels a registered event handler

  • ibase_gen_id() - Increments the named generator and returns its new value

  • ibase_maintain_db() - Execute a maintenance command on the database server

  • ibase_name_result() - Assigns a name to a result set

  • ibase_num_params() - Return the number of parameters in a prepared query

  • ibase_param_info() - Return information about a parameter in a prepared query

  • ibase_restore() - Initiates a restore task in the service manager and returns immediately

  • ibase_rollback_ret() - Rollback transaction and retain the transaction context

  • ibase_server_info() - Request statistics about a database

  • ibase_service_attach() - Connect to the service manager

  • ibase_service_detach() - Disconnect from the service manager

  • ibase_set_event_handler() - Register a callback function to be called when events are posted

  • ibase_wait_event() - Wait for an event to be posted by the database

iconv:

  • iconv_mime_decode() - Decodes a MIME header field

  • iconv_mime_decode_headers() - Decodes multiple MIME header fields at once

  • iconv_mime_encode() - Composes a MIME header field

  • iconv_strlen() - Returns the character count of string

  • iconv_strpos() - Finds position of first occurrence of a needle within a haystack

  • iconv_strrpos() - Finds the last occurrence of a needle within the specified range of haystack

  • iconv_substr() - Cut out part of a string

Streams:

  • stream_copy_to_stream() - Copies data from one stream to another

  • stream_get_line() - Gets line from stream resource up to a given delimiter

  • stream_socket_accept() - Accept a connection on a socket created by stream_socket_server()

  • stream_socket_client() - Open Internet or Unix domain socket connection

  • stream_socket_get_name() - Retrieve the name of the local or remote sockets

  • stream_socket_recvfrom() - Receives data from a socket, connected or not

  • stream_socket_sendto() - Sends a message to a socket, whether it is connected or not

  • stream_socket_server() - Create an Internet or Unix domain server socket

Other:

  • convert_uudecode() - decode a uuencoded string

  • convert_uuencode() - uuencode a string

  • curl_copy_handle() - Copy a cURL handle along with all of it's preferences

  • dba_key_split() - Splits a key in string representation into array representation

  • dbase_get_header_info() - Get the header info of a dBase database

  • dbx_fetch_row() - Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set

  • fbsql_set_password() - Change the password for a given user

  • file_put_contents() - Write a string to a file

  • ftp_alloc() - Allocates space for a file to be uploaded

  • get_declared_interfaces() - Returns an array of all declared interfaces

  • get_headers() - Fetches all the headers sent by the server in response to a HTTP request

  • headers_list() - Returns a list of response headers sent (or ready to send)

  • http_build_query() - Generate URL-encoded query string

  • idate() - Format a local time/date as integer

  • image_type_to_extension() - Get file extension for
image-type returned by getimagesize(),
exif_read_data(),
exif_thumbnail(),
exif_imagetype()

  • imagefilter() - Applies Filter an image using a custom angle

  • imap_getacl() - Gets the ACL for a given mailbox

  • ldap_sasl_bind() - Bind to LDAP directory using SASL

  • mb_list_encodings() - Returns an array of all supported encodings

  • pcntl_getpriority() - Get the priority of any process

  • pcntl_wait() - Waits on or returns the status of a forked child as defined by the waitpid() system call

  • pg_version() - Returns an array with client, protocol and server version (when available)

  • php_check_syntax() - Check the syntax of the specified file

  • php_strip_whitespace() - Return source with stripped comments and whitespace

  • proc_nice() - Change the priority of the current process

  • pspell_config_data_dir() - Change location of language data files

  • pspell_config_dict_dir() - Change location of the main word list

  • setrawcookie() - Send a cookie with no url encoding of the value

  • snmp_read_mib() - Reads and parses a MIB file into the active MIB tree

  • sqlite_fetch_column_types() - Return an array of column types from a particular table

  • str_split() - Convert a string to an array

  • strpbrk() - Search a string for any of a set of characters

  • substr_compare() - Binary safe optionally case insensitive comparison of two strings from an offset, up to length characters

  • time_nanosleep() - Delay for a number of seconds and nano seconds

Anmerkung: The Tidy extension has also changed its API completely.

Zurück | Zum Anfang | Nach vorne
Migrating Configuration Files | Nach oben | New Directives


New Directives

There were some new php.ini directives introduced in PHP 5. Here is a list of them:

  • mail.force_extra_parameters - Force the addition of the specified parameters to be passed as extra parameters to the sendmail binary. These parameters will always replace the value of the 5th parameter to mail(), even in safe mode

  • register_long_arrays - allow/disallow PHP to register the deprecated long $HTTP_*_VARS

  • session.hash_function - select a hash function (MD5 or SHA-1)

  • session.hash_bits_per_character - define how many bits are stored in each character when converting the binary hash data to something readable (from 4 to 6)

  • zend.ze1_compatibility_mode - Enable compatibility mode with Zend Engine 1 (PHP 4)

Zurück | Zum Anfang | Nach vorne
New Functions | Nach oben | Databases


Databases

There were some changes in PHP 5 regarding databases (MySQL and SQLite).

In PHP 5 the MySQL client libraries are not bundled, because of license problems and some others. For more information, read the FAQ entry.

There is also a new extension, MySQLi (Improved MySQL), which is designed to work with MySQL 4.1 and above.

Since PHP 5, the SQLite extension is built-in PHP. SQLite is an embeddable SQL database engine and is not a client library used to connect to a big database server (like MySQL or PostgreSQL). The SQLite library reads and writes directly to and from the database files on disk.

Zurück | Zum Anfang | Nach vorne
New Directives | Nach oben | New Object Model


New Object Model

In PHP 5 there is a new Object Model. PHP's handling of objects has been completely rewritten, allowing for better performance and more features. Please read http://www.php.net/zend-engine-2.php for more info.

Zurück | Zum Anfang | Nach vorne
Databases | Nach oben | Migrating from PHP 3 to PHP 4


Migrating from PHP 3 to PHP 4

PHP Handbuch
Zurück Nach vorne

Anhang C. Migrating from PHP 3 to PHP 4

Inhaltsverzeichnis
What has changed in PHP 4
Running PHP 3 and PHP 4 concurrently
Migrating Configuration Files
Parser behavior
Error reporting
Initializers
empty("0")
Missing functions
PHP 3 extension
Variable substitution in strings
Cookies
Handling of global variables

What has changed in PHP 4

PHP 4 and the integrated Zend engine have greatly improved PHP's performance and capabilities, but great care has been taken to break as little existing code as possible. So migrating your code from PHP 3 to 4 should be much easier than migrating from PHP/FI 2 to PHP 3. A lot of existing PHP 3 code should be ready to run without changes, but you should still know about the few differences and take care to test your code before switching versions in production environments. The following should give you some hints about what to look for.

Zurück | Zum Anfang | Nach vorne
New Object Model | Nach oben | Running PHP 3 and PHP 4 concurrently


Running PHP 3 and PHP 4 concurrently

Recent operating systems provide the ability to perform versioning and scoping. This features make it possible to let PHP 3 and PHP 4 run as concurrent modules in one Apache server.

This feature is known to work on the following platforms:

  • Linux with recent binutils (binutils 2.9.1.0.25 tested)

  • Solaris 2.5 or better

  • FreeBSD (3.2, 4.0 tested)

To enable it, configure PHP 3 and PHP 4 to use APXS (--with-apxs) and the necessary link extensions (--enable-versioning). Otherwise, all standard installations instructions apply. For example:

$ ./configure \
  --with-apxs=/apache/bin/apxs \
  --enable-versioning \
  --with-mysql \
  --enable-track-vars

Zurück | Zum Anfang | Nach vorne
Migrating from PHP 3 to PHP 4 | Nach oben | Migrating Configuration Files


Migrating Configuration Files

The global configuration file, php3.ini, has changed its name to php.ini.

For the Apache configuration file, there are slightly more changes. The MIME types recognized by the PHP module have changed.

application/x-httpd-php3        -->    application/x-httpd-php
application/x-httpd-php3-source -->    application/x-httpd-php-source

You can make your configuration files work with both versions of PHP (depending on which one is currently compiled into the server), using the following syntax:

AddType  application/x-httpd-php3        .php3
AddType  application/x-httpd-php3-source .php3s

AddType  application/x-httpd-php         .php
AddType  application/x-httpd-php-source  .phps

In addition, the PHP directive names for Apache have changed.

Starting with PHP 4.0, there are only four Apache directives that relate to PHP:

php_value [PHP directive name] [value]
php_flag [PHP directive name] [On|Off]
php_admin_value [PHP directive name] [value]
php_admin_flag [PHP directive name] [On|Off]

There are two differences between the Admin values and the non admin values:

  • Admin values (or flags) can only appear in the server-wide Apache configuration files (e.g., httpd.conf).

  • Standard values (or flags) cannot control certain PHP directives, for example: safe mode (if you could override safe mode settings in .htaccess files, it would defeat safe mode's purpose). In contrast, Admin values can modify the value of any PHP directive.

To make the transition process easier, PHP 4 is bundled with scripts that automatically convert your Apache configuration and .htaccess files to work with both PHP 3 and PHP 4. These scripts do NOT convert the mime type lines! You have to convert these yourself.

To convert your Apache configuration files, run the apconf-conv.sh script (available in the scripts/apache/ directory). For example:

~/php4/scripts/apache:#  ./apconf-conv.sh /usr/local/apache/conf/httpd.conf

Your original configuration file will be saved in httpd.conf.orig.

To convert your .htaccess files, run the aphtaccess-conv.sh script (available in the scripts/apache/ directory as well):

~/php4/scripts/apache:#  find / -name .htaccess -exec ./aphtaccess-conv.sh {} \;

Likewise, your old .htaccess files will be saved with an .orig prefix.

The conversion scripts require awk to be installed.

Zurück | Zum Anfang | Nach vorne
Running PHP 3 and PHP 4 concurrently | Nach oben | Parser behavior


Parser behavior

Parsing and execution are now two completely separated steps, no execution of a files code will happen until the complete file and everything it requires has completely and successfully been parsed.

One of the new requirements introduced with this split is that required and included files now have to be syntactically complete. You can no longer spread the different controlling parts of a control structure across file boundaries. That is you cannot start a for or while loop, an if statement or a switch block in one file and have the end of loop, else, endif, case or break statements in a different file.

It still perfectly legal to include additional code within loops or other control structures, only the controlling keywords and corresponding curly braces {...} have to be within the same compile unit (file or eval()ed string).

This should not harm too much as spreading code like this should be considered as very bad style anyway.

Another thing no longer possible, though rarely seen in PHP 3 code is returning values from a required file. Returning a value from an included file is still possible.

Zurück | Zum Anfang | Nach vorne
Migrating Configuration Files | Nach oben | Error reporting


Error reporting

Configuration changes

With PHP 3 the error reporting level was set as a simple numeric value formed by summing up the numbers related to different error levels. Usual values were 15 for reporting all errors and warnings or 7 for reporting everything but simple notice messages reporting bad style and things like that.

PHP 4 has a larger set of error and warning levels and comes with a configuration parser that now allows for symbolic constants to be used for setting the intended behavior.

Error reporting level should now be configured by explicitly taking away the warning levels you do not want to generate error messages by x-oring them from the symbolic constant E_ALL. Sounds complicated? Well, lets say you want the error reporting system to report all but the simple style warnings that are categorized by the symbolic constant E_NOTICE. Then you'll put the following into your php.ini: error_reporting = E_ALL & ~ ( E_NOTICE ). If you want to suppress warnings too you add up the appropriate constant within the braces using the binary or operator '|': error_reporting= E_ALL & ~ ( E_NOTICE | E_WARNING ).

Warnung

When upgrading code or servers from PHP 3 to PHP 4 you should check these settings and calls to error_reporting() or you might disable reporting the new error types, especially E_COMPILE_ERROR. This may lead to empty documents without any feedback of what happened or where to look for the problem.

Warnung

Using the old values 7 and 15 for setting up error reporting is a very bad idea as this suppresses some of the newly added error classes including parse errors. This may lead to very strange behavior as scripts might no longer work without error messages showing up anywhere.

This has lead to a lot of unreproducible bug reports in the past where people reported script engine problems they were not capable to track down while the TRUE case was usually some missing '}' in a required file that the parser was not able to report due to a misconfigured error reporting system.

So checking your error reporting setup should be the first thing to do whenever your scripts silently die. The Zend engine can be considered mature enough nowadays to not cause this kind of strange behavior.

Additional warning messages

A lot of existing PHP 3 code uses language constructs that should be considered as very bad style as this code, while doing the intended thing now, could easily be broken by changes in other places. PHP 4 will output a lot of notice messages in such situations where PHP 3 didn't. The easy fix is to just turn off E_NOTICE messages, but it is usually a good idea to fix the code instead.

The most common case that will now produce notice messages is the use of unquoted string constants as array indices. Both PHP 3 and 4 will fall back to interpret these as strings if no keyword or constant is known by that name, but whenever a constant by that name had been defined anywhere else in the code it might break your script. This can even become a security risk if some intruder manages to redefine string constants in a way that makes your script give him access rights he wasn't intended to have. So PHP 4 will now warn you whenever you use unquoted string constants as for example in $_SERVER[REQUEST_METHOD]. Changing it to $_SERVER['REQUEST_METHOD'] will make the parser happy and greatly improve the style and security of your code.

Another thing PHP 4 will now tell you about is the use of uninitialized variables or array elements.

Zurück | Zum Anfang | Nach vorne
Parser behavior | Nach oben | Initializers


Initializers

Static variable and class member initializers only accept scalar values while in PHP 3 they accepted any valid expression. This is, once again, due to the split between parsing and execution as no code has yet been executed when the parser sees the initializer.

For classes you should use constructors to initialize member variables instead. For static variables anything but a simple static value rarely makes sense anyway.

Zurück | Zum Anfang | Nach vorne
Error reporting | Nach oben | empty("0")


Missing functions

While PHP 4 comes with a lot of new features, functions and extensions, you may still find some functions from version 3 missing. A small number of core functions has vanished because they do not work with the new scheme of splitting parsing and execution as introduced into 4 with the Zend engine. Other functions and even complete extensions have become obsolete as newer functions and extensions serve the same task better and/or in a more general way. Some functions just simply haven't been ported yet and finally some functions or extensions may be missing due to license conflicts.

Functions missing due to conceptual changes

As PHP 4 now separates parsing from execution it is no longer possible to change the behavior of the parser (now embedded in the Zend engine) at runtime as parsing already happened by then. So the function short_tags() no longer exists. You can still change the parsers behavior by setting appropriate values in the php.ini file.

Another feature of PHP 3 that is not a part of PHP 4 is the bundled debugging interface. There are third-party add-ons for the Zend engine which add similar functionality.

Deprecate functions and extensions

The Adabas and Solid database extensions are no more. Long live the unified ODBC extension instead.

Changed status for unset()

unset(), although still available, is implemented as a language construct rather than a function.

This does not have any consequences on the behavior of unset(), but testing for "unset" using function_exists() will return FALSE as it would with other language constructs that look like functions such as echo().

Another more practical change is that it is no longer possible to call unset() indirectly, that is $func="unset"; $func($somevar) won't work anymore.

Zurück | Zum Anfang | Nach vorne
empty("0") | Nach oben | PHP 3 extension


PHP 3 extension

Extensions written for PHP 3 will not work with PHP 4, neither as binaries nor at the source level. It is not difficult to port extensions to PHP 4 if you have access to the original source. A detailed description of the actual porting process is not part of this text.

Zurück | Zum Anfang | Nach vorne
Missing functions | Nach oben | Variable substitution in strings


Variable substitution in strings

PHP 4 adds a new mechanism to variable substitution in strings. You can now finally access object member variables and elements from multidimensional arrays within strings.

To do so you have to enclose your variables with curly braces with the dollar sign immediately following the opening brace: {$...}

To embed the value of an object member variable into a string you simply write "text {$obj->member} text" while in PHP 3 you had to use something like "text ".$obj->member." text".

This should lead to more readable code, while it may break existing scripts written for PHP 3. But you can easily check for this kind of problem by checking for the character combination {$ in your code and by replacing it with \{$ with your favorite search-and-replace tool.

Zurück | Zum Anfang | Nach vorne
PHP 3 extension | Nach oben | Cookies


Cookies

PHP 3 had the bad habit of setting cookies in the reverse order of the setcookie() calls in your code. PHP 4 breaks with this habit and creates the cookie header lines in exactly the same order as you set the cookies in the code.

This might break some existing code, but the old behaviour was so strange to understand that it deserved a change to prevent further problems in the future.

Zurück | Zum Anfang | Nach vorne
Variable substitution in strings | Nach oben | Handling of global variables


Handling of global variables

While handling of global variables had the focus on to be easy in PHP 3 and early versions of PHP 4, the focus has changed to be more secure. While in PHP 3 the following example worked fine, in PHP 4 it has to be unset($GLOBALS["id"]);. This is only one issue of global variable handling. You should always have used $GLOBALS, with newer versions of PHP 4 you are forced to do so in most cases. Read more on this subject in the global references section.

Beispiel C-1. Migration of global variables

<?php
$id = 1;
function test()
{
    global $id;
    unset($id);
}
test();
echo($id); // This will print out 1 in PHP 4
?>

Zurück | Zum Anfang | Nach vorne
Cookies | Nach oben | Migration von PHP/FI 2.0 zu PHP 3.0


Migration von PHP/FI 2.0 zu PHP 3.0

PHP Handbuch
Zurück Nach vorne

Anhang D. Migration von PHP/FI 2.0 zu PHP 3.0

Inhaltsverzeichnis
Über die Inkompatbilitäten in 3.0
Start-/End-Tags
if..endif Syntax
while Syntax
Ausdruckstypen
Änderung der Fehlermeldungen
Short-circuited boolean evaluation
Function TRUE/false return values
Andere Inkompatibilitäten

Über die Inkompatbilitäten in 3.0

PHP 3.0 wurde komplett neu geschrieben. Es hat einen korrekten Parser, der robuster und konsequenter ist, als der in 2.0. 3.0 ist auch wesentlich schneller und benötigt weniger Speicher. Wie auch immer, manche dieser Verbesserungen wären ohne Änderungen der Kompatibilität nicht möglich gewesen, sowohl in der Syntax, als auch in der Funktionalität.

Außerdem haben die PHP-Entwickler versucht, sowohl die Syntax, als auch die Semantik von PHP in Version 3.0 zu säubern, was einige zusätzliche Inkompatbilitäten nach sich zog. Auf lange Sicht glauben wir, dass diese Änderungen von Vorteil sind.

Dieses Kapitel wird versuchen, Sie durch die Inkompatbilitäten, die beim Umstieg von PHP/FI 2.0 zu PHP 3.0 vorkommen können, zu geleiten und helfen, diese zu lösen. Neue Merkmale werden nicht berücksichtigt, außer dies ist unbedingt notwendig.

Ein Konvertierungsprogramm, welches Ihre PHP/FI 2.0 Scripts konvertieren kann, steht zur Verfügung. Zu finden ist es im convertor Verzeichnis der PHP 3.0 Distribution. Dieses Programm berücksichtigt nur Syntaxänderungen, also sollten Sie dieses Kapitel aufmerksam lesen.

Zurück | Zum Anfang | Nach vorne
Handling of global variables | Nach oben | Start-/End-Tags


Start-/End-Tags

Das Erste, was Sie vermutlich feststellen werden ist, dass sich die Start- und End-Tags von PHP geändert haben. Die alte Form <? > wurde durch drei neue Möglichkeiten ersetzt:

Beispiel D-1. Migration: Alte Start-/End-Tags

<? echo "Das ist PHP/FI 2.0 Code.\n"; ?>
Ab Version 2.0 unterstützt PHP/FI auch diese Möglichkeit:

Beispiel D-2. Migration: Erste neue Start-/End-Tags

<? echo "Das ist PHP 3.0 Ccode!\n"; ?>
Beachten Sie, dass das End-Tag jetzt ein Fragzeichen und ein "Größer-als"-Zeichen beinhaltet anstatt nur ein "Größer-als"-Zeichen. Wie auch immer, wenn Sie vor haben, XML auf Ihrem Server zu verwenden, werden Sie Probleme mit der ersten neuen Möglichkeit bekommen, weil PHP versuchen wird, das XML in XML-Dokumenten als PHP-Code auszuführen. Deshalb wurde die folgende Variante eingeführt:

Beispiel D-3. Migration: Zweite neue Start-/End-Tags

<?php echo "Das ist PHP 3.0 Code!\n"; ?>
Manche Leute hatten Probleme mit Editoren, die die Tags gar nicht verstanden haben. Microsoft FrontPage ist ein solcher Editor und als Workaround wurde zusätzlich die folgende Variante eingeführt:

Beispiel D-4. Migration: third new start/end tags

<script language="php">

  echo "Das ist PHP 3.0 Code!\n";

</script>

Zurück | Zum Anfang | Nach vorne
Migration von PHP/FI 2.0 zu PHP 3.0 | Nach oben | if..endif Syntax


if..endif Syntax

Der `alternative' Weg, if/elseif/else Statements mittels if(); elseif(); else; endif; zu schreiben, kann nicht effizient eingebaut werden, ohne eine große Komplexität zum 3.0 Parser hinzuzufügen. Deshalb wurde die Syntax geändert:

Beispiel D-5. Migration: Alte if..endif Syntax

if ($foo);
    echo "jau\n";
elseif ($bar);
    echo "fast\n";
else;
    echo "nö\n";
endif;

Beispiel D-6. Migration: Neue if..endif Syntax

if ($foo):
    echo "jau\n";
elseif ($bar):
    echo "fast\n";
else:
    echo "nö\n";
endif;
Beachten Sie, dass Semikolons in allen Anweisungen durch Doppelpunkte ersetz wurden außer in der, welche die Anweisung schließt (endif).

Zurück | Zum Anfang | Nach vorne
Start-/End-Tags | Nach oben | while Syntax


while Syntax

wie auch bei if..endif hat sich auch die Syntax von while..endwhile geändert:

Beispiel D-7. Migration: Alte while..endwhile Syntax

while ($noch_mehr);
    ...
endwhile;

Beispiel D-8. Migration: Neue while..endwhile Syntax

while ($noch_mehr):
    ...
endwhile;

Warnung

Wenn Sie die alte while..endwhile Syntax in PHP 3.0 benutzen werden Sie eine nicht endende Schleife erhalten.

Zurück | Zum Anfang | Nach vorne
if..endif Syntax | Nach oben | Ausdruckstypen


Ausdruckstypen

PHP/FI 2.0 benutzte die linke Seite von Ausdrücken, um herauszufinden, wie das Ergebnis aussehen soll. PHP 3.0 zieht beide Seiten in Betracht um den Ergebnistypen zu bestimmen. Dies kann bei 2.0 Scripts dazu führen, sich in 3.0 unerwartet zu verhalten.

Betrachten Sie dieses Beispiel:

$a[0]=5;
$a[1]=7;

$key = key($a);
while ("" != $key) {
    echo "$keyn";
    next($a);
}

In PHP/FI 2.0 würde dies beide Kennziffern von $a anzeigen. In PHP 3.0 würde gar nichts angezeigt werden. Der Grund ist, dass in PHP 2.0, aufgrund des "linken" Arguments des Strings, ein Vergleich des Strings gemacht wurde, "" ist in der Tat nicht das selbe wie "0", was dazu führt, dass die Schleife durchläuft. Wenn man in PHP 3.0 einen String mit einem Integer vergleicht, so wird ein Vergleich zweier Interger vorgenommen (der String wir in einen Integer umgewandelt). Dies führt dazu, dass atoi(""), was 0 ist, und variablelist, was genauso 0 ist, vergleichen werden. Und weil 0==0, würde die Schleife nicht ein einziges Mal durchlaufen.

Dies zu reparieren ist einfach. Ersetzen Sie das While-Statement mit:

while ((string)$key != "") {

Zurück | Zum Anfang | Nach vorne
while Syntax | Nach oben | Änderung der Fehlermeldungen


Änderung der Fehlermeldungen

Die Fehlermeldungen von PHP 3.0 sind für gwöhnlich genauer als die in 2.0, allerdings sehen Sie nicht mehr das Codefragment, welches den Fehler erzeugt. Obwohl Sie den Dateinamen und die Zeilennummer des Fehlers angezeigt bekommen.

Zurück | Zum Anfang | Nach vorne
Ausdruckstypen | Nach oben | Short-circuited boolean evaluation


Short-circuited boolean evaluation

In PHP 3.0 boolean evaluation is short-circuited. This means that in an expression like (1 || test_me()), the function test_me() would not be executed since nothing can change the result of the expression after the 1.

This is a minor compatibility issue, but may cause unexpected side-effects.

Zurück | Zum Anfang | Nach vorne
Änderung der Fehlermeldungen | Nach oben | Function TRUE/false return values


Andere Inkompatibilitäten

  • Das PHP 3.0 Apache Modul unterstützt keine Apache Versionen mehr, die älter als 1.2 sind. Apache 1.2 oder neuer wird benötigt.

  • echo() no longer supports a format string. Use the printf() function instead.

  • In PHP/FI 2.0, an implementation side-effect caused $foo[0] to have the same effect as $foo. This is not TRUE for PHP 3.0.

  • Das Auslesen von Arrays mit $array[] wird nicht mehr unterstützt

    That is, you cannot traverse an array by having a loop that does $data = $array[]. Use current() and next() instead.

    Also, $array1[] = $array2 does not append the values of $array2 to $array1, but appends $array2 as the last entry of $array1. See also multidimensional array support.

  • "+" is no longer overloaded as a concatenation operator for strings, instead it converts it's arguments to numbers and performs numeric addition. Use "." instead.

Beispiel D-11. Migration from 2.0: concatenation for strings

echo "1" + "1";

In PHP 2.0 würde dies 11 ausgeben, in PHP 3.0 2. Verwenden Sie stattdessen:
echo "1"."1";
$a = 1;
$b = 1;
echo $a + $b;

Dies würde sowohl in PHP 2.0 als auch in 3.0 2 ausgeben.
$a = 1;
$b = 1;
echo $a.$b;
Dies gibt in PHP 3.0 11 aus.

Zurück | Zum Anfang | Nach vorne
Function TRUE/false return values | Nach oben | Der PHP-Debugger


Der PHP-Debugger

PHP Handbuch
Zurück Nach vorne

Anhang E. Der PHP-Debugger

Inhaltsverzeichnis
Verwendung des Debuggers
Debugger-Protokoll

Verwendung des Debuggers

Der integrierte Debugger von PHP ist nützlich, um schwer zu findende Fehler aufzuspüren. Jedesmal, wenn PHP startet, stellt der Debugger eine Verbindung zu einem TCP-Port her. Jede Fehlermeldung wird nun an diese TCP-Verbindung ausgegeben. Damit lässt sich ein "debugging server" einrichten, der innerhalb einer IDE oder eines programmierbaren Editors (z. B. Emacs) läuft.

Den Debugger einrichten:

  1. Geben Sie in der Konfigurationsdatei (debugger.port) einen TCP-Port für den Debugger ein und aktivieren Sie ihn (debugger.enabled).

  2. Dann richten Sie einen TCP-Listener ein, der auf dem Port horcht (zum Beispiel socket -l -s 1400 unter UNIX).

  3. Schreiben Sie in Ihren Code die Anweisung "debugger_on(host)", wobei host die IP-Adresse oder der Hostname ist, wo der TCP-Listener läuft.

Nun werden alle Warnungen, Hinweise, etc. auf diese Schnittstelle ausgegeben, sogar wenn sie mit error_reporting () abgeschaltet wurden..

Zurück | Zum Anfang | Nach vorne
Andere Inkompatibilitäten | Nach oben | Debugger-Protokoll


Debugger-Protokoll

Das Protokoll des Debuggers ist zeilenorientiert. Jede Zeile hat einen Typ, und mehrere Zeilen bilden eine Meldung. Jede Meldung beginnt mit der Zeile start und endet mit end. Es ist möglich, dass PHP Zeilen mehrerer Meldungen gleichzeitig ausgibt.

Eine Zeile hat folgendes Format:

date time
host(pid)
type:
message-data

date

Datum im ISO 8601-Format: (jjjj-mm-tt)

time

Zeit inklusive Mikrosekunden: ss:mm:uuuuuu

host

DNS-Name oder IP-Adresse des Hosts, auf dem der Fehler auftrat.

pid

PID (process id) auf dem host des Prozesses mit dem PHP-Script, das den Fehler erzeugt hat.

type

Typ der Zeile. Er zeigt dem empfangenden Programm, wie es die folgenden Daten behandeln soll:

Tabelle E-1. Typen der Debugger-Zeilen

Name | Bedeutung
start | Teilt dem empfangenden Programm mit, dass hier eine Debuggermeldung beginnt. Der Inhalt von data ist der Typ der Fehlermeldung, der unten aufgelistet ist.
message | Die PHP-Fehlermeldung.
location | Dateiname und Zeilennummer, wo der Fehler aufgetreten ist. Die erste Location-Zeile beinhaltet immer die Top-Level-Location. data enthält file:line. Nach jeder message und nach jeder function steht eine location-Zeile.
frames | Anzahl der Frames in der folgenden Ebenenanzeige. Bei vier Frames werden Informationen zu vier Ebenen von Funktionsaufrufen angezeigt. Wenn keine "frames"-Zeile angezeigt wird, ist die Funktionstiefe 0 (der Fehler ist auf der höchsten Ebene aufgetreten).
function | Name der Funktion, in der der Fehler aufgetreten ist. Wird jeweils für jede Funktionsebene innerhalb des Funktionsaufrufs wiederholt angezeigt.
end | Teilt dem empfangenden Programm mit, dass die Meldung hier endet.

data

Daten in der jeweiligen Zeile.

Tabelle E-2. Debugger-Fehlertypen

Debugger | PHP-intern
warning | E_WARNING
error | E_ERROR
parse | E_PARSE
notice | E_NOTICE
core-error | E_CORE_ERROR
core-warning | E_CORE_WARNING
unknown | (any other)

Beispiel E-1. Beispielhafte Debuggermeldung

1998-04-05 23:27:400966 lucifer.guardian.no(20481) start: notice
1998-04-05 23:27:400966 lucifer.guardian.no(20481) message: Uninitialized variable
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: (NULL):7
1998-04-05 23:27:400966 lucifer.guardian.no(20481) frames: 1
1998-04-05 23:27:400966 lucifer.guardian.no(20481) function: display
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: /home/ssb/public_html/test.php3:10
1998-04-05 23:27:400966 lucifer.guardian.no(20481) end: notice

Zurück | Zum Anfang | Nach vorne
Der PHP-Debugger | Nach oben | Extending PHP 3


Extending PHP 3

PHP Handbuch
Zurück Nach vorne

Anhang F. Extending PHP 3

Inhaltsverzeichnis
Adding functions to PHP
Calling User Functions
Reporting Errors

This section is rather outdated and demonstrates how to extend PHP 3. If you're interested in PHP 4, please read the section on the Zend API. Also, you'll want to read various files found in the PHP source, files such as README.SELF-CONTAINED-EXTENSIONS and README.EXT_SKEL.

Adding functions to PHP

Function Prototype

All functions look like this:
void php3_foo(INTERNAL_FUNCTION_PARAMETERS) {

}
Even if your function doesn't take any arguments, this is how it is called.

Function Arguments

Arguments are always of type pval. This type contains a union which has the actual type of the argument. So, if your function takes two arguments, you would do something like the following at the top of your function:

Beispiel F-1. Fetching function arguments

pval *arg1, *arg2;
if (ARG_COUNT(ht) != 2 || getParameters(ht,2,&arg1,&arg2)==FAILURE) {
   WRONG_PARAM_COUNT;
}
NOTE: Arguments can be passed either by value or by reference. In both cases you will need to pass &(pval *) to getParameters. If you want to check if the n'th parameter was sent to you by reference or not, you can use the function, ParameterPassedByReference(ht,n). It will return either 1 or 0.

When you change any of the passed parameters, whether they are sent by reference or by value, you can either start over with the parameter by calling pval_destructor on it, or if it's an ARRAY you want to add to, you can use functions similar to the ones in internal_functions.h which manipulate return_value as an ARRAY.

Also if you change a parameter to IS_STRING make sure you first assign the new estrdup()'ed string and the string length, and only later change the type to IS_STRING. If you change the string of a parameter which already IS_STRING or IS_ARRAY you should run pval_destructor on it first.

Variable Function Arguments

A function can take a variable number of arguments. If your function can take either 2 or 3 arguments, use the following:

Beispiel F-2. Variable function arguments

pval *arg1, *arg2, *arg3;
int arg_count = ARG_COUNT(ht);

if (arg_count < 2 || arg_count > 3 ||
    getParameters(ht,arg_count,&arg1,&arg2,&arg3)==FAILURE) {
    WRONG_PARAM_COUNT;
}

Using the Function Arguments

The type of each argument is stored in the pval type field. This type can be any of the following:

Tabelle F-1. PHP Internal Types

IS_STRING | String
IS_DOUBLE | Double-precision floating point
IS_LONG | Long integer
IS_ARRAY | Array
IS_EMPTY | None
IS_USER_FUNCTION | ??
IS_INTERNAL_FUNCTION | ?? (if some of these cannot be passed to a function - delete)
IS_CLASS | ??
IS_OBJECT | ??

If you get an argument of one type and would like to use it as another, or if you just want to force the argument to be of a certain type, you can use one of the following conversion functions:
convert_to_long(arg1);
convert_to_double(arg1);
convert_to_string(arg1);
convert_to_boolean_long(arg1); /* If the string is "" or "0" it becomes 0, 1 otherwise */
convert_string_to_number(arg1);  /* Converts string to either LONG or DOUBLE depending on string */

These function all do in-place conversion. They do not return anything.

The actual argument is stored in a union; the members are:

  • IS_STRING: arg1->value.str.val

  • IS_LONG: arg1->value.lval

  • IS_DOUBLE: arg1->value.dval

Memory Management in Functions

Any memory needed by a function should be allocated with either emalloc() or estrdup(). These are memory handling abstraction functions that look and smell like the normal malloc() and strdup() functions. Memory should be freed with efree().

There are two kinds of memory in this program: memory which is returned to the parser in a variable, and memory which you need for temporary storage in your internal function. When you assign a string to a variable which is returned to the parser you need to make sure you first allocate the memory with either emalloc() or estrdup(). This memory should NEVER be freed by you, unless you later in the same function overwrite your original assignment (this kind of programming practice is not good though).

For any temporary/permanent memory you need in your functions/library you should use the three emalloc(), estrdup(), and efree() functions. They behave EXACTLY like their counterpart functions. Anything you emalloc() or estrdup() you have to efree() at some point or another, unless it's supposed to stick around until the end of the program; otherwise, there will be a memory leak. The meaning of "the functions behave exactly like their counterparts" is: if you efree() something which was not emalloc()'ed nor estrdup()'ed you might get a segmentation fault. So please take care and free all of your wasted memory.

If you compile with "-DDEBUG", PHP will print out a list of all memory that was allocated using emalloc() and estrdup() but never freed with efree() when it is done running the specified script.

Setting Variables in the Symbol Table

A number of macros are available which make it easier to set a variable in the symbol table:

  • SET_VAR_STRING(name,value)

  • SET_VAR_DOUBLE(name,value)

  • SET_VAR_LONG(name,value)

Warnung

Be careful with SET_VAR_STRING. The value part must be malloc'ed manually because the memory management code will try to free this pointer later. Do not pass statically allocated memory into a SET_VAR_STRING.

Symbol tables in PHP are implemented as hash tables. At any given time, &symbol_table is a pointer to the 'main' symbol table, and active_symbol_table points to the currently active symbol table (these may be identical like in startup, or different, if you're inside a function).

The following examples use 'active_symbol_table'. You should replace it with &symbol_table if you specifically want to work with the 'main' symbol table. Also, the same functions may be applied to arrays, as explained below.

Beispiel F-3. Checking whether $foo exists in a symbol table

if (hash_exists(active_symbol_table,"foo",sizeof("foo"))) { exists... }
else { doesn't exist }

Beispiel F-4. Finding a variable's size in a symbol table

hash_find(active_symbol_table,"foo",sizeof("foo"),&pvalue);
check(pvalue.type);
Arrays in PHP are implemented using the same hashtables as symbol tables. This means the two above functions can also be used to check variables inside arrays.

If you want to define a new array in a symbol table, you should do the following.

First, you may want to check whether it exists and abort appropriately, using hash_exists() or hash_find().

Next, initialize the array:

Beispiel F-5. Initializing a new array

pval arr;

if (array_init(&arr) == FAILURE) { failed... };
hash_update(active_symbol_table,"foo",sizeof("foo"),&arr,sizeof(pval),NULL);
This code declares a new array, named $foo, in the active symbol table. This array is empty.

Here's how to add new entries to it:

Beispiel F-6. Adding entries to a new array

pval entry;

entry.type = IS_LONG;
entry.value.lval = 5;

/* defines $foo["bar"] = 5 */
hash_update(arr.value.ht,"bar",sizeof("bar"),&entry,sizeof(pval),NULL);

/* defines $foo[7] = 5 */
hash_index_update(arr.value.ht,7,&entry,sizeof(pval),NULL);

/* defines the next free place in $foo[],
 * $foo[8], to be 5 (works like php2)
 */
hash_next_index_insert(arr.value.ht,&entry,sizeof(pval),NULL);
If you'd like to modify a value that you inserted to a hash, you must first retrieve it from the hash. To prevent that overhead, you can supply a pval ** to the hash add function, and it'll be updated with the pval * address of the inserted element inside the hash. If that value is NULL (like in all of the above examples) - that parameter is ignored.

hash_next_index_insert() uses more or less the same logic as "$foo[] = bar;" in PHP 2.0.

If you are building an array to return from a function, you can initialize the array just like above by doing:

if (array_init(return_value) == FAILURE) { failed...; }

...and then adding values with the helper functions:

add_next_index_long(return_value,long_value);
add_next_index_double(return_value,double_value);
add_next_index_string(return_value,estrdup(string_value));

Of course, if the adding isn't done right after the array initialization, you'd probably have to look for the array first:
pval *arr;

if (hash_find(active_symbol_table,"foo",sizeof("foo"),(void **)&arr)==FAILURE) { can't find... }
else { use arr->value.ht... }

Note that hash_find receives a pointer to a pval pointer, and not a pval pointer.

Just about any hash function returns SUCCESS or FAILURE (except for hash_exists(), which returns a boolean truth value).

Returning simple values

A number of macros are available to make returning values from a function easier.

The RETURN_* macros all set the return value and return from the function:

  • RETURN

  • RETURN_FALSE

  • RETURN_TRUE

  • RETURN_LONG(l)

  • RETURN_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETURN_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETURN_DOUBLE(d)

The RETVAL_* macros set the return value, but do not return.

  • RETVAL_FALSE

  • RETVAL_TRUE

  • RETVAL_LONG(l)

  • RETVAL_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETVAL_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETVAL_DOUBLE(d)

The string macros above will all estrdup() the passed 's' argument, so you can safely free the argument after calling the macro, or alternatively use statically allocated memory.

If your function returns boolean success/error responses, always use RETURN_TRUE and RETURN_FALSE respectively.

Returning complex values

Your function can also return a complex data type such as an object or an array.

Returning an object:

  1. Call object_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

  3. Possibly, register functions for this object. In order to obtain values from the object, the function would have to fetch "this" from the active_symbol_table. Its type should be IS_OBJECT, and it's basically a regular hash table (i.e., you can use regular hash functions on .value.ht). The actual registration of the function can be done using:
    add_method( return_value, function_name, function_ptr );

The functions used to populate an object are:

  • add_property_long( return_value, property_name, l ) - Add a property named 'property_name', of type long, equal to 'l'

  • add_property_double( return_value, property_name, d ) - Same, only adds a double

  • add_property_string( return_value, property_name, str ) - Same, only adds a string

  • add_property_stringl( return_value, property_name, str, l ) - Same, only adds a string of length 'l'

Returning an array:

  1. Call array_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

The functions used to populate an array are:

  • add_assoc_long(return_value,key,l) - add associative entry with key 'key' and long value 'l'

  • add_assoc_double(return_value,key,d)

  • add_assoc_string(return_value,key,str,duplicate)

  • add_assoc_stringl(return_value,key,str,length,duplicate) specify the string length

  • add_index_long(return_value,index,l) - add entry in index 'index' with long value 'l'

  • add_index_double(return_value,index,d)

  • add_index_string(return_value,index,str)

  • add_index_stringl(return_value,index,str,length) - specify the string length

  • add_next_index_long(return_value,l) - add an array entry in the next free offset with long value 'l'

  • add_next_index_double(return_value,d)

  • add_next_index_string(return_value,str)

  • add_next_index_stringl(return_value,str,length) - specify the string length

Using the resource list

PHP has a standard way of dealing with various types of resources. This replaces all of the local linked lists in PHP 2.0.

Available functions:

  • php3_list_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_list_delete(id) - delete the resource with the specified id

  • php3_list_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

Typically, these functions are used for SQL drivers but they can be used for anything else; for instance, maintaining file descriptors.

Typical list code would look like this:

Beispiel F-7. Adding a new resource

RESOURCE *resource;

/* ...allocate memory for resource and acquire resource... */
/* add a new resource to the list */
return_value->value.lval = php3_list_insert((void *) resource, LE_RESOURCE_TYPE);
return_value->type = IS_LONG;

Beispiel F-8. Using an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
resource = php3_list_find(resource_id->value.lval, &type);
if (type != LE_RESOURCE_TYPE) {
    php3_error(E_WARNING,"resource index %d has the wrong type",resource_id->value.lval);
    RETURN_FALSE;
}
/* ...use resource... */

Beispiel F-9. Deleting an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
php3_list_delete(resource_id->value.lval);
The resource types should be registered in php3_list.h, in enum list_entry_type. In addition, one should add shutdown code for any new resource type defined, in list.c's list_entry_destructor() (even if you don't have anything to do on shutdown, you must add an empty case).

Using the persistent resource table

PHP has a standard way of storing persistent resources (i.e., resources that are kept in between hits). The first module to use this feature was the MySQL module, and mSQL followed it, so one can get the general impression of how a persistent resource should be used by reading mysql.c. The functions you should look at are:

php3_mysql_do_connect
php3_mysql_connect()
php3_mysql_pconnect()

The general idea of persistence modules is this:

  1. Code all of your module to work with the regular resource list mentioned in section (9).

  2. Code extra connect functions that check if the resource already exists in the persistent resource list. If it does, register it as in the regular resource list as a pointer to the persistent resource list (because of 1., the rest of the code should work immediately). If it doesn't, then create it, add it to the persistent resource list AND add a pointer to it from the regular resource list, so all of the code would work since it's in the regular resource list, but on the next connect, the resource would be found in the persistent resource list and be used without having to recreate it. You should register these resources with a different type (e.g. LE_MYSQL_LINK for non-persistent link and LE_MYSQL_PLINK for a persistent link).

If you read mysql.c, you'll notice that except for the more complex connect function, nothing in the rest of the module has to be changed.

The very same interface exists for the regular resource list and the persistent resource list, only 'list' is replaced with 'plist':

  • php3_plist_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_plist_delete(id) - delete the resource with the specified id

  • php3_plist_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

However, it's more than likely that these functions would prove to be useless for you when trying to implement a persistent module. Typically, one would want to use the fact that the persistent resource list is really a hash table. For instance, in the MySQL/mSQL modules, when there's a pconnect() call (persistent connect), the function builds a string out of the host/user/passwd that were passed to the function, and hashes the SQL link with this string as a key. The next time someone calls a pconnect() with the same host/user/passwd, the same key would be generated, and the function would find the SQL link in the persistent list.

Until further documented, you should look at mysql.c or msql.c to see how one should use the plist's hash table abilities.

One important thing to note: resources going into the persistent resource list must *NOT* be allocated with PHP's memory manager, i.e., they should NOT be created with emalloc(), estrdup(), etc. Rather, one should use the regular malloc(), strdup(), etc. The reason for this is simple - at the end of the request (end of the hit), every memory chunk that was allocated using PHP's memory manager is deleted. Since the persistent list isn't supposed to be erased at the end of a request, one mustn't use PHP's memory manager for allocating resources that go to it.

When you register a resource that's going to be in the persistent list, you should add destructors to it both in the non-persistent list and in the persistent list. The destructor in the non-persistent list destructor shouldn't do anything. The one in the persistent list destructor should properly free any resources obtained by that type (e.g. memory, SQL links, etc). Just like with the non-persistent resources, you *MUST* add destructors for every resource, even it requires no destruction and the destructor would be empty. Remember, since emalloc() and friends aren't to be used in conjunction with the persistent list, you mustn't use efree() here either.

Adding runtime configuration directives

Many of the features of PHP can be configured at runtime. These configuration directives can appear in either the designated php3.ini file, or in the case of the Apache module version in the Apache .conf files. The advantage of having them in the Apache .conf files is that they can be configured on a per-directory basis. This means that one directory may have a certain safemodeexecdir for example, while another directory may have another. This configuration granularity is especially handy when a server supports multiple virtual hosts.

The steps required to add a new directive:

  1. Add directive to php3_ini_structure struct in mod_php3.h.

  2. In main.c, edit the php3_module_startup function and add the appropriate cfg_get_string() or cfg_get_long() call.

  3. Add the directive, restrictions and a comment to the php3_commands structure in mod_php3.c. Note the restrictions part. RSRC_CONF are directives that can only be present in the actual Apache .conf files. Any OR_OPTIONS directives can be present anywhere, include normal .htaccess files.

  4. In either php3take1handler() or php3flaghandler() add the appropriate entry for your directive.

  5. In the configuration section of the _php3_info() function in functions/info.c you need to add your new directive.

  6. And last, you of course have to use your new directive somewhere. It will be addressable as php3_ini.directive.

Zurück | Zum Anfang | Nach vorne
Debugger-Protokoll | Nach oben | Calling User Functions


Calling User Functions

To call user functions from an internal function, you should use the call_user_function() function.

call_user_function() returns SUCCESS on success, and FAILURE in case the function cannot be found. You should check that return value! If it returns SUCCESS, you are responsible for destroying the retval pval yourself (or return it as the return value of your function). If it returns FAILURE, the value of retval is undefined, and you mustn't touch it.

All internal functions that call user functions must be reentrant. Among other things, this means they must not use globals or static variables.

call_user_function() takes six arguments:

HashTable *function_table

This is the hash table in which the function is to be looked up.

pval *object

This is a pointer to an object on which the function is invoked. This should be NULL if a global function is called. If it's not NULL (i.e. it points to an object), the function_table argument is ignored, and instead taken from the object's hash. The object *may* be modified by the function that is invoked on it (that function will have access to it via $this). If for some reason you don't want that to happen, send a copy of the object instead.

pval *function_name

The name of the function to call. Must be a pval of type IS_STRING with function_name.str.val and function_name.str.len set to the appropriate values. The function_name is modified by call_user_function() - it's converted to lowercase. If you need to preserve the case, send a copy of the function name instead.

pval *retval

A pointer to a pval structure, into which the return value of the invoked function is saved. The structure must be previously allocated - call_user_function() does NOT allocate it by itself.

int param_count

The number of parameters being passed to the function.

pval *params[]

An array of pointers to values that will be passed as arguments to the function, the first argument being in offset 0, the second in offset 1, etc. The array is an array of pointers to pval's; The pointers are sent as-is to the function, which means if the function modifies its arguments, the original values are changed (passing by reference). If you don't want that behavior, pass a copy instead.

Zurück | Zum Anfang | Nach vorne
Extending PHP 3 | Nach oben | Reporting Errors


Reporting Errors

To report errors from an internal function, you should call the php3_error() function. This takes at least two parameters -- the first is the level of the error, the second is the format string for the error message (as in a standard printf() call), and any following arguments are the parameters for the format string. The error levels are:

E_NOTICE

Notices are not printed by default, and indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. For example, trying to access the value of a variable which has not been set, or calling stat() on a file that doesn't exist.

E_WARNING

Warnings are printed by default, but do not interrupt script execution. These indicate a problem that should have been trapped by the script before the call was made. For example, calling ereg() with an invalid regular expression.

E_ERROR

Errors are also printed by default, and execution of the script is halted after the function returns. These indicate errors that can not be recovered from, such as a memory allocation problem.

E_PARSE

Parse errors should only be generated by the parser. The code is listed here only for the sake of completeness.

E_CORE_ERROR

This is like an E_ERROR, except it is generated by the core of PHP. Functions should not generate this type of error.

E_CORE_WARNING

This is like an E_WARNING, except it is generated by the core of PHP. Functions should not generate this type of error.

E_COMPILE_ERROR

This is like an E_ERROR, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_COMPILE_WARNING

This is like an E_WARNING, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_USER_ERROR

This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_WARNING

This is like an E_WARNING, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_NOTICE

This is like an E_NOTICE, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_ALL

All of the above. Using this error_reporting level will show all error types.

Zurück | Zum Anfang | Nach vorne
Calling User Functions | Nach oben | Liste der Funktion Aliase


Liste der Funktion Aliase

PHP Handbuch
Zurück Nach vorne

Anhang G. Liste der Funktion Aliase

Hier ist die Liste der Aliase. Alle Aliase sind hier aufgelistet. Normalerweise ist es keine gute Idee, Aliase zu verwenden, weil sie veralten oder umbenannt werden können. Dies würde zu einem nicht tragbaren Script führen. Diese Liste soll all denen helfen, die ihre alten Scripts auf den neusten Stand bringen wollen.

Wie auch immer, manche Funktionen haben schlicht und einfach zwei Namen und keine ist zu bevorzugen. (Zum Beispiel sind is_int() und is_integer() die selben)

Diese Liste ist auf dem Stand von PHP 4.0.6. Eine täglich aktuallisierte Aliasliste finden Sie hier.

Tabelle G-1. Aliase

Alias | Hauptfunktion | verwendete Extension
_ | gettext() | Gettext
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
add_root | domxml_add_root() | DOM XML
addaction | swfbutton_addAction() | Ming (flash)
addcolor | swfdisplayitem_addColor() | Ming (flash)
addentry | swfgradient_addEntry() | Ming (flash)
addfill | swfshape_addfill() | Ming (flash)
addshape | swfbutton_addShape() | Ming (flash)
addstring | swftext_addString() | Ming (flash)
addstring | swftextfield_addString() | Ming (flash)
align | swftextfield_align() | Ming (flash)
attributes | domxml_attributes() | DOM XML
children | domxml_children() | DOM XML
chop | rtrim() | Base syntax
close | closedir() | Base syntax
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
cv_add | ccvs_add() | CCVS
cv_auth | ccvs_auth() | CCVS
cv_command | ccvs_command() | CCVS
cv_count | ccvs_count() | CCVS
cv_delete | ccvs_delete() | CCVS
cv_done | ccvs_done() | CCVS
cv_init | ccvs_init() | CCVS
cv_lookup | ccvs_lookup() | CCVS
cv_new | ccvs_new() | CCVS
cv_report | ccvs_report() | CCVS
cv_return | ccvs_return() | CCVS
cv_reverse | ccvs_reverse() | CCVS
cv_sale | ccvs_sale() | CCVS
cv_status | ccvs_status() | CCVS
cv_textvalue | ccvs_textvalue() | CCVS
cv_void | ccvs_void() | CCVS
die | exit() | Miscellaneous functions
dir | getdir() | Base syntax
diskfreespace | disk_free_space() | Filesystem
domxml_getattr | domxml_get_attribute() | DOM XML
domxml_setattr | domxml_set_attribute() | DOM XML
doubleval | floatval() | Base syntax
drawarc | swfshape_drawarc() | Ming (flash)
drawcircle | swfshape_drawcircle() | Ming (flash)
drawcubic | swfshape_drawcubic() | Ming (flash)
drawcubicto | swfshape_drawcubicto() | Ming (flash)
drawcurve | swfshape_drawcurve() | Ming (flash)
drawcurveto | swfshape_drawcurveto() | Ming (flash)
drawglyph | swfshape_drawglyph() | Ming (flash)
drawline | swfshape_drawline() | Ming (flash)
drawlineto | swfshape_drawlineto() | Ming (flash)
dtd | domxml_intdtd() | DOM XML
dumpmem | domxml_dumpmem() | DOM XML
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Base syntax
get_attribute | domxml_get_attribute() | DOM XML
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
getattr | domxml_get_attribute() | DOM XML
getdescent | swffont_getDescent() | Ming (flash)
getdescent | swftext_getDescent() | Ming (flash)
getheight | swfbitmap_getHeight() | Ming (flash)
getleading | swffont_getLeading() | Ming (flash)
getleading | swftext_getLeading() | Ming (flash)
getshape1 | swfmorph_getShape1() | Ming (flash)
getshape2 | swfmorph_getShape2() | Ming (flash)
getwidth | swfbitmap_getWidth() | Ming (flash)
getwidth | swffont_getWidth() | Ming (flash)
getwidth | swftext_getWidth() | Ming (flash)
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Multi-bytes Strings
i18n_discover_encoding | mb_detect_encoding() | Multi-bytes Strings
i18n_http_input | mb_http_input() | Multi-bytes Strings
i18n_http_output | mb_http_output() | Multi-bytes Strings
i18n_internal_encoding | mb_internal_encoding() | Multi-bytes Strings
i18n_ja_jp_hantozen | mb_convert_kana() | Multi-bytes Strings
i18n_mime_header_decode | mb_decode_mimeheader() | Multi-bytes Strings
i18n_mime_header_encode | mb_encode_mimeheader() | Multi-bytes Strings
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | Base syntax
is_double | is_float() | Base syntax
is_integer | is_int() | Base syntax
is_long | is_int() | Base syntax
is_real | is_float() | Base syntax
is_writeable | is_writable() | Base syntax
join | implode() | Base syntax
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
last_child | domxml_last_child() | DOM XML
lastchild | domxml_last_child() | DOM XML
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | Base syntax
mbstrcut | mb_strcut() | Multi-bytes Strings
mbstrlen | mb_strlen() | Multi-bytes Strings
mbstrpos | mb_strpos() | Multi-bytes Strings
mbstrrpos | mb_strrpos() | Multi-bytes Strings
mbsubstr | mb_substr() | Multi-bytes Strings
ming_setcubicthreshold | ming_setCubicThreshold() | Ming (flash)
ming_setscale | ming_setScale() | Ming (flash)
move | swfdisplayitem_move() | Ming (flash)
movepen | swfshape_movepen() | Ming (flash)
movepento | swfshape_movepento() | Ming (flash)
moveto | swfdisplayitem_moveTo() | Ming (flash)
moveto | swffill_moveTo() | Ming (flash)
moveto | swftext_moveTo() | Ming (flash)
msql | msql_db_query() | mSQL
msql_createdb | msql_create_db() | mSQL
msql_dbname | msql_result() | mSQL
msql_dropdb | msql_drop_db() | mSQL
msql_fieldflags | msql_field_flags() | mSQL
msql_fieldlen | msql_field_len() | mSQL
msql_fieldname | msql_field_name() | mSQL
msql_fieldtable | msql_field_table() | mSQL
msql_fieldtype | msql_field_type() | mSQL
msql_freeresult | msql_free_result() | mSQL
msql_listdbs | msql_list_dbs() | mSQL
msql_listfields | msql_list_fields() | mSQL
msql_listtables | msql_list_tables() | mSQL
msql_numfields | msql_num_fields() | mSQL
msql_numrows | msql_num_rows() | mSQL
msql_regcase | sql_regcase() | mSQL
msql_selectdb | msql_select_db() | mSQL
msql_tablename | msql_result() | mSQL
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_close | sybase_close() | Sybase
mssql_close | sybase_close() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_min_client_severity | sybase_min_client_severity() | Sybase
mssql_min_error_severity | sybase_min_error_severity() | Sybase
mssql_min_message_severity | sybase_min_message_severity() | Sybase
mssql_min_server_severity | sybase_min_server_severity() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_query | sybase_query() | Sybase
mssql_query | sybase_query() | Sybase
mssql_result | sybase_result() | Sybase
mssql_result | sybase_result() | Sybase
mssql_select_db | sybase_select_db() | Sybase
mssql_select_db | sybase_select_db() | Sybase
multcolor | swfdisplayitem_multColor() | Ming (flash)
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
name | domxml_attrname() | DOM XML
new_child | domxml_new_child() | DOM XML
new_xmldoc | domxml_new_xmldoc() | DOM XML
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
node | domxml_node() | DOM XML
oci8append | ocicollappend() | OCI8
oci8assign | ocicollassign() | OCI8
oci8assignelem | ocicollassignelem() | OCI8
oci8close | ocicloselob() | OCI8
oci8free | ocifreecoll() | OCI8
oci8free | ocifreedesc() | OCI8
oci8getelem | ocicollgetelem() | OCI8
oci8load | ociloadlob() | OCI8
oci8max | ocicollmax() | OCI8
oci8ocifreecursor | ocifreestatement() | OCI8
oci8save | ocisavelob() | OCI8
oci8savefile | ocisavelobfile() | OCI8
oci8size | ocicollsize() | OCI8
oci8trim | ocicolltrim() | OCI8
oci8writetemporary | ociwritetemporarylob() | OCI8
oci8writetofile | ociwritelobtofile() | OCI8
odbc_do | odbc_exec() | OCI8
odbc_field_precision | odbc_field_len() | OCI8
output | swfmovie_output() | Ming (flash)
parent | domxml_parent() | DOM XML
pdf_add_outline | pdf_add_bookmark() | PDF
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Base syntax
recode | recode_string() | Recode
remove | swfmovie_remove() | Ming (flash)
remove | swfsprite_remove() | Ming (flash)
rewind | rewinddir() | Base syntax
root | domxml_root() | DOM XML
rotate | swfdisplayitem_rotate() | Ming (flash)
rotateto | swfdisplayitem_rotateTo() | Ming (flash)
rotateto | swffill_rotateTo() | Ming (flash)
save | swfmovie_save() | Ming (flash)
savetofile | swfmovie_saveToFile() | Ming (flash)
scale | swfdisplayitem_scale() | Ming (flash)
scaleto | swfdisplayitem_scaleTo() | Ming (flash)
scaleto | swffill_scaleTo() | Ming (flash)
set_attribute | domxml_set_attribute() | DOM XML
set_content | domxml_set_content() | DOM XML
setaction | swfbutton_setAction() | Ming (flash)
setattr | domxml_set_attribute() | DOM XML
setbackground | swfmovie_setBackground() | Ming (flash)
setbounds | swftextfield_setBounds() | Ming (flash)
setcolor | swftext_setColor() | Ming (flash)
setcolor | swftextfield_setColor() | Ming (flash)
setdepth | swfdisplayitem_setDepth() | Ming (flash)
setdimension | swfmovie_setDimension() | Ming (flash)
setdown | swfbutton_setDown() | Ming (flash)
setfont | swftext_setFont() | Ming (flash)
setfont | swftextfield_setFont() | Ming (flash)
setframes | swfmovie_setFrames() | Ming (flash)
setframes | swfsprite_setFrames() | Ming (flash)
setheight | swftext_setHeight() | Ming (flash)
setheight | swftextfield_setHeight() | Ming (flash)
sethit | swfbutton_setHit() | Ming (flash)
setindentation | swftextfield_setIndentation() | Ming (flash)
setleftfill | swfshape_setleftfill() | Ming (flash)
setleftmargin | swftextfield_setLeftMargin() | Ming (flash)
setline | swfshape_setline() | Ming (flash)
setlinespacing | swftextfield_setLineSpacing() | Ming (flash)
setmargins | swftextfield_setMargins() | Ming (flash)
setmatrix | swfdisplayitem_setMatrix() | Ming (flash)
setname | swfdisplayitem_setName() | Ming (flash)
setname | swftextfield_setName() | Ming (flash)
setover | swfbutton_setOver() | Ming (flash)
setrate | swfmovie_setRate() | Ming (flash)
setratio | swfdisplayitem_setRatio() | Ming (flash)
setrightfill | swfshape_setrightfill() | Ming (flash)
setrightmargin | swftextfield_setRightMargin() | Ming (flash)
setspacing | swftext_setSpacing() | Ming (flash)
setup | swfbutton_setUp() | Ming (flash)
show_source | highlight_file () | Base syntax
sizeof | count() | Base syntax
skewx | swfdisplayitem_skewX() | Ming (flash)
skewxto | swfdisplayitem_skewXTo() | Ming (flash)
skewxto | swffill_skewXTo() | Ming (flash)
skewy | swfdisplayitem_skewY() | Ming (flash)
skewyto | swfdisplayitem_skewYTo() | Ming (flash)
skewyto | swffill_skewYTo() | Ming (flash)
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Base syntax
streammp3 | swfmovie_streamMp3() | Ming (flash)
swfaction | swfaction_init() | Ming (flash)
swfbitmap | swfbitmap_init() | Ming (flash)
swfbutton | swfbutton_init() | Ming (flash)
swffill | swffill_init() | Ming (flash)
swffont | swffont_init() | Ming (flash)
swfgradient | swfgradient_init() | Ming (flash)
swfmorph | swfmorph_init() | Ming (flash)
swfmovie | swfmovie_init() | Ming (flash)
swfshape | swfshape_init() | Ming (flash)
swfsprite | swfsprite_init() | Ming (flash)
swftext | swftext_init() | Ming (flash)
swftextfield | swftextfield_init() | Ming (flash)
unlink | domxml_unlink_node() | DOM XML
xptr_new_context | xpath_new_context() | DOM XML

Zurück | Zum Anfang | Nach vorne
Reporting Errors | Nach oben | Reservierte Wörter in PHP


Reservierte Wörter in PHP

PHP Handbuch
Zurück Nach vorne

Anhang H. Reservierte Wörter in PHP

Inhaltsverzeichnis
Liste der Schlüsselwörter
Vordefinierte Variablen
Vordefinierte Klassen
Vordefinierte Konstanten

Nachfolgend finden Sie eine Liste der vordefinierten Namen in PHP. Sie sollten keinen dieser Namen in Ihren Skripten verwenden. Die Liste enthält Schlüsselwörter, vordefinierte Konstanten und Klassennamen. Die Liste ist nicht vollständig.

Liste der Schlüsselwörter

Diese Wörter haben in PHP eine spezielle Bedeutung. Einige sehen aus wie Funktionen, andere sehen aus wie Konstanten usw., sie sind aber weder das eine noch das andere, sondern es sind Sprachkonstrukte. Sie können keines der folgenden Wörter als Namen für Konstanten, Klassen oder Funktionen benutzen. Als Vaiablennamen dürfen Sie die Namen benutzen, was aber zu Verwirrungen führen kann.

Tabelle H-1. PHP Schlüsselwörter

and | or | xor | __FILE__ | exception | php_user_filter
__LINE__ | array() | as | break | case
cfunction | class | const | continue | declare
default | die() | do | echo() | else
elseif | empty() | enddeclare | endfor | endforeach
endif | endswitch | endwhile | eval | exit()
extends | for | foreach | function | global
if | include() | include_once() | isset() | list()
new | old_function | print() | require() | require_once()
return() | static | switch | unset() | use
var | while | __FUNCTION__ | __CLASS__ | __METHOD__

Zurück | Zum Anfang | Nach vorne
Liste der Funktion Aliase | Nach oben | Vordefinierte Variablen


Vordefinierte Variablen

Seit PHP 4.1.0 wird empfohlen, externe Variablen über die Superglobals, die weiter unten beschrieben werden, abzufragen. Davor war man entweder auf die register_globals -Einstelliung oder die Langformen der vordefinierten PHP-Arrays ($HTTP_*_VARS) angewiesen. As of PHP 5.0.0, the long PHP predefined variable arrays may be disabled with the register_long_arrays directive.

Server Variablen: $_SERVER

Anmerkung: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie stattdessen $HTTP_SERVER_VARS.

$_SERVER ist ein Array, in dem Informationen über Header, Pfade oder den Speicherort des Skripts gespeichert sind. Die Einträge dieses Arrays werden vom Webserver generiert. Es gibt keine Garantie, dass jeder Webserver alle diese Einträge erzeugt. Manche Server werden Einträge auslassen oder andere einfügen, die hier nicht aufgeführt sind. Ein grosser Teil dieser Variablen stammt aus der CGI 1.1 Spezifikation.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_SERVER; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_SERVER_VARS notwendig ist.

$HTTP_SERVER_VARS enthält dieselben Informationen ist aber nicht automatisch global. (Beachten Sie, dass $HTTP_SERVER_VARS und $_SERVER verschiedene Variablen sind, die von PHP auch so behandelt werden.)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_SERVER und $HTTP_SERVER_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Möglicherweise finden Sie das eine oder andere der folgenden Elemente nicht in $_SERVER. Beachten Sie, dass nur wenige, falls überhaupt, verfügbar sind (oder von Bedeutung sind) wenn sie PHP auf der Kommandozeile betreiben.

'PHP_SELF'

Der Name des aktuell ausgeführten Skripts, relativ zum Wurzelverzeichnis des Servers. Zum Beispiel gibt $_SERVER['PHP_SELF'] in einem Skript mit der Adresse http://example.com/test.php/foo.bar den Namen /test.php/foo.bar zurück.

Falls PHP auf der Kommandozeile ausgeführt wird, ist diese Variable nicht verfügbar.

'argv'

In diesem Array sind die Argumente enthalten, die an ein Skript übergeben wurden. Wenn das Skript auf der Kommandozeile ausgeführt wird, haben Sie einen C-ähnlichen Zugriff auf die Kommandozeilenparameter. Wenn es mit der GET-Methode aufgerufen wird, enthält das Array den Abfragestring.

'argc'

Enthält die Anzahl der Kommandozeilenparameter, die an das Skript übergeben wurden (falls es von der Kommandozeile aus aufgerufen wurde).

'GATEWAY_INTERFACE'

Gibt an, welche Version der CGI Spezifikation der Server benutzt, beispielsweise 'CGI/1.1'.

'SERVER_NAME'

Der Name des Server Hosts unter dem das aktuelle Skript ausgeführt wird. Falls das Skript unter einem virtuellen Host läuft, wird der Name, der für diesen virtuellen Host vergeben wurde, angezeigt.

'SERVER_SOFTWARE'

Die Identifikation des Servers, mit der sich ein Server im Header bei der Beantwortung einer Anforderung identifiziert.

'SERVER_PROTOCOL'

Name und Versionsnummer des Protokolls, über das die Seite angefordert wurde. Z. B. 'HTTP/1.0';

'REQUEST_METHOD'

Welche Anforderungsmethode benutzt wurde, um auf die Seite zuzugreifen, z. B. 'GET', 'HEAD', 'POST', 'PUT'.

'QUERY_STRING'

Der Abfragestring, falls vorhanden, mit dem die Seite angefordert wurde.

'DOCUMENT_ROOT'

Das Wurzelverzeichnis des Webservers, unter dem das aktuelle Skript ausgeführt wird, so wie es in der Konfigurationsdatei des Webservers hinterlegt ist.

'HTTP_ACCEPT'

Der Inhalt des Accept:-Headers der aktuellen Anforderung, falls dieser Header vorhanden ist.

'HTTP_ACCEPT_CHARSET'

Der Inhalt des Accept-Charset:-Headers der aktuellen Anforderung, so vorhanden. Z. B. 'iso-8859-1,*,utf-8'.

'HTTP_ACCEPT_ENCODING'

Der Inhalt des Accept-Encoding:-Headers der aktuellen Anforderung, so vorhanden. Beispiel: 'gzip'.

'HTTP_ACCEPT_LANGUAGE'

Der Inhalt des Accept-Language:-Headers der aktuellen Anforderung, so vorhanden. Beispiel: 'en'.

'HTTP_CONNECTION'

Der Inhalt des Connection:-Headers der aktuellen anforderung, so vorhanden. Beispiel: 'Keep-Alive'.

'HTTP_HOST'

Der Inhalt des Host:-Headers der aktuellen Anforderung, so vorhanden.

'HTTP_REFERER'

Die Adresse der Seite (falls es eine gibt), die den Browser auf die aktuelle Seite verwies. Dieser Header wird vom Browser gesetzt, aber nicht von allen. Einige Browser bieten die Möglichkeit, den HTTP_REFERER zu modifizieren. Kurz, auf diesen Header kann man sich nicht verlassen.

'HTTP_USER_AGENT'

Der Inhalt des User_Agent:-Headers der aktuellen Anforderung, so vorhanden. Dies ist ein String, der den Typ und Namen des Browsers angibt, der auf die Seite zugreift. Ein typisches Beispiel ist: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Unter anderem kann man diesen Wert mit get_browser() auslesen, um die Ausgabe einer Seite auf den verwendeten Browser abzustimmen.

'REMOTE_ADDR'

Die IP-Adresse des Rechners, der die aktuelle Seite angefordert hat.

'REMOTE_HOST'

Der Hostname des Servers, von dem die aktuelle Seite geladen wurde. Der reverse dns lookup basiert auf dem REMOTE_ADDR-Header.

Anmerkung: Um diese Variable zu erzeugen, muss Ihr Webserver entsprechend eingestellt sein. Zum Beispiel muss beim Apache HostnameLookups On in der httpd.conf aktiv sein. Siehe auch unter gethostbyaddr().

'REMOTE_PORT'

Der Port, Über den der Rechner des Benutzers mit dem Webserver kommuniziert.

'SCRIPT_FILENAME'

Der absolute Pfadname des aktuell ausgeführten Skripts.

Anmerkung: Falls das Skript auf der Kommandozeile mit einem relativen Pfad aufgerufen wird, wie z. B. file.php oder ../file.php, enthält $_SERVER['SCRIPT_FILENAME'] den relativen Pfad, den der Benutzer angegeben hat.

'SERVER_ADMIN'

Der Wert, der in der Server Konfiguration der Direktive SERVER_ADMIN (bei Apache) zugewiesen wurde. Falls das Skript unter einem virtuellen Host läuft, wird der Wert angegeben, der für diesen virtuellen Host angegeben wurde.

'SERVER_PORT'

Der Port, den der Server zur Kommunikation benutzt. Bei Standardinstallationen ist dies der Port '80'. Bei Verwendung von SSH ändert sich der Wert zu Ihrem definierten SSH Port.

'SERVER_SIGNATURE'

Ein String, der bei Seiten, die vom Server generiert wurden, die Server Version und den Namen des virtuellen Hosts enthält, falls diese Option aktiviert ist.

'PATH_TRANSLATED'

Der Pfad zur aktuellen Datei im Dateisystem (nicht relativ zum Wurzelverzeichnis des Webserbers), nachdem der Server eventuelle Umwandlungen vom virtuellen ins reale System vorgenommen hat.

'SCRIPT_NAME'

Enthält den Pfad des aktuellen Skripts. Das ist nützlich für Programme, die sich selber referenzieren.

'REQUEST_URI'

Der URI mit dem diese Seite aufgerufen wurde. Z. B. '/index.html'.

'PHP_AUTH_USER'

Wenn HTTP-Authentifizierung mit Apache als Modul benutzt wird, enthält diese Variable den Benutzernamen, der vom Anwender angegeben wurde.

'PHP_AUTH_PW'

Wenn HTTP-Authentifizierung mit Apache als Modul benutzt wird, enthält diese Variable das Passwort, das vom Anwender angegeben wurde.

'AUTH_TYPE'

Wenn HTTP-Authentifizierung mit Apache als Modul benutzt wird, enthält diese Variable den Authentifizierungs-Typ.

Umgebungsvariablen: $_ENV

Anmerkung: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_ENV_VARS.

Diese Variablen werden aus der Systemumgebung, in der der Parser läuft in den globalen Namensraum Von PHP importiert. Viele davon werden vom System generiert, unter dem der Parser läuft und unterschiedliche Systeme benutzen unterschiedliche Umgebungsvariablen. Eine verbindliche Liste anzugeben ist daher unmöglich. Schauen Sie in der Dokumentation Ihres Systems nach den dort definierten Umgebungsvaraiblen.

Andere Umgebungsvariablen einschließlich der CGI-Variablen, sind hier aufgeführt, egal ob PHP als Servermodul oder CGI Prozess läuft.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_ENV; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_ENV_VARS notwendig ist.

$HTTP_ENV_VARS enthält dieselben Informationen ist aber nicht automatisch global. (Beachten Sie, dass $HTTP_ENV_VARS und $_ENV verschiedene Variablen sind, die von PHP auch so behandelt werden.)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_ENV und $HTTP_ENV_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

HTTP Cookies: $_COOKIE

Anmerkung: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_COOKIE_VARS.

Ein assoziatives Array mit Variablen, das an das aktuelle Skript mit HTTP-Cookies übergeben wurde. Es ist automatisch global in allen Gültigkeitsbereichen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_COOKIE; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_COOKIE_VARS notwendig ist.

$HTTP_COOKIE_VARS contains the same initial information, but is not an autoglobal. (Note that HTTP_COOKIE_VARS and $_COOKIE are different variables and that PHP handles them as such)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_COOKIE und $HTTP_COOKIE_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

HTTP GET Variablen: $_GET

Anmerkung: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_GET_VARS.

Ein assoziatives Array mit Variablen, das an das aktuelle Skript mit der GET-Methode übergeben wurde. Es ist automatisch global in allen Gültigkeitsbereichen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_GET; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_GET_VARS notwendig ist.

$HTTP_GET_VARS enthält dieselben Informationen ist aber nicht automatisch global. (Beachten Sie, dass $HTTP_GET_VARS und $_GET verschiedene Variablen sind, die von PHP auch so behandelt werden.)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_GET und $HTTP_GET_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

HTTP POST Variablen: $_POST

Anmerkung: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_POST_VARS.

Ein assoziatives Array mit Variablen, das an das aktuelle Skript mit der POST-Methode übergeben wurde. Es ist automatisch global in allen Gültigkeitsbereichen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_POST; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_POST_VARS notwendig ist.

$HTTP_POST_VARS enthält dieselben Informationen ist aber nicht automatisch global. (Beachten Sie, dass $HTTP_POST_VARS und $_POST verschiedene Variablen sind, die von PHP auch so behandelt werden.)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_POST und $HTTP_POST_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Variablen für HTTP Dateiuploads: $_FILES

Anmerkung: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_POST_FILES.

Ein assoziatives Array mit Elementen, die in das aktuelle Skript mit der HTTP-POST-Methode hochgeladen wurden. Es ist automatisch global in allen Gültigkeitsbereichen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_FILES; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_POST_FILES notwendig ist.

$HTTP_POST_FILES enthält dieselben Informationen, ist aber nicht autoglobal.

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_FILES und $HTTP_POST_FILES Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Variablen einer Anforderung: $_REQUEST

Anmerkung: Dieses Array wurde mit PHP 4.1.0 neu eingeführt. Es gibt kein entsprechendes Array in älteren Versionen.

Anmerkung: Vor der PHP Version 4.3.0 waren die Informationen des Arrays $_FILES auch im Array $_REQUEST enthalten.

Ein assoziatives Aray, das die Inhalte der Arrays $_GET, $_POST und $_COOKIE enthält.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_REQUEST; in Funktionen oder Methoden importieren, um darauf zuzugreifen.

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von dem Array $_REQUEST. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Session Variablen: $_SESSION

Anmerkung: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_SESSION_VARS.

Ein assoziatives Array, das die Sessionvariablen für das aktuelle Skript enthält. Mehr über die Verwendung dieses Arrays finden Sie bei der Dokumentation zu den Session Funktionen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_SESSION; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_SESSION_VARS notwendig ist.

$HTTP_SESSION_VARS enthält dieselben Informationen, ist aber nicht automatisch global.

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_SESSION und $HTTP_SESSION_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Globale Variablen: $GLOBALS

Anmerkung: $GLOBALS steht seit PHP 3.0.0 zur Verfügung.

Ein assoziatives Array, das Referenzen zu allen Variablen, die gegenwärtig im globalen Gültigkeitsbereich des Skripts definiert sind. Die Variablennamen sind die Indizes dieses Arrays.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $GLOBALS; in Funktionen oder Methoden importieren, um darauf zuzugreifen.

Die letzte Fehlermeldung: $php_errormsg

$php_errormsg ist eine Variable, die den Text der zuletzt aufgetretenen PHP Fehlermeldung enthält. Hierauf kann nur in dem Gültigkeitsbereich zugegriffen werden, in dem der Fehler auftrat, und nur dann, wenn die Direktive track_errors in der Konfiguration aktiviert ist (standardmäßig ist diese Direktive deaktiviert).

Zurück | Zum Anfang | Nach vorne
Reservierte Wörter in PHP | Nach oben | Vordefinierte Klassen


Vordefinierte Klassen

Standardmäßig definierte Klassen

Diese Klassen sind im Standard Funktionsumfang einer PHP Distribution enthalten.

Directory

Die Klasse, aus der dir instantiiert wird.

stdClass

__PHP_Incomplete_Class

Vordefinierte Klassen in PHP 5

Diese zusätzlichen vordefinierten Klassen wurden mit PHP 5.0.0 eingeführt.

exception

php_user_filter

Definierte Ming Klassen

Diese Klassen sind in der Ming Erweiterung definiert und sind nur verfügbar, wenn diese Erweiterung entweder einkompiliert oder zur Laufzeit dynamisch in PHP geladen wurde.

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

Definierte Oracle 8 Klassen

Diese Klassen sind in der Oracle 8 Erweiterung definiert und sind nur verfügbar, wenn diese Erweiterung entweder einkompiliert oder zur Laufzeit dynamisch in PHP geladen wurde.

OCI-Lob

OCI-Collection

Definierte qtdom Klassen

Diese Klassen sind in der qtdom Erweiterung definiert und sind nur verfügbar, wenn diese Erweiterung entweder einkompiliert oder zur Laufzeit dynamisch in PHP geladen wurde.

QDomDocument

QDomNode

Zurück | Zum Anfang | Nach vorne
Vordefinierte Variablen | Nach oben | Vordefinierte Konstanten


Vordefinierte Konstanten

Inhaltsverzeichnis
Core vordefinierte Konstanten -- Diese Konstanten sind definiert in den PHP core, Zend, und SAPI Modulen
Automatisch vordefinierte Konstanten -- Automatisch definierte Konstanten in PHP

Zurück | Zum Anfang | Nach vorne
Vordefinierte Klassen | Nach oben | Core vordefinierte Konstanten


Liste von Ressourcentypen

PHP Handbuch
Zurück Nach vorne

Anhang I. Liste von Ressourcentypen

Im Folgenden findest du eine Liste der Funktionen, welche PHP Ressourcen erstellen, benutzen oder löschen. Man weiß, ob eine Variable eine Ressource ist, wenn man is_resource() verwendet, den Typen der Ressource erhält man mit get_resource_type().

Tabelle I-1. Ressourcentypen

Name des Ressourcentyps | Erstellt von | Verwendet von | Zerstört von | Definition
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | Niemandem | Aspell dictionary
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Bzip2 file
COM | com_load() | com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() | Niemandem | Referenz auf ein COM Objekt
cpdf | cpdf_open() | cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() | cpdf_close() | PDF Dokument unter Verwendung der CPDF Bibliothek
cpdf outline
curl | curl_init() | curl_init(), curl_exec() | curl_close() | Curl session
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Verbindung zu einer DBM Datenbank herstellen
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Verbindung zu einer DBA Datenbank herstellen
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | Niemandem | Persistente Verbindung zu einer DBA Datenbank herstellen
dbase | dbase_open() | dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() | dbase_close() | Verbindung zu einer dbase Datenbank herstellen
domxml document
domxml node
domxml attribute
xpath context
xpath object
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | FDF File
ftp | ftp_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site() | ftp_quit() | FTP Verbindung
gd | imagecreate(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatetruecolor() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness() | imagedestroy() | GD Grafik
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | Niemandem | Schriftart für GD
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | PostScript-Schriftart für GD
gd PS encoding
GMP integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | Niemandem | GMP Nummer
hyperwave link | hw_connect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | hw_close(), hw_free_document() | Verbindung zu einem Hyperwave-Server herstellen
hyperwave link persistent | hw_pconnect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | Niemandem | Persistente Verbindung zu einem Hyperwave-Server herstellen
hyperwave document | hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() | hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() | hw_deleteobject() | Hyperwave Objekt
icap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Verbindung zu einem icap-Server herstellen
imap | imap_open() | imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() | imap_close() | Verbindung zu einem IMAP- oder POP3-Server herstellen
imap persistent
imap chain persistent
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Verbindung zu einer ingresII Datenbank herstellen.
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | Niemandem | Persistente Verbindung zu einer ingresII Datenbank herstellen.
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Interbase Ergebnis
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Interbase Abfrage
interbase blob
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Verbindung zu einer Interbase Datenbank herstellen.
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | Niemandem | Persistente Verbindung zu einer Interbase Datenbank herstellen.
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Interbase Transaktion
java
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | LDAP Suchergebnis
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | LDAP Verbindung
mcal | mcal_open(), mcal_popen() | mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() | mcal_close() | Verbindung zu einem Kalenderserver herstellen.
msql query | msql_query() | msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_fieldname(), msql_field_seek(), msql_fieldtable(), msql_fieldtype(), msql_fieldflags(), msql_fieldlen(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() | msql_free_result(), msql_free_result() | mSQL Ergebnis
msql link | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Verbindung zu einer mSQL Datenbank herstellen.
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | Niemandem | Persistente Verbindung zu einer mSQL Datenbank herstellen.
mssql result | mssql_query() | mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() | mssql_free_result() | Microsft SQL Server Ergebnis
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Verbindung zu einer Microsoft SQL Server Datenbank herstellen.
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | Niemandem | Persistente Verbindung zu einer Microsoft SQL Server Datenbank herstellen.
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | MySQL Ergebnis
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename() | mysql_close() | Verbindung zu einer MySQL Datenbank herstellen.
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename() | Niemandem | Persistente Verbindung zu einer MySQL Datenbank herstellen.
oci8 statement | ocinewdescriptor() | ocirollback(), ocinewdescriptor(), ocirowcount(), ocidefinebyname(), ocibindbyname(), ociexecute(), ocinumcols(), ociresult(), ocifetch(), ocifetchinto(), ocifetchstatement(), ocicolumnisnull(), ocicolumnname(), ocicolumnsize(), ocicolumntype(), ocistatementtype(), ocierror() | ocifreestatement() | Oracle Cursor
oci8 connection | ocilogon(), ociplogon(), ocinlogon() | ocicommit(), ociserverversion(), ocinewcursor(), ociparse(), ocierror() | ocilogoff() | Verbindung zu einer Oracle Datenbank herstellen.
oci8 descriptor
oci8 server
oci8 session
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | ODBC Ergebnis
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Verbindung zu einer ODBC Datenbank herstellen.
odbc link persistent | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | Niemandem | Persistente Verbindung zu einer ODBC Datenbank herstellen.
birdstep link
birdstep result
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | OpenSSL key
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Public Key
oracle cursor | ora_open() | ora_bind(), ora_columnname(), ora_columnsize(), ora_columntype(), ora_error(), ora_errorcode(), ora_exec(), ora_fetch(), ora_fetch_into(), ora_getcolumn(), ora_numcols(), ora_numrows(), ora_parse() | ora_close() | Oracle Cursor
oracle link | ora_logon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | ora_logoff() | Verbindung zu einer Oracle Datenbank herstellen.
oracle link persistent | ora_plogon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | Niemandem | Persistente Verbindung zu einer Oracle Datenbank herstellen.
pdf image | pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() | pdf_get_image_height(), pdf_get_image_width(), pdf_open_CCITT(), pdf_place_image() | pdf_close_image() | Bilder in PDF-Dateien
pdf outline
pdf document | pdf_new() | pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_open_memory_image() | pdf_close(), pdf_delete() | PDF-Document
pgsql link | pg_connect() | pg_cmdtuples(), pg_dbname(), pg_end_copy(), pg_errormessage(), pg_host(), pg_locreate(), pg_loexport(), pg_loimport(), pg_loopen(), pg_lounlink(), pg_options(), pg_port(), pg_put_line(), pg_set_client_encoding(), pg_client_encoding(), pg_trace(), pg_untrace(), pg_tty() | pg_close() | Verbindung zu einer PostgreSQL Datenbank herstellen.
pgsql link persistent | pg_pconnect() | pg_cmdtuples(), pg_dbname(), pg_end_copy(), pg_errormessage(), pg_host(), pg_locreate(), pg_loexport(), pg_loimport(), pg_loopen(), pg_lounlink(), pg_options(), pg_port(), pg_put_line(), pg_set_client_encoding(), pg_client_encoding(), pg_trace(), pg_untrace(), pg_tty() | Niemandem | Persistente Verbindung zu einer PostgreSQL Datenbank herstellen.
pgsql result | pg_exec() | pg_fetch_array(), pg_fetch_object(), pg_fieldisnull(), pg_fetch_row(), pg_fieldname(), pg_fieldnum(), pg_fieldprtlen(), pg_fieldsize(), pg_fieldtype(), pg_getlastoid(), pg_numfields(), pg_result(), pg_numrows() | pg_freeresult() | PostgreSQL Ergebnis
pgsql large object | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | PostgreSQL Large Object
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Verbindung zu einer PostgreSQL Datenbank herstellen.
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | None | Persistente Verbindung zu einer PostgreSQL Datenbank herstellen.
pgsql result | pg_query(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | PostgreSQL Ergebnis
pgsql string
printer
printer pen
printer font
printer brush
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | Niemandem | pspell Wörterbuch
pspell config | pspell_config_create() | pspell_new_config() | Niemandem | pspell Konfiguration
Sablotron XSLT | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler() | xslt_free() | XSLT Parser
shmop | shm_open() | shm_read(), shm_write(), shm_size(), shm_delete() | shm_close()
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Socket
sockets i/o vector
dir | dir() | readdir(), rewinddir() | closedir() | Dir handle
file | fopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | File handle
pipe | popen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Process handle
socket | fsockopen() | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket handle
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Verbindung zu einer Sybase Datenbank über die DB Library herstellen.
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | Niemandem | Persistente Verbindung zu einer Sybase Datenbank über die DB Library herstellen.
sybase-db result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase Ergebnis mit Hilfe der DB Library.
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Verbindung zu einer Sybase Datenbank über die CT Library herstellen.
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | Niemandem | Persistente Verbindung zu einer Sybase Datenbank über die CT Library herstellen.
sybase-ct result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase Ergebnis mit Hilfe der DB Library.
sysvsem | sem_get() | sem_acquire() | sem_release() | System V Semaphore
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | System V Shared Memory
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX packet
xml | xml_parser_create() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | XML parser
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | gz-komprimierte Datei

Zurück | Zum Anfang | Nach vorne
Automatisch vordefinierte Konstanten | Nach oben | List of Supported Protocols/Wrappers


List of Supported Protocols/Wrappers

PHP Handbuch
Zurück Nach vorne

Anhang J. List of Supported Protocols/Wrappers

Inhaltsverzeichnis
Filesystem
HTTP and HTTPS
FTP and FTPS
PHP input/output streams
Compression Streams

The following is a list of the various URL style protocols that PHP has built-in for use with the filesystem functions such as fopen() and copy(). In addition to these wrappers, as of PHP 4.3.0, you can write your own wrappers using PHP script and stream_wrapper_register().

Filesystem

All versions of PHP. Explicitly using file:// since PHP 4.3.0

  • /path/to/file.ext

  • relative/path/to/file.ext

  • fileInCwd.ext

  • C:/path/to/winfile.ext

  • C:\path\to\winfile.ext

  • \\smbserver\share\path\to\winfile.ext

  • file:///path/to/file.ext

file:// is the default wrapper used with PHP and represents the local filesystem. When a relative path is specified (a path which does not begin with /, \, \\, or a windows drive letter) the path provided will be applied against the current working directory. In many cases this is the directory in which the script resides unless it has been changed. Using the CLI sapi, this defaults to the directory from which the script was called.

With some functions, such as fopen() and file_get_contents(), include_path may be optionally searched for relative paths as well.

Tabelle J-1. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | Yes
Supports stat() | Yes
Supports unlink() | Yes
Supports rename() | Yes
Supports mkdir() | Yes
Supports rmdir() | Yes

Zurück | Zum Anfang | Nach vorne
Liste von Ressourcentypen | Nach oben | HTTP and HTTPS


HTTP and HTTPS

PHP 3, PHP 4. https:// since PHP 4.3.0

  • http://example.com

  • http://example.com/file.php?var1=val1&var2=val2

  • http://user:password@example.com

  • https://example.com

  • https://example.com/file.php?var1=val1&var2=val2

  • https://user:password@example.com

Allows read-only access to files/resources via HTTP 1.0, using the HTTP GET method. A Host: header is sent with the request to handle name-based virtual hosts. If you have configured a user_agent string using your ini file or the stream context, it will also be included in the request.

Warnung

Some non-standard compliant webservers, such as IIS, send data in a way that causes PHP to raise warnings. When working with such servers you should lower your error_reporting level not to include warnings.

Redirects have been supported since PHP 4.0.5; if you are using an earlier version you will need to include trailing slashes in your URLs. If it's important to know the URL of the resource where your document came from (after all redirects have been processed), you'll need to process the series of response headers returned by the stream.

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

/* Prior to PHP 4.3.0 use $http_response_header
   instead of stream_get_meta_data() */
foreach(stream_get_meta_data($fp) as $response) {

  /* Were we redirected? */
  if (substr(strtolower($response), 0, 10) == 'location: ') {
    /* update $url with where we were redirected to */
    $url = substr($response, 10);
  }

}

?>

The stream allows access to the body of the resource; the headers are stored in the $http_response_header variable. Since PHP 4.3.0, the headers are available using stream_get_meta_data().

HTTP connections are read-only; you cannot write data or copy files to an HTTP resource.

Anmerkung: HTTPS is supported starting from PHP 4.3.0, if you have compiled in support for OpenSSL.

Tabelle J-2. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | Yes
Allows Reading | Yes
Allows Writing | No
Allows Appending | No
Allows Simultaneous Reading and Writing | N/A
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Tabelle J-3. Context options (as of PHP 5.0.0)

Name | Usage | Default
method | GET, POST, or any other HTTP method supported by the remote server. | GET
header | Additional headers to be sent during request. Values in this option will override other values (such as User-agent:, Host:, and Authentication:). |
user_agent | Value to send with User-Agent: header. This value will only be used if user-agent is not specified in the header context option above. | php.ini setting: user_agent
content | Additional data to be sent after the headers. Typically used with POST or PUT requests. |
proxy | URI specifying address of proxy server. (e.g. tcp://proxy.example.com:5100 ). |
request_fulluri | When set to TRUE, the entire URI will be used when constructing the request. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). While this is a non-standard request format, some proxy servers require it. | FALSE

Underlying socket stream context options: Additional context options may be supported by the underlying transport For http:// streams, refer to context options for the tcp:// transport. For https:// streams, refer to context options for the ssl:// transport.

Zurück | Zum Anfang | Nach vorne
List of Supported Protocols/Wrappers | Nach oben | FTP and FTPS


FTP and FTPS

PHP 3, PHP 4. ftps:// since PHP 4.3.0

  • ftp://example.com/pub/file.txt

  • ftp://user:password@example.com/pub/file.txt

  • ftps://example.com/pub/file.txt

  • ftps://user:password@example.com/pub/file.txt

Allows read access to existing files and creation of new files via FTP. If the server does not support passive mode ftp, the connection will fail.

You can open files for either reading or writing, but not both simultaneously. If the remote file already exists on the ftp server and you attempt to open it for writing but have not specified the context option overwrite, the connection will fail. If you need to overwrite existing files over ftp, specify the overwrite option in the context and open the file for writing. Alternatively, you can use the FTP extension.

Appending: As of PHP 5.0.0 files may be appended via the ftp:// URL wrapper. In prior versions, attempting to append to a file via ftp:// will result in failure.

ftps:// was introduced in PHP 4.3.0. It is the same as ftp://, but attempts to negotiate a secure connection with the ftp server. If the server does not support SSL, then the connection falls back to regular unencrypted ftp.

Anmerkung: FTPS is supported starting from PHP 4.3.0, if you have compiled in support for OpenSSL.

Tabelle J-4. Wrapper Summary

Attribute | PHP 4 | PHP 5
Restricted by allow_url_fopen. | Yes | Yes
Allows Reading | Yes | Yes
Allows Writing | Yes (new files only) | Yes (new files/existing files with overwrite)
Allows Appending | No | Yes
Allows Simultaneous Reading and Writing | No | No
Supports stat() | No | filesize(), filetype(), file_exists(), is_file(), and is_dir() elements only.
Supports unlink() | No | Yes
Supports rename() | No | Yes
Supports mkdir() | No | Yes
Supports rmdir() | No | Yes

Tabelle J-5. Context options (as of PHP 5.0.0)

Name | Usage | Default
overwrite | Allow overwriting of already existing files on remote server. Applies to write mode (uploading) only. | FALSE (Disabled)
resume_pos | File offset at which to begin transfer. Applies to read mode (downloading) only. | 0 (Beginning of File)

Underlying socket stream context options: Additional context options may be supported by the underlying transport For ftp:// streams, refer to context options for the tcp:// transport. For ftps:// streams, refer to context options for the ssl:// transport.

Zurück | Zum Anfang | Nach vorne
HTTP and HTTPS | Nach oben | PHP input/output streams


PHP input/output streams

PHP 3.0.13 and up, php://output and php://input since PHP 4.3.0, php://filter since PHP 5.0.0

  • php://stdin

  • php://stdout

  • php://stderr

  • php://output

  • php://input

  • php://filter

php://stdin, php://stdout and php://stderr allow access to the corresponding input or output stream of the PHP process.

php://output allows you to write to the output buffer mechanism in the same way as print() and echo().

php://input allows you to read raw POST data. It is a less memory intensive alternative to $HTTP_RAW_POST_DATA and does not need any special php.ini directives.

php://stdin and php://input are read-only, whereas php://stdout, php://stderr and php://output are write-only.

php://filter is a kind of meta-wrapper designed to permit the application of filters to a stream at the time of opening. This is useful with all-in-one file functions such as readfile(), file(), and file_get_contents() where there is otherwise no opportunity to apply a filter to the stream prior the contents being read.

The php://filter target takes the following 'parameters' as parts of its 'path'.

  • /resource=<stream to be filtered> (required) This parameter must be located at the end of your php://filter specification and should point to the stream which you want filtered.

    <?php
    /* This is equivalent to simply:
       readfile("http://www.example.com");
       since no filters are actually specified */

    readfile("php://filter/resource=http://www.example.com");
    ?>

  • /read=<filter list to apply to read chain> (optional) This parameter takes one or more filternames separated by the pipe character |.

    <?php
    /* This will output the contents of
       www.example.com entirely in uppercase */
    readfile("php://filter/read=string.toupper/resource=http://www.example.com");

    /* This will do the same as above
       but will also ROT13 encode it */
    readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
    ?>

  • /write=<filter list to apply to write chain> (optional) This parameter takes one or more filternames separated by the pipe character |.

    <?php
    /* This will filter the string "Hello World"
       through the rot13 filter, then write to
       example.txt in the current directory */
    file_set_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
    ?>

  • /<filter list to apply to both chains> (optional) Any filter lists which are not prefixed specifically by read= or write= will be applied to both the read and write chains (as appropriate).

Tabelle J-6. Wrapper Summary (For php://filter, refer to summary of wrapper being filtered.)

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | php://stdin and php://input only.
Allows Writing | php://stdout, php://stderr, and php://output only.
Allows Appending | php://stdout, php://stderr, and php://output only. (Equivalent to writing)
Allows Simultaneous Reading and Writing | No. These wrappers are unidirectional.
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Zurück | Zum Anfang | Nach vorne
FTP and FTPS | Nach oben | Compression Streams


Compression Streams

zlib: PHP 4.0.4 - PHP 4.2.3 (systems with fopencookie only)

compress.zlib:// and compress.bzip2:// PHP 4.3.0 and up

  • zlib:

  • compress.zlib://

  • compress.bzip2://

zlib: works like gzopen(), except that the stream can be used with fread() and the other filesystem functions. This is deprecated as of PHP 4.3.0 due to ambiguities with filenames containing ':' characters; use compress.zlib:// instead.

compress.zlib:// and compress.bzip2:// are equivalent to gzopen() and bzopen() respectively, and operate even on systems that do not support fopencookie.

Tabelle J-7. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | No
Supports stat() | No, use the normal file:// wrapper to stat compressed files.
Supports unlink() | No, use the normal file:// wrapper to unlink compressed files.
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Zurück | Zum Anfang | Nach vorne
PHP input/output streams | Nach oben | List of Available Filters


List of Available Filters

PHP Handbuch
Zurück Nach vorne

Anhang K. List of Available Filters

Inhaltsverzeichnis
String Filters
Conversion Filters
Compression Filters

The following is a list of a few built-in stream filters for use with stream_filter_append(). Your version of PHP may have more filters (or fewer) than those listed here.

It is worth noting a slight asymmetry between stream_filter_append() and stream_filter_prepend(). Every PHP stream contains a small read buffer where it stores blocks of data retrieved from the filesystem or other resource in order to process data in the most efficient manner. As soon as data is pulled from the resource into the stream's internal buffer, it is immediately processed through any attached filters whether the PHP application is actually ready for the data or not. If data is sitting in the read buffer when a filter is appended, this data will be immediately processed through that buffer making the fact that is was sitting in the buffer seem transparent. However, if data is sitting in the read buffer when a filter is prepended, this data will NOT be processed through that filter. It will instead wait until the next block of data is retrieved from the resource.

For a list of filters installed in your version of PHP use stream_get_filters().

String Filters

Each of these filters does precisely what their name implies and correspond to the behavior of a built-in php string handling function. For more information on a given filter, refer to the manual page for the corresponding function.

string.rot13 (since PHP 4.3.0) Use of this filter is equivalent to processing all stream data through the str_rot13() function.

Beispiel K-1. string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Outputs:  Guvf vf n grfg.   */
?>

string.toupper (since PHP 5.0.0) Use of this filter is equivalent to processing all stream data through the strtoupper() function.

Beispiel K-2. string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* Outputs:  THIS IS A TEST.   */
?>

string.tolower (since PHP 5.0.0) Use of this filter is equivalent to processing all stream data through the strtolower() function.

Beispiel K-3. string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* Outputs:  this is a test.   */
?>

string.strip_tags (since PHP 5.0.0) Use of this filter is equivalent to processing all stream data through the strip_tags() function. It accepts parameters in one of two forms: Either as a string containing a list of tags similar to the second parameter of the strip_tags() function, or as an array of tag names.

Beispiel K-4. string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */
?>

Zurück | Zum Anfang | Nach vorne
Compression Streams | Nach oben | Conversion Filters


Conversion Filters

Like the string.* filters, the convert.* filters perform actions similar to their names. The convert filters were added with PHP 5.0.0. For more information on a given filter, refer to the manual page for the corresponding function.

convert.base64-encode and convert.base64-decode Use of these filters are equivalent to processing all stream data through the base64_encode() and base64_decode() functions respectively. convert.base64-encode supports parameters given as an associative array. If line-length is given, the base64 output will be split into chunks of line-length characters each. If line-break-chars is given, each chunk will be delimited by the characters given. These parameters give the same effect as using base64_encode() with chunk_split().

Beispiel K-5. convert.base64-encode & convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBpcyBhIHRlc3QuCg==  */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBp
          :  cyBhIHRl
          :  c3QuCg==  */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Outputs:  This is a test.  */
?>

convert.quoted-printable-encode and convert.quoted-printable-decode Use of the decode version of this filter is equivalent to processing all stream data through the quoted_printable_decode() functions. There is no function equivalent to convert.quoted-printable-encode. convert.quoted-printable-encode supports parameters given as an associative array. In addition to the parameters supported by convert.base64-encode, convert.quoted-printable-encode also supports boolean arguments binary and force-encode-first. convert.base64-decode only supports the line-break-chars parameter as a type-hint for striping from the encoded payload.

Beispiel K-6. convert.quoted-printable-encode & convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* Outputs:  =This is a test.=0A  */
?>

Zurück | Zum Anfang | Nach vorne
List of Available Filters | Nach oben | Compression Filters


Compression Filters

While the Abschnitt namens Compression Streams in Anhang J provide a way of creating gzip and bz2 compatable files on the local filesystem, they do not provide a means for generalized compression over network streams, nor do they provide a means to begin with a non-compressed stream and transition to a compressed one. For this, a compression filter may be applied to any stream resource at any time.

Anmerkung: Compression filters do not generate headers and trailers used by commandline utilites such as gzip. They only compress and decompress the payload portions of compressed data streams.

zlib.deflate (compression) and zlib.inflate (decompression) are implementations of the compression methods described in RFC 1951. The deflate filter takes up to three parameters passed as an associative array. level describes the compression strength to use (1-9). Higher numbers will generally yield smaller payloads at the cost of additional processing time. Two special compression levels also exist: 0 (for no compression at all), and -1 (zlib internal default -- currently 6). window is the base-2 log of the compression loopback window size. Higher values (up to 15 -- 32768 bytes) yield better compression at a cost of memory, while lower values (down to 9 -- 512 bytes) yield worse compression in a smaller memory footprint. Default window size is currently 15. memory is a scale indicating how much work memory should be allocated. Valid values range from 1 (minimal allocation) to 9 (maximum allocation). This memory allocation affects speed only and does not impact the size of the generated payload.

Anmerkung: Because compression level is the most commonly used parameter, it may be alternatively provided as a simple integer value (rather than an array element).

Anmerkung: The zlib.* filters are not currently built into the PHP core. To enable these filters in PHP 5, install the zlib_filter package from PECL. These filters are not available for PHP 4.

Beispiel K-7. zlib.deflate and zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";
echo "The original text was:\n";
/* Use readfile and zlib.inflate to decompress on the fly */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.
The original text was:
This is a test.
This is only a test.
This is not an important string.

*/
?>

Beispiel K-8. zlib.deflate simple

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
/* Here "6" indicates compression level 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.

*/
?>

bzip2.compress and bzip2.decompress work in the same manner as the zlib filters described above. The bzip2.compress filter accepts up to two parameters given as elements of an associative array: blocks is an integer value from 1 to 9 specifying the number of 100kbyte blocks of memory to allocate for workspace. work is also an integer value ranging from 0 to 250 indicating how much effort to expend using the normal compression method before falling back on a slower, but more reliable method. Tuning this parameter effects only compression speed. Neither size of compressed output nor memory usage are changed by this setting. A work factor of 0 instructs the bzip library to use an internal default. The bzip2.decompress filter only accepts one parameter, which can be passed as either an ordinary boolean value as the small element of an associative array. small, when set to a TRUE value, instructs the bzip library to perform decompression in a minimal memory footprint at the cost of speed.

Anmerkung: The bzip2.* filters are not currently built into the PHP core. To enable these filters in PHP 5, install the bz2_filter package from PECL. These filters are not available for PHP 4.

Beispiel K-9. bzip2.compress and bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "The original file is " . filesize('LICENSE') . " bytes long.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "The compressed file is " . filesize('LICENSE.compressed') . " bytes long.\n";

/* Generates output:

The original text is 3288 characters long.
The compressed file is 1488 bytes long.

*/
?>

Zurück | Zum Anfang | Nach vorne
Conversion Filters | Nach oben | List of Supported Socket Transports


List of Supported Socket Transports

PHP Handbuch
Zurück Nach vorne

Anhang L. List of Supported Socket Transports

Inhaltsverzeichnis
Internet Domain: TCP, UDP, SSL, and TLS
Unix Domain: Unix and UDG

The following is a list of the various URL style socket transports that PHP has built-in for use with the streams based socket functions such as fsockopen(), and stream_socket_client(). These transports do not apply to the Sockets Extension.

For a list of transports installed in your version of PHP use stream_get_transports().

Internet Domain: TCP, UDP, SSL, and TLS

PHP 3, PHP 4. ssl:// & tls:// since PHP 4.3

Anmerkung: If no transport is specified, tcp:// will be assumed.

  • 127.0.0.1

  • fe80::1

  • www.example.com

  • tcp://127.0.0.1

  • tcp://fe80::1

  • tcp://www.example.com

  • udp://www.example.com

  • ssl://www.example.com

  • tls://www.example.com

Internet Domain sockets expect a port number in addition to a target address. In the case of fsockopen() this is specified in a second parameter and therefore does not impact the formatting of transport URL. With stream_socket_client() and related functions as with traditional URLs however, the port number is specified as a suffix of the transport URL delimited by a colon.

  • tcp://127.0.0.1:80

  • tcp://[fe80::1]:80

  • tcp://www.example.com:80

IPv6 numeric addresses with port numbers: In the second example above, while the IPv4 and hostname examples are left untouched apart from the addition of their colon and portnumber, the IPv6 address is wrapped in square brackets: [fe80::1]. This is to distinguish between the colons used in an IPv6 address and the colon used to delimit the portnumber.

The ssl:// and tls:// transports (available only when openssl support is compiled into PHP) are extensions of the tcp:// transport which includes SSL encryption. Since PHP 4.3.0 OpenSSL support must be statically compiled into PHP, since PHP 5.0.0 it may be compiled as a module or statically.

Tabelle L-1. Context options for ssl:// and tls:// transports (since PHP 4.3.2)

Name | Usage | Default
verify_peer | TRUE or FALSE. Require verification of SSL certificate used. | FALSE
allow_self_signed | TRUE or FALSE. Allow self-signed certificates. | FALSE
cafile | Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer. |
capath | If cafile is not specified or if the certificate is not found there, the directory pointed to by capath is searched for a suitable certificate. capath must be a correctly hashed certificate directory. |
local_cert | Path to local certificate file on filesystem. It must be a PEM encoded file which contains your certificate and private key. It can optionally contain the certificate chain of issuers. |
passphrase | Passphrase with which your local_cert file was encoded. |
CN_match | Common Name we are expecting. PHP will perform limited wildcard matching. If the Common Name does not match this, the connection attempt will fail. |

Anmerkung: Because ssl:// is the underlying transport for the https:// and ftps:// wrappers, any context options which apply to ssl:// also apply to https:// and ftps://.

Zurück | Zum Anfang | Nach vorne
Compression Filters | Nach oben | Unix Domain: Unix and UDG


Unix Domain: Unix and UDG

unix:// since PHP 3, udg:// since PHP 5

  • unix:///tmp/mysock

  • udg:///tmp/mysock

unix:// provides access to a socket stream connection in the Unix domain. udg:// provides an alternate transport to a Unix domain socket using the user datagram protocol.

Unix domain sockets, unlike Internet domain sockets, do not expect a port number. In the case of fsockopen() the portno parameter should be set to 0.

Zurück | Zum Anfang | Nach vorne
List of Supported Socket Transports | Nach oben | PHP type comparison tables


PHP type comparison tables

PHP Handbuch
Zurück Nach vorne

Anhang M. PHP type comparison tables

The following tables demonstrate behaviors for PHP types and comparison operators, for both loose and strict comparisons. This supplemental is also related to the manual section on type juggling. Inspiration was provided by various user comments and by the work over at BlueShoes.

Before utilizing these tables, it's important to understand types and their meanings. For example, "42" is a string while 42 is an integer. FALSE is a boolean while "false" is a string.

Anmerkung: HTML Forms do not pass integers, floats, or booleans; they pass strings. To find out if a string is numeric, you may use is_numeric().

Anmerkung: Simply doing if ($x) while $x is undefined will generate an error of level E_NOTICE. Instead, consider using empty() or isset() and/or initialize your variables.

Tabelle M-1. Comparisons of $x with PHP functions

Expression | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | string | TRUE | FALSE | TRUE | FALSE
$x = NULL | NULL | TRUE | TRUE | FALSE | FALSE
var $x; | NULL | TRUE | TRUE | FALSE | FALSE
$x is undefined | NULL | TRUE | TRUE | FALSE | FALSE
$x = array(); | array | TRUE | FALSE | TRUE | FALSE
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE
$x = 1; | integer | FALSE | FALSE | TRUE | TRUE
$x = 42; | integer | FALSE | FALSE | TRUE | TRUE
$x = 0; | integer | TRUE | FALSE | TRUE | FALSE
$x = -1; | integer | FALSE | FALSE | TRUE | TRUE
$x = "1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "0"; | string | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "php"; | string | FALSE | FALSE | TRUE | TRUE
$x = "true"; | string | FALSE | FALSE | TRUE | TRUE
$x = "false"; | string | FALSE | FALSE | TRUE | TRUE

Tabelle M-2. Loose comparisons with ==

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

Tabelle M-3. Strict comparisons with ===

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

PHP 3.0 note: The string value "0" was considered non-empty in PHP 3, this behavior changed in PHP 4 where it's now seen as empty.

Zurück | Zum Anfang | Nach vorne
Unix Domain: Unix and UDG | Nach oben | List of Parser Tokens


List of Parser Tokens

PHP Handbuch
Zurück Nach vorne

Anhang N. List of Parser Tokens

Various parts of the PHP language are represented internally by types like T_SR. PHP outputs identifiers like this one in parse errors, like "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

You're supposed to know what T_SR means. For everybody who doesn't know that, here is a table with those identifiers, PHP-syntax and references to the appropriate places in the manual.

Tabelle N-1. Tokens

Token | Syntax | Reference
T_AND_EQUAL | &= | assignment operators
T_ARRAY | array() | array(), array syntax
T_ARRAY_CAST | (array) | type-casting
T_AS | as | foreach
T_BAD_CHARACTER |  | anything below ASCII 32 except \t (0x09), \n (0x0a) and \r (0x0d)
T_BOOLEAN_AND | && | logical operators
T_BOOLEAN_OR | || | logical operators
T_BOOL_CAST | (bool) or (boolean) | type-casting
T_BREAK | break | break
T_CASE | case | switch
T_CHARACTER |  |
T_CLASS | class | classes and objects
T_CLOSE_TAG | ?> or %> |
T_COMMENT | // or # | comments
T_CONCAT_EQUAL | .= | assignment operators
T_CONST | const |
T_CONSTANT_ENCAPSED_STRING | "foo" or 'bar' | string syntax
T_CONTINUE | continue |
T_CURLY_OPEN |  |
T_DEC | -- | incrementing/decrementing operators
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIV_EQUAL | /= | assignment operators
T_DNUMBER | 0.12, etc | floating point numbers
T_DO | do | do..while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | complex variable parsed syntax
T_DOUBLE_ARROW | => | array syntax
T_DOUBLE_CAST | (real), (double) or (float) | type-casting
T_ECHO | echo | echo()
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE |  |
T_ENDDECLARE | enddeclare | declare, alternative syntax
T_ENDFOR | endfor | for, alternative syntax
T_ENDFOREACH | endforeach | foreach, alternative syntax
T_ENDIF | endif | if, alternative syntax
T_ENDSWITCH | endswitch | switch, alternative syntax
T_ENDWHILE | endwhile | while, alternative syntax
T_END_HEREDOC |  | heredoc syntax
T_EVAL | eval() | eval()
T_EXIT | exit or die | exit(), die()
T_EXTENDS | extends | extends, classes and objects
T_FILE | __FILE__ | constants
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function or cfunction | functions
T_GLOBAL | global | variable scope
T_IF | if | if
T_INC | ++ | incrementing/decrementing operators
T_INCLUDE | include() | include()
T_INCLUDE_ONCE | include_once() | include_once()
T_INLINE_HTML |  |
T_INT_CAST | (int) or (integer) | type-casting
T_ISSET | isset() | isset()
T_IS_EQUAL | == | comparison operators
T_IS_GREATER_OR_EQUAL | >= | comparison operators
T_IS_IDENTICAL | === | comparison operators
T_IS_NOT_EQUAL | != or <> | comparison operators
T_IS_NOT_IDENTICAL | !== | comparison operators
T_SMALLER_OR_EQUAL | <= | comparison operators
T_LINE | __LINE__ | constants
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac, etc | integers
T_LOGICAL_AND | and | logical operators
T_LOGICAL_OR | or | logical operators
T_LOGICAL_XOR | xor | logical operators
T_MINUS_EQUAL | -= | assignment operators
T_ML_COMMENT | /* and */ | comments
T_MOD_EQUAL | %= | assignment operators
T_MUL_EQUAL | *= | assignment operators
T_NEW | new | classes and objects
T_NUM_STRING |  |
T_OBJECT_CAST | (object) | type-casting
T_OBJECT_OPERATOR | -> | classes and objects
T_OLD_FUNCTION | old_function | old_function
T_OPEN_TAG | <?php, <? or <% | escaping from HTML
T_OPEN_TAG_WITH_ECHO | <?= or <%= | escaping from HTML
T_OR_EQUAL | |= | assignment operators
T_PAAMAYIM_NEKUDOTAYIM | :: | ::
T_PLUS_EQUAL | += | assignment operators
T_PRINT | print() | print()
T_REQUIRE | require() | require()
T_REQUIRE_ONCE | require_once() | require_once()
T_RETURN | return | returning values
T_SL | << | bitwise operators
T_SL_EQUAL | <<= | assignment operators
T_SR | >> | bitwise operators
T_SR_EQUAL | >>= | assignment operators
T_START_HEREDOC | <<< | heredoc syntax
T_STATIC | static | variable scope
T_STRING |  |
T_STRING_CAST | (string) | type-casting
T_STRING_VARNAME |  |
T_SWITCH | switch | switch
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | (not documented; casts to NULL)
T_USE | use | (not implemented)
T_VAR | var | classes and objects
T_VARIABLE | $foo | variables
T_WHILE | while | while, do..while
T_WHITESPACE |  |
T_XOR_EQUAL | ^= | assignment operators
T_FUNC_C | __FUNCTION__ | constants, since PHP 4.3.0
T_CLASS_C | __CLASS__ | constants, since PHP 4.3.0

Zurück | Zum Anfang | Nach vorne
PHP type comparison tables | Nach oben | Über das Handbuch


Über das Handbuch

PHP Handbuch
Zurück Nach vorne

Anhang O. Über das Handbuch

Inhaltsverzeichnis
Formate
Über die Kommentare (User Notes)
Mehr Informationen über PHP finden
Wie Sie helfen können, die Dokumentation zu verbessern
Wie wir die Formate generieren
Übersetzungen

Formate

Das PHP Handbuch wird in diversen Formaten zur Verfügung gestellt. Diese Formate lassen sich in zwei Gruppen aufteilen: Formate, die online lesbar sind und solche, die zum Download bereit stehen.

Anmerkung: Einige Verlage haben gedruckte Versionen dieses Handbuchs veröffentlicht. Wir können diese Bücher nicht empfehlen, da sie relativ schnell veraltet sind.

Sie können das Handbuch unter http://www.php.net/ und zahllosen Mirrors online lesen. Sie sollten generell immer einen Mirror in Ihrer Nähe verwenden. Sie können sich das Handbuch entweder in purem (druckfreundlichen) HTML Format oder in einem HTML Format im Design der PHP Website ansehen.

Der Vorteil des Onlinehandbuchs gegenüber den meisten Offlineformaten ist die Integration von Kommentaren (User Notes), die von Usern eingetragen werden. Ein offensichtlicher Nachteil ist, dass Sie online sein müssen, um das Onlinehandbuch anzusehen.

Es stehen diverse Offlineformate des Handbuchs zur Verfügung. Welches Format das Beste für Sie ist hängt davon ab, welches Betriebssystem Sie verwenden und welches Sie am liebsten lesen. Wenn Sie Informationen darüber suchen, wie das Handbuch in so vielen verschiedenen Formaten generiert wird, lesen Sie bitte den Abschnitt 'Wie wir die Formate generieren' in diesem Anhang.

Die plattformunabhängigsten Formate des Handbuchs sind die HTML- und Textversionen. Das HTML Format steht sowohl als einzelne HTML-Datei, als auch als Paket von mehren einzelnen Dateien für jedes Kapitel (welches mehrere tausend Dateien ergibt) zur Verfügung. Die HTML- und Textformate können als komprimierte tar-Dateien (mit bzip2 komprimiert) heruntergeladen werden.

Ein anderes geläufiges Format, welches plattformunabhängig ist, und das Format, was sich am besten zum drucken eignet, ist PDF (auch als Adobe Acrobat bekannt). Bevor Sie jetzt dieses Format downloaden und auf den Druckbutton drücken: Seien Sie gewarnt, dieses Handbuch umfaßt fast 2000 Seiten und wird ständig erweitert.

Anmerkung: Wenn Sie noch kein Programm installiert haben, über das Sie PDFs ansehen können, laden Sie sich den Adobe Acrobat Reader herunter.

Für Besitzer von Palm kompatiblen Handhelds gibt es das Handbuch als Palm Document und im iSilo Format. Beide Formate sind ideal für diese Plattform. Sie können Ihren Handheld dazu verwenden, auf Ihrem täglichen Weg zur Arbeit mit der DOC oder iSilo Software Ihre PHP-Kenntnisse aufzubessern, oder einfach nur, um schnell etwas nachzuschlagen.

Unter Windows gibt es ein HTML-Handbuch zur Verwendung mit der Windows HTML Hilfe. Diese Version beinhaltet eine Volltextsuche, einen kompletten Index und Lesezeichen. Viele bekannte PHP Entwicklungsumgebungen haben diese Version der Dokumentation für schnelleren Zugriff integriert.

Zurück | Zum Anfang | Nach vorne
List of Parser Tokens | Nach oben | Über die Kommentare (User Notes)


Über die Kommentare (User Notes)

Die Kommentare der Benutzer spielen eine wichtige Rolle in der Entwicklung des Handbuchs. Dadurch, dass Benutzern erlaubt wird, Beispiele, Warnungen und weitere Klärungen über ihren Browser beizusteuern, ist es uns möglich, diese Rückmeldungen in den Text des Handbuchs einzuarbeiten. Und bis die Kommentare eingearbeitet sind können sie online und in manchen Offlineformaten in der Form eingesehen werden, wie sie eingetragen wurden.

Anmerkung: Die Kommentare sind nicht moderiert bevor sie online erscheinen, also kann für die Qualität des Schriftstils und der Codebeispiele, ja sogar für die Richigkeit der Beiträge, nicht garantiert werden. (Nicht, dass es irgendeine Garantie für die Qualität oder Richtigkeit des Handbuchs ansich gibt.)

Zurück | Zum Anfang | Nach vorne
Über das Handbuch | Nach oben | Mehr Informationen über PHP finden


Mehr Informationen über PHP finden

Dieses Handbuch versucht nicht, Vorschriften über generelle Programmierpraktiken zu machen. Wenn Sie das erste mal programmieren, oder noch ein Anfänger sind, werden Sie es schwer finden, PHP programmieren nur mit diesem Handbuch zu lernen. Suchen Sie sich lieber eine Anleitung, die auf Anfänger zugeschnitten ist. Sie finden eine Liste mit PHP-bezogenen Büchern unter http://www.php.net/books.php.

Es gibt eine ganze Reihe von aktiven Mailinglisten, um über die PHP-Programmierung zu diskutieren. Hängen Sie selber an einem Problem fest, für das Sie keine Lösung finden, bekommen Sie unter Umständen Hilfestellung von jemandem auf einer der Listen. Eine Liste der Mailinglisten finden Sie unter http://www.php.net/support.php, genauso wie Links zu den Archiven der Mailinglisten und anderen Supportseiten. Außerdem gibt es unter http://www.php.net/links.php eine Liste von Websites mit Artikeln, Foren und Codebeispielen rund um PHP.

Zurück | Zum Anfang | Nach vorne
Über die Kommentare (User Notes) | Nach oben | Wie Sie helfen können, die Dokumentation zu verbessern


Wie Sie helfen können, die Dokumentation zu verbessern

Es gibt drei Möglichkeiten, diese Dokumentation zu verbessern.

Wenn Sie Fehler in diesem Handbuch finden, egal in welcher Sprache, bitte teilen Sie uns diese über das Bug System unter http://bugs.php.net/ mit. Bezeichnen Sie den Bug als "Documentation Problem". Dort können Sie uns auch Probleme mit einem bestimmten Handbuchformat mitteilen.

Anmerkung: Bitte missbrauchen Sie das Bug System nicht, indem Sie Hilfegesuche absenden. Verwenden Sie stattdessen dazu die Mailinglisten oder die Community Sites, die weiter oben erwähnt wurden.

Durch Kommentare können Sie anderen Lesern zusätzliche Codebeispiele, Warnungen und weitere Klärungen zur Verfügung stellen. Aber tragen Sie bitte keine Bugreports in das Kommentarsystem ein. Mehr über die Kommentarfuntkion können Sie im Abschnitt 'Über die Kommentare (User Notes)' dieses Anhangs lesen.

Wenn Sie Englisch und/oder einige andere Sprachen beherrschen, dann können Sie auch bei der Übersetzung helfen. Wollen Sie eine neue Übersetzung beginnen oder bei einem vorhandenen Übersetzungsteam beitreten, lesen Sie bitte http://cvs.php.net/co.php/phpdoc/howto/howto.html.tar.gz.

Zurück | Zum Anfang | Nach vorne
Mehr Informationen über PHP finden | Nach oben | Wie wir die Formate generieren


Wie wir die Formate generieren

Dieses Handbuch ist in XML geschrieben, unter Verwendung der DocBook XML DTD, formatiert von DSSSL (Document Style and Semantics Specification Language). Experimentell wird auch XSLT (Extensible Stylesheet Language Transformations) für Bearbeitung und Formatierung verwendet.

Die Verwendung von XML als Quellformat bietet uns die Möglichkeit, aus den Quelldateien sehr viele verschiedene Formaten zu generieren, während man nur ein QUelldokument für alle Formate pflegen muß. Die Programme für die Formatierung der HTML- und TeX-Versionen sind Jade, von James Clark und The Modular DocBook Stylesheets von Norman Walsh. Microsoft HTML Help Workshop wird dazu verwendet, das Handbuch im Windows HTML Help Format zu erzeugen und natürlich auch PHP selbst, um eine zusätzliche Konvertierung und Formatierung zu erledigen.

Sie können das Handbuch in verschiedenen Sprachen und Formaten wie Text, HTML, PDF, PalmPilot DOC, PalmPilot iSilo und Windows HTML Help, unter http://www.php.net/docs.php downloaden. Die Handbücher werden automatisch auf dem neuesten Stand gehalten, sobald der Inhalt verändert wurde.

Weitere Informationen zum Download des XML-Quellcodes dieser Dokumentation unter http://cvs.php.net/. Die Dokumentation befindet sich im Modul phpdoc.

Zurück | Zum Anfang | Nach vorne
Wie Sie helfen können, die Dokumentation zu verbessern | Nach oben | Übersetzungen


Übersetzungen

Das PHP Handbuch ist nicht nur in verschiedenen Formaten, sondern auch in verschiedenen Sprachen verfügbar. Der Inhalt wird zuerst auf englisch geschrieben, bevor er von Teams auf der ganzen Welt in ihre Muttersprache übersetzt wird. Wenn die Übersetzung einer bestimmten Funktion oder eines Kapitels noch nicht abgeschlossen ist, so wird die englische Version angezeigt.

Die Personen, die an der Handbuchübersetzung mitwirken, beginnen mit dem XML Quellcode, von http://cvs.php.net/ und übersetzen diesen in ihre Muttersprache. Sie verwenden nicht die HTML-, Text- oder PDF-Version. Das Build System kümmert sich um die Konvertierungen von XML in lesbare Formate.

Anmerkung: Wenn Sie bei der Übersetzung der Dokumentation in Ihre Muttersprache mithelfen wollen, kontaktieren Sie bitte das Überetzungs- bzw. Dokumentationsteam, indem Sie die phpdoc Mailingliste abbonieren: Senden Sie eine Email an phpdoc-subscribe@lists.php.net. Die Adresse der Mailingliste ist phpdoc@lists.php.net. Schreiben Sie, dass Sie interessiert sind, das Handbuch zu übersetzen und es wird sich sicher jemand bei Ihnen melden, der Ihnen hilft, die Übersetzung in eine neue Sprache zu starten oder Sie mit einem schon bestehenden Dokumentationsteam für Ihre Sprache bekannt machen.

Im Moment ist das Handbuch (teilweise oder vollständig) in die folgenden Sprachen übersetzt: Brasilianisches Portugiesisch, Tschechisch, Holländisch, Französisch, Deutsch, Ungarisch, Italienisch, Japanisch, Koreanisch, Polnisch, und Spanisch.

Sämtliche Übersetzungen können hier heruntergeladen werden: http://www.php.net/docs.php.

Zurück | Zum Anfang | Nach vorne
Wie wir die Formate generieren | Nach oben | Open Publication License


Open Publication License

PHP Handbuch
Zurück Nach vorne

Anhang P. Open Publication License

Inhaltsverzeichnis
I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS
II. COPYRIGHT
III. SCOPE OF LICENSE
IV. REQUIREMENTS ON MODIFIED WORKS
V. GOOD-PRACTICE RECOMMENDATIONS
VI. LICENSE OPTIONS

v1.0, 8 June 1999

I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS

The Open Publication works may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that the terms of this license are adhered to, and that this license or an incorporation of it by reference (with any options elected by the author(s) and/or publisher) is displayed in the reproduction.

Proper form for an incorporation by reference is as follows:

Copyright (c) <year> by <author's name or designee>. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, vX.Y or later (the latest version is presently available at http://www.opencontent.org/openpub/

The reference must be immediately followed with any options elected by the author(s) and/or publisher of the document (see section VI). Commercial redistribution of Open Publication-licensed material is permitted. Any publication in standard (paper) book form shall require the citation of the original publisher and author. The publisher and author's names shall appear on all outer surfaces of the book. On all outer surfaces of the book the original publisher's name shall be as large as the title of the work and cited as possessive with respect to the title.

Zurück | Zum Anfang | Nach vorne
Übersetzungen | Nach oben | II. COPYRIGHT


II. COPYRIGHT

The copyright to each Open Publication is owned by its author(s) or designee.

Zurück | Zum Anfang | Nach vorne
Open Publication License | Nach oben | III. SCOPE OF LICENSE


III. SCOPE OF LICENSE

The following license terms apply to all Open Publication works, unless otherwise explicitly stated in the document.

Mere aggregation of Open Publication works or a portion of an Open Publication work with other works or programs on the same media shall not cause this license to apply to those other works. The aggregate work shall contain a notice specifying the inclusion of the Open Publication material and appropriate copyright notice.

SEVERABILITY. If any part of this license is found to be unenforceable in any jurisdiction, the remaining portions of the license remain in force.

NO WARRANTY. Open Publication works are licensed and provided "as is" without warranty of any kind, express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose or a warranty of non-infringement.

Zurück | Zum Anfang | Nach vorne
II. COPYRIGHT | Nach oben | IV. REQUIREMENTS ON MODIFIED WORKS


IV. REQUIREMENTS ON MODIFIED WORKS

All modified versions of documents covered by this license, including translations, anthologies, compilations and partial documents, must meet the following requirements:

  1. The modified version must be labeled as such.

  2. The person making the modifications must be identified and the modifications dated.

  3. Acknowledgement of the original author and publisher if applicable must be retained according to normal academic citation practices.

  4. The location of the original unmodified document must be identified.

  5. The original author's (or authors') name(s) may not be used to assert or imply endorsement of the resulting document without the original author's (or authors') permission.

Zurück | Zum Anfang | Nach vorne
III. SCOPE OF LICENSE | Nach oben | V. GOOD-PRACTICE RECOMMENDATIONS


V. GOOD-PRACTICE RECOMMENDATIONS

In addition to the requirements of this license, it is requested from and strongly recommended of redistributors that:

  1. If you are distributing Open Publication works on hardcopy or CD-ROM, you provide email notification to the authors of your intent to redistribute at least thirty days before your manuscript or media freeze, to give the authors time to provide updated documents. This notification should describe modifications, if any, made to the document.

  2. All substantive modifications (including deletions) be either clearly marked up in the document or else described in an attachment to the document.

  3. Finally, while it is not mandatory under this license, it is considered good form to offer a free copy of any hardcopy and CD-ROM expression of an Open Publication-licensed work to its author(s).

Zurück | Zum Anfang | Nach vorne
IV. REQUIREMENTS ON MODIFIED WORKS | Nach oben | VI. LICENSE OPTIONS


VI. LICENSE OPTIONS

The author(s) and/or publisher of an Open Publication-licensed document may elect certain options by appending language to the reference to or copy of the license. These options are considered part of the license instance and must be included with the license (or its incorporation by reference) in derived works.

A. To prohibit distribution of substantively modified versions without the explicit permission of the author(s). "Substantive modification" is defined as a change to the semantic content of the document, and excludes mere changes in format or typographical corrections.

To accomplish this, add the phrase `Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder.' to the license reference or copy.

B. To prohibit any publication of this work or derivative works in whole or in part in standard (paper) book form for commercial purposes is prohibited unless prior permission is obtained from the copyright holder.

To accomplish this, add the phrase 'Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.' to the license reference or copy.

Zurück | Zum Anfang | Nach vorne
V. GOOD-PRACTICE RECOMMENDATIONS | Nach oben | Funktions-Index


Funktions-Index

PHP Handbuch
Zurück Nach vorne

Anhang Q. Funktions-Index

Inhaltsverzeichnis
Funktions-Index

Zurück | Zum Anfang | Nach vorne
VI. LICENSE OPTIONS | Nach oben | Funktions-Index


Funktions-Index

A

abs()
acos()
acosh()
addcslashes()
addslashes()
aggregate()
aggregate_info()
aggregate_methods()
aggregate_methods_by_list()
aggregate_methods_by_regexp()
aggregate_properties()
aggregate_properties_by_list()
aggregate_properties_by_regexp()
aggregation_info()
apache_child_terminate()
apache_get_modules()
apache_get_version()
apache_getenv()
apache_lookup_uri()
apache_note()
apache_request_headers()
apache_response_headers()
apache_setenv()
array()
array_change_key_case()
array_chunk()
array_combine()
array_count_values()
array_diff()
array_diff_assoc()
array_diff_uassoc()
array_fill()
array_filter()
array_flip()
array_intersect()
array_intersect_assoc()
array_key_exists()
array_keys()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_pad()
array_pop()
array_push()
array_rand()
array_reduce()
array_reverse()
array_search()
array_shift()
array_slice()
array_splice()
array_sum()
array_udiff()
array_udiff_assoc()
array_udiff_uassoc()
array_unique()
array_unshift()
array_values()
array_walk()
arsort()
ascii2ebcdic()
asin()
asinh()
asort()
aspell_check()
aspell_check_raw()
aspell_new()
aspell_suggest()
assert()
assert_options()
atan()
atan2()
atanh()

B

base64_decode()
base64_encode()
base_convert()
basename()
bcadd()
bccomp()
bcdiv()
bcmod()
bcmul()
bcpow()
bcpowmod()
bcscale()
bcsqrt()
bcsub()
bin2hex()
bind_textdomain_codeset()
bindec()
bindtextdomain()
bzclose()
bzcompress()
bzdecompress()
bzerrno()
bzerror()
bzerrstr()
bzflush()
bzopen()
bzread()
bzwrite()

C

cal_days_in_month()
cal_from_jd()
cal_info()
cal_to_jd()
call_user_func()
call_user_func_array()
call_user_method()
call_user_method_array()
ccvs_add()
ccvs_auth()
ccvs_command()
ccvs_count()
ccvs_delete()
ccvs_done()
ccvs_init()
ccvs_lookup()
ccvs_new()
ccvs_report()
ccvs_return()
ccvs_reverse()
ccvs_sale()
ccvs_status()
ccvs_textvalue()
ccvs_void()
ceil()
chdir()
checkdate()
checkdnsrr()
chgrp()
chmod()
chop()
chown()
chr()
chroot()
chunk_split()
class_exists()
clearstatcache()
closedir()
closelog()
com()
com_addref()
com_get()
com_invoke()
com_isenum()
com_load()
com_load_typelib()
com_propget()
com_propput()
com_propset()
com_release()
com_set()
compact()
connection_aborted()
connection_status()
connection_timeout()
constant()
convert_cyr_string()
copy()
cos()
cosh()
count()
count_chars()
cpdf_add_annotation()
cpdf_add_outline()
cpdf_arc()
cpdf_begin_text()
cpdf_circle()
cpdf_clip()
cpdf_close()
cpdf_closepath()
cpdf_closepath_fill_stroke()
cpdf_closepath_stroke()
cpdf_continue_text()
cpdf_curveto()
cpdf_end_text()
cpdf_fill()
cpdf_fill_stroke()
cpdf_finalize()
cpdf_finalize_page()
cpdf_global_set_document_limits()
cpdf_import_jpeg()
cpdf_lineto()
cpdf_moveto()
cpdf_newpath()
cpdf_open()
cpdf_output_buffer()
cpdf_page_init()
cpdf_place_inline_image()
cpdf_rect()
cpdf_restore()
cpdf_rlineto()
cpdf_rmoveto()
cpdf_rotate()
cpdf_rotate_text()
cpdf_save()
cpdf_save_to_file()
cpdf_scale()
cpdf_set_action_url()
cpdf_set_char_spacing()
cpdf_set_creator()
cpdf_set_current_page()
cpdf_set_font()
cpdf_set_font_directories()
cpdf_set_font_map_file()
cpdf_set_horiz_scaling()
cpdf_set_keywords()
cpdf_set_leading()
cpdf_set_page_animation()
cpdf_set_subject()
cpdf_set_text_matrix()
cpdf_set_text_pos()
cpdf_set_text_rendering()
cpdf_set_text_rise()
cpdf_set_title()
cpdf_set_viewer_preferences()
cpdf_set_word_spacing()
cpdf_setdash()
cpdf_setflat()
cpdf_setgray()
cpdf_setgray_fill()
cpdf_setgray_stroke()
cpdf_setlinecap()
cpdf_setlinejoin()
cpdf_setlinewidth()
cpdf_setmiterlimit()
cpdf_setrgbcolor()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor_stroke()
cpdf_show()
cpdf_show_xy()
cpdf_stringwidth()
cpdf_stroke()
cpdf_text()
cpdf_translate()
crack_check()
crack_closedict()
crack_getlastmessage()
crack_opendict()
crc32()
create_function()
crypt()
ctype_alnum()
ctype_alpha()
ctype_cntrl()
ctype_digit()
ctype_graph()
ctype_lower()
ctype_print()
ctype_punct()
ctype_space()
ctype_upper()
ctype_xdigit()
curl_close()
curl_errno()
curl_error()
curl_exec()
curl_getinfo()
curl_init()
curl_multi_add_handle()
curl_multi_close()
curl_multi_exec()
curl_multi_getcontent()
curl_multi_info_read()
curl_multi_init()
curl_multi_remove_handle()
curl_multi_select()
curl_setopt()
curl_version()
current()
cybercash_base64_decode()
cybercash_base64_encode()
cybercash_decr()
cybercash_encr()
cyrus_authenticate()
cyrus_bind()
cyrus_close()
cyrus_connect()
cyrus_query()
cyrus_unbind()

D

date()
dba_close()
dba_delete()
dba_exists()
dba_fetch()
dba_firstkey()
dba_handlers()
dba_insert()
dba_key_split()
dba_list()
dba_nextkey()
dba_open()
dba_optimize()
dba_popen()
dba_replace()
dba_sync()
dbase_add_record()
dbase_close()
dbase_create()
dbase_delete_record()
dbase_get_header_info()
dbase_get_record()
dbase_get_record_with_names()
dbase_numfields()
dbase_numrecords()
dbase_open()
dbase_pack()
dbase_replace_record()
dblist()
dbmclose()
dbmdelete()
dbmexists()
dbmfetch()
dbmfirstkey()
dbminsert()
dbmnextkey()
dbmopen()
dbmreplace()
dbplus_add()
dbplus_aql()
dbplus_chdir()
dbplus_close()
dbplus_curr()
dbplus_errcode()
dbplus_errno()
dbplus_find()
dbplus_first()
dbplus_flush()
dbplus_freealllocks()
dbplus_freelock()
dbplus_freerlocks()
dbplus_getlock()
dbplus_getunique()
dbplus_info()
dbplus_last()
dbplus_lockrel()
dbplus_next()
dbplus_open()
dbplus_prev()
dbplus_rchperm()
dbplus_rcreate()
dbplus_rcrtexact()
dbplus_rcrtlike()
dbplus_resolve()
dbplus_restorepos()
dbplus_rkeys()
dbplus_ropen()
dbplus_rquery()
dbplus_rrename()
dbplus_rsecindex()
dbplus_runlink()
dbplus_rzap()
dbplus_savepos()
dbplus_setindex()
dbplus_setindexbynumber()
dbplus_sql()
dbplus_tcl()
dbplus_tremove()
dbplus_undo()
dbplus_undoprepare()
dbplus_unlockrel()
dbplus_unselect()
dbplus_update()
dbplus_xlockrel()
dbplus_xunlockrel()
dbx_close()
dbx_compare()
dbx_connect()
dbx_error()
dbx_escape_string()
dbx_fetch_row()
dbx_query()
dbx_sort()
dcgettext()
dcngettext()
deaggregate()
debug_backtrace()
debug_print_backtrace()
debugger_off()
debugger_on()
decbin()
dechex()
decoct()
define()
define_syslog_variables()
defined()
deg2rad()
delete()
dgettext()
die()
dio_close()
dio_fcntl()
dio_open()
dio_read()
dio_seek()
dio_stat()
dio_tcsetattr()
dio_truncate()
dio_write()
dir()
dirname()
disk_free_space()
disk_total_space()
diskfreespace()
dl()
dngettext()
dns_check_record()
dns_get_mx()
dns_get_record()
domattribute->name()
domattribute->specified()
domattribute->value()
domdocument->add_root [deprecated]()
domdocument->create_attribute()
domdocument->create_cdata_section()
domdocument->create_comment()
domdocument->create_element()
domdocument->create_element_ns()
domdocument->create_entity_reference()
domdocument->create_processing_instruction()
domdocument->create_text_node()
domdocument->doctype()
domdocument->document_element()
domdocument->dump_file()
domdocument->dump_mem()
domdocument->get_element_by_id()
domdocument->get_elements_by_tagname()
domdocument->html_dump_mem()
domdocument->xinclude()
domdocumenttype->entities()
domdocumenttype->internal_subset()
domdocumenttype->name()
domdocumenttype->notations()
domdocumenttype->public_id()
domdocumenttype->system_id()
domelement->get_attribute()
domelement->get_attribute_node()
domelement->get_elements_by_tagname()
domelement->has_attribute()
domelement->remove_attribute()
domelement->set_attribute()
domelement->tagname()
domnode->add_namespace()
domnode->append_child()
domnode->append_sibling()
domnode->attributes()
domnode->child_nodes()
domnode->clone_node()
domnode->dump_node()
domnode->first_child()
domnode->get_content()
domnode->has_attributes()
domnode->has_child_nodes()
domnode->insert_before()
domnode->is_blank_node()
domnode->last_child()
domnode->next_sibling()
domnode->node_name()
domnode->node_type()
domnode->node_value()
domnode->owner_document()
domnode->parent_node()
domnode->prefix()
domnode->previous_sibling()
domnode->remove_child()
domnode->replace_child()
domnode->replace_node()
domnode->set_content()
domnode->set_name()
domnode->set_namespace()
domnode->unlink_node()
domprocessinginstruction->data()
domprocessinginstruction->target()
domxml_new_doc()
domxml_open_file()
domxml_open_mem()
domxml_version()
domxml_xmltree()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()
domxml_xslt_stylesheet_file()
domxsltstylesheet->process()
domxsltstylesheet->result_dump_file()
domxsltstylesheet->result_dump_mem()
dotnet_load()
doubleval()

E

each()
easter_date()
easter_days()
ebcdic2ascii()
echo()
empty()
end()
ereg()
ereg_replace()
eregi()
eregi_replace()
error_log()
error_reporting()
escapeshellarg()
escapeshellcmd()
eval()
exec()
exif_imagetype()
exif_read_data()
exif_thumbnail()
exit()
exp()
explode()
expm1()
extension_loaded()
extract()
ezmlm_hash()

F

fam_cancel_monitor()
fam_close()
fam_monitor_collection()
fam_monitor_directory()
fam_monitor_file()
fam_next_event()
fam_open()
fam_pending()
fam_resume_monitor()
fam_suspend_monitor()
fbsql_affected_rows()
fbsql_autocommit()
fbsql_change_user()
fbsql_close()
fbsql_commit()
fbsql_connect()
fbsql_create_blob()
fbsql_create_clob()
fbsql_create_db()
fbsql_data_seek()
fbsql_database()
fbsql_database_password()
fbsql_db_query()
fbsql_db_status()
fbsql_drop_db()
fbsql_errno()
fbsql_error()
fbsql_fetch_array()
fbsql_fetch_assoc()
fbsql_fetch_field()
fbsql_fetch_lengths()
fbsql_fetch_object()
fbsql_fetch_row()
fbsql_field_flags()
fbsql_field_len()
fbsql_field_name()
fbsql_field_seek()
fbsql_field_table()
fbsql_field_type()
fbsql_free_result()
fbsql_get_autostart_info()
fbsql_hostname()
fbsql_insert_id()
fbsql_list_dbs()
fbsql_list_fields()
fbsql_list_tables()
fbsql_next_result()
fbsql_num_fields()
fbsql_num_rows()
fbsql_password()
fbsql_pconnect()
fbsql_query()
fbsql_read_blob()
fbsql_read_clob()
fbsql_result()
fbsql_rollback()
fbsql_select_db()
fbsql_set_lob_mode()
fbsql_set_transaction()
fbsql_start_db()
fbsql_stop_db()
fbsql_tablename()
fbsql_username()
fbsql_warnings()
fclose()
fdf_add_doc_javascript()
fdf_add_template()
fdf_close()
fdf_create()
fdf_enum_values()
fdf_errno()
fdf_error()
fdf_get_ap()
fdf_get_attachment()
fdf_get_encoding()
fdf_get_file()
fdf_get_flags()
fdf_get_opt()
fdf_get_status()
fdf_get_value()
fdf_get_version()
fdf_header()
fdf_next_field_name()
fdf_open()
fdf_open_string()
fdf_remove_item()
fdf_save()
fdf_save_string()
fdf_set_ap()
fdf_set_encoding()
fdf_set_file()
fdf_set_flags()
fdf_set_javascript_action()
fdf_set_opt()
fdf_set_status()
fdf_set_submit_form_action()
fdf_set_target_frame()
fdf_set_value()
fdf_set_version()
feof()
fflush()
fgetc()
fgetcsv()
fgets()
fgetss()
file()
file_exists()
file_get_contents()
file_put_contents()
fileatime()
filectime()
filegroup()
fileinode()
filemtime()
fileowner()
fileperms()
filepro()
filepro_fieldcount()
filepro_fieldname()
filepro_fieldtype()
filepro_fieldwidth()
filepro_retrieve()
filepro_rowcount()
filesize()
filetype()
floatval()
flock()
floor()
flush()
fmod()
fnmatch()
fopen()
fpassthru()
fprintf()
fputs()
fread()
frenchtojd()
fribidi_log2vis()
fscanf()
fseek()
fsockopen()
fstat()
ftell()
ftok()
ftp_alloc()
ftp_cdup()
ftp_chdir()
ftp_chmod()
ftp_close()
ftp_connect()
ftp_delete()
ftp_exec()
ftp_fget()
ftp_fput()
ftp_get()
ftp_get_option()
ftp_login()
ftp_mdtm()
ftp_mkdir()
ftp_nb_continue()
ftp_nb_fget()
ftp_nb_fput()
ftp_nb_get()
ftp_nb_put()
ftp_nlist()
ftp_pasv()
ftp_put()
ftp_pwd()
ftp_quit()
ftp_raw()
ftp_rawlist()
ftp_rename()
ftp_rmdir()
ftp_set_option()
ftp_site()
ftp_size()
ftp_ssl_connect()
ftp_systype()
ftruncate()
func_get_arg()
func_get_args()
func_num_args()
function_exists()
fwrite()

G

gd_info()
get_browser()
get_cfg_var()
get_class()
get_class_methods()
get_class_vars()
get_current_user()
get_declared_classes()
get_defined_constants()
get_defined_functions()
get_defined_vars()
get_extension_funcs()
get_html_translation_table()
get_include_path()
get_included_files()
get_loaded_extensions()
get_magic_quotes_gpc()
get_magic_quotes_runtime()
get_meta_tags()
get_object_vars()
get_parent_class()
get_required_files()
get_resource_type()
getallheaders()
getcwd()
getdate()
getenv()
gethostbyaddr()
gethostbyname()
gethostbynamel()
getimagesize()
getlastmod()
getmxrr()
getmygid()
getmyinode()
getmypid()
getmyuid()
getopt()
getprotobyname()
getprotobynumber()
getrandmax()
getrusage()
getservbyname()
getservbyport()
gettext()
gettimeofday()
gettype()
glob()
gmdate()
gmmktime()
gmp_abs()
gmp_add()
gmp_and()
gmp_clrbit()
gmp_cmp()
gmp_com()
gmp_div()
gmp_div_q()
gmp_div_qr()
gmp_div_r()
gmp_divexact()
gmp_fact()
gmp_gcd()
gmp_gcdext()
gmp_hamdist()
gmp_init()
gmp_intval()
gmp_invert()
gmp_jacobi()
gmp_legendre()
gmp_mod()
gmp_mul()
gmp_neg()
gmp_or()
gmp_perfect_square()
gmp_popcount()
gmp_pow()
gmp_powm()
gmp_prob_prime()
gmp_random()
gmp_scan0()
gmp_scan1()
gmp_setbit()
gmp_sign()
gmp_sqrt()
gmp_sqrtrem()
gmp_sqrtrm()
gmp_strval()
gmp_sub()
gmp_xor()
gmstrftime()
gregoriantojd()
gzclose()
gzcompress()
gzdeflate()
gzencode()
gzeof()
gzfile()
gzgetc()
gzgets()
gzgetss()
gzinflate()
gzopen()
gzpassthru()
gzputs()
gzread()
gzrewind()
gzseek()
gztell()
gzuncompress()
gzwrite()

H

header()
headers_list()
headers_sent()
hebrev()
hebrevc()
hexdec()
highlight_file()
highlight_string()
html_entity_decode()
htmlentities()
htmlspecialchars()
http_build_query()
hw_api->checkin()
hw_api->checkout()
hw_api->children()
hw_api->content()
hw_api->copy()
hw_api->dbstat()
hw_api->dcstat()
hw_api->dstanchors()
hw_api->dstofsrcanchors()
hw_api->find()
hw_api->ftstat()
hw_api->hwstat()
hw_api->identify()
hw_api->info()
hw_api->insert()
hw_api->insertanchor()
hw_api->insertcollection()
hw_api->insertdocument()
hw_api->link()
hw_api->lock()
hw_api->move()
hw_api->object()
hw_api->objectbyanchor()
hw_api->parents()
hw_api->remove()
hw_api->replace()
hw_api->setcommitedversion()
hw_api->srcanchors()
hw_api->srcsofdst()
hw_api->unlock()
hw_api->user()
hw_api->userlist()
hw_api_attribute()
hw_api_attribute->key()
hw_api_attribute->langdepvalue()
hw_api_attribute->value()
hw_api_attribute->values()
hw_api_content()
hw_api_content->mimetype()
hw_api_content->read()
hw_api_error->count()
hw_api_error->reason()
hw_api_object()
hw_api_object->assign()
hw_api_object->attreditable()
hw_api_object->count()
hw_api_object->insert()
hw_api_object->remove()
hw_api_object->title()
hw_api_object->value()
hw_api_reason->description()
hw_api_reason->type()
hw_array2objrec()
hw_changeobject()
hw_children()
hw_childrenobj()
hw_close()
hw_connect()
hw_connection_info()
hw_cp()
hw_deleteobject()
hw_docbyanchor()
hw_docbyanchorobj()
hw_document_attributes()
hw_document_bodytag()
hw_document_content()
hw_document_setcontent()
hw_document_size()
hw_dummy()
hw_edittext()
hw_error()
hw_errormsg()
hw_free_document()
hw_getanchors()
hw_getanchorsobj()
hw_getandlock()
hw_getchildcoll()
hw_getchildcollobj()
hw_getchilddoccoll()
hw_getchilddoccollobj()
hw_getobject()
hw_getobjectbyquery()
hw_getobjectbyquerycoll()
hw_getobjectbyquerycollobj()
hw_getobjectbyqueryobj()
hw_getparents()
hw_getparentsobj()
hw_getrellink()
hw_getremote()
hw_getremotechildren()
hw_getsrcbydestobj()
hw_gettext()
hw_getusername()
hw_identify()
hw_incollections()
hw_info()
hw_inscoll()
hw_insdoc()
hw_insertanchors()
hw_insertdocument()
hw_insertobject()
hw_mapid()
hw_modifyobject()
hw_mv()
hw_new_document()
hw_objrec2array()
hw_output_document()
hw_pconnect()
hw_pipedocument()
hw_root()
hw_setlinkroot()
hw_stat()
hw_unlock()
hw_who()
hwapi_hgcsp()
hypot()

I

ibase_add_user()
ibase_affected_rows()
ibase_blob_add()
ibase_blob_cancel()
ibase_blob_close()
ibase_blob_create()
ibase_blob_echo()
ibase_blob_get()
ibase_blob_import()
ibase_blob_info()
ibase_blob_open()
ibase_close()
ibase_commit()
ibase_commit_ret()
ibase_connect()
ibase_delete_user()
ibase_drop_db()
ibase_errcode()
ibase_errmsg()
ibase_execute()
ibase_fetch_assoc()
ibase_fetch_object()
ibase_fetch_row()
ibase_field_info()
ibase_free_event_handler()
ibase_free_query()
ibase_free_result()
ibase_gen_id()
ibase_modify_user()
ibase_name_result()
ibase_num_fields()
ibase_num_params()
ibase_param_info()
ibase_pconnect()
ibase_prepare()
ibase_query()
ibase_rollback()
ibase_rollback_ret()
ibase_set_event_handler()
ibase_timefmt()
ibase_trans()
ibase_wait_event()
iconv()
iconv_get_encoding()
iconv_mime_decode()
iconv_mime_decode_headers()
iconv_mime_encode()
iconv_set_encoding()
iconv_strlen()
iconv_strpos()
iconv_strrpos()
iconv_substr()
ifx_affected_rows()
ifx_blobinfile_mode()
ifx_byteasvarchar()
ifx_close()
ifx_connect()
ifx_copy_blob()
ifx_create_blob()
ifx_create_char()
ifx_do()
ifx_error()
ifx_errormsg()
ifx_fetch_row()
ifx_fieldproperties()
ifx_fieldtypes()
ifx_free_blob()
ifx_free_char()
ifx_free_result()
ifx_get_blob()
ifx_get_char()
ifx_getsqlca()
ifx_htmltbl_result()
ifx_nullformat()
ifx_num_fields()
ifx_num_rows()
ifx_pconnect()
ifx_prepare()
ifx_query()
ifx_textasvarchar()
ifx_update_blob()
ifx_update_char()
ifxus_close_slob()
ifxus_create_slob()
ifxus_free_slob()
ifxus_open_slob()
ifxus_read_slob()
ifxus_seek_slob()
ifxus_tell_slob()
ifxus_write_slob()
ignore_user_abort()
image2wbmp()
image_type_to_mime_type()
imagealphablending()
imageantialias()
imagearc()
imagechar()
imagecharup()
imagecolorallocate()
imagecolorallocatealpha()
imagecolorat()
imagecolorclosest()
imagecolorclosestalpha()
imagecolorclosesthwb()
imagecolordeallocate()
imagecolorexact()
imagecolorexactalpha()
imagecolormatch()
imagecolorresolve()
imagecolorresolvealpha()
imagecolorset()
imagecolorsforindex()
imagecolorstotal()
imagecolortransparent()
imagecopy()
imagecopymerge()
imagecopymergegray()
imagecopyresampled()
imagecopyresized()
imagecreate()
imagecreatefromgd()
imagecreatefromgd2()
imagecreatefromgd2part()
imagecreatefromgif()
imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromstring()
imagecreatefromwbmp()
imagecreatefromxbm()
imagecreatefromxpm()
imagecreatetruecolor()
imagedashedline()
imagedestroy()
imageellipse()
imagefill()
imagefilledarc()
imagefilledellipse()
imagefilledpolygon()
imagefilledrectangle()
imagefilltoborder()
imagefontheight()
imagefontwidth()
imageftbbox()
imagefttext()
imagegammacorrect()
imagegd()
imagegd2()
imagegif()
imageinterlace()
imageistruecolor()
imagejpeg()
imageline()
imageloadfont()
imagepalettecopy()
imagepng()
imagepolygon()
imagepsbbox()
imagepscopyfont()
imagepsencodefont()
imagepsextendfont()
imagepsfreefont()
imagepsloadfont()
imagepsslantfont()
imagepstext()
imagerectangle()
imagerotate()
imagesavealpha()
imagesetbrush()
imagesetpixel()
imagesetstyle()
imagesetthickness()
imagesettile()
imagestring()
imagestringup()
imagesx()
imagesy()
imagetruecolortopalette()
imagettfbbox()
imagettftext()
imagetypes()
imagewbmp()
imap_8bit()
imap_alerts()
imap_append()
imap_base64()
imap_binary()
imap_body()
imap_bodystruct()
imap_check()
imap_clearflag_full()
imap_close()
imap_createmailbox()
imap_delete()
imap_deletemailbox()
imap_errors()
imap_expunge()
imap_fetch_overview()
imap_fetchbody()
imap_fetchheader()
imap_fetchstructure()
imap_get_quota()
imap_get_quotaroot()
imap_getacl()
imap_getmailboxes()
imap_getsubscribed()
imap_header()
imap_headerinfo()
imap_headers()
imap_last_error()
imap_list()
imap_listmailbox()
imap_listscan()
imap_listsubscribed()
imap_lsub()
imap_mail()
imap_mail_compose()
imap_mail_copy()
imap_mail_move()
imap_mailboxmsginfo()
imap_mime_header_decode()
imap_msgno()
imap_num_msg()
imap_num_recent()
imap_open()
imap_ping()
imap_qprint()
imap_renamemailbox()
imap_reopen()
imap_rfc822_parse_adrlist()
imap_rfc822_parse_headers()
imap_rfc822_write_address()
imap_scanmailbox()
imap_search()
imap_set_quota()
imap_setacl()
imap_setflag_full()
imap_sort()
imap_status()
imap_subscribe()
imap_thread()
imap_timeout()
imap_uid()
imap_undelete()
imap_unsubscribe()
imap_utf7_decode()
imap_utf7_encode()
imap_utf8()
implode()
import_request_variables()
in_array()
ingres_autocommit()
ingres_close()
ingres_commit()
ingres_connect()
ingres_fetch_array()
ingres_fetch_object()
ingres_fetch_row()
ingres_field_length()
ingres_field_name()
ingres_field_nullable()
ingres_field_precision()
ingres_field_scale()
ingres_field_type()
ingres_num_fields()
ingres_num_rows()
ingres_pconnect()
ingres_query()
ingres_rollback()
ini_alter()
ini_get()
ini_get_all()
ini_restore()
ini_set()
intval()
ip2long()
iptcembed()
iptcparse()
ircg_channel_mode()
ircg_disconnect()
ircg_fetch_error_msg()
ircg_get_username()
ircg_html_encode()
ircg_ignore_add()
ircg_ignore_del()
ircg_is_conn_alive()
ircg_join()
ircg_kick()
ircg_lookup_format_messages()
ircg_msg()
ircg_nick()
ircg_nickname_escape()
ircg_nickname_unescape()
ircg_notice()
ircg_part()
ircg_pconnect()
ircg_register_format_messages()
ircg_set_current()
ircg_set_file()
ircg_set_on_die()
ircg_topic()
ircg_whois()
is_a()
is_array()
is_bool()
is_callable()
is_dir()
is_double()
is_executable()
is_file()
is_finite()
is_float()
is_infinite()
is_int()
is_integer()
is_link()
is_long()
is_nan()
is_null()
is_numeric()
is_object()
is_readable()
is_real()
is_resource()
is_scalar()
is_string()
is_subclass_of()
is_uploaded_file()
is_writable()
is_writeable()
isset()

J

java_last_exception_clear()
java_last_exception_get()
jddayofweek()
jdmonthname()
jdtofrench()
jdtogregorian()
jdtojewish()
jdtojulian()
jdtounix()
jewishtojd()
join()
jpeg2wbmp()
juliantojd()

K

key()
krsort()
ksort()

L

lcg_value()
ldap_8859_to_t61()
ldap_add()
ldap_bind()
ldap_close()
ldap_compare()
ldap_connect()
ldap_count_entries()
ldap_delete()
ldap_dn2ufn()
ldap_err2str()
ldap_errno()
ldap_error()
ldap_explode_dn()
ldap_first_attribute()
ldap_first_entry()
ldap_first_reference()
ldap_free_result()
ldap_get_attributes()
ldap_get_dn()
ldap_get_entries()
ldap_get_option()
ldap_get_values()
ldap_get_values_len()
ldap_list()
ldap_mod_add()
ldap_mod_del()
ldap_mod_replace()
ldap_modify()
ldap_next_attribute()
ldap_next_entry()
ldap_next_reference()
ldap_parse_reference()
ldap_parse_result()
ldap_read()
ldap_rename()
ldap_search()
ldap_set_option()
ldap_set_rebind_proc()
ldap_sort()
ldap_start_tls()
ldap_t61_to_8859()
ldap_unbind()
levenshtein()
link()
linkinfo()
list()
localeconv()
localtime()
log()
log10()
log1p()
long2ip()
lstat()
ltrim()
lzf_compress()
lzf_decompress()
lzf_optimized_for()

M

mail()
mailparse_determine_best_xfer_encoding()
mailparse_msg_create()
mailparse_msg_extract_part()
mailparse_msg_extract_part_file()
mailparse_msg_free()
mailparse_msg_get_part()
mailparse_msg_get_part_data()
mailparse_msg_get_structure()
mailparse_msg_parse()
mailparse_msg_parse_file()
mailparse_rfc822_parse_addresses()
mailparse_stream_encode()
mailparse_uudecode_all()
main()
max()
mb_convert_case()
mb_convert_encoding()
mb_convert_kana()
mb_convert_variables()
mb_decode_mimeheader()
mb_decode_numericentity()
mb_detect_encoding()
mb_detect_order()
mb_encode_mimeheader()
mb_encode_numericentity()
mb_ereg()
mb_ereg_match()
mb_ereg_replace()
mb_ereg_search()
mb_ereg_search_getpos()
mb_ereg_search_getregs()
mb_ereg_search_init()
mb_ereg_search_pos()
mb_ereg_search_regs()
mb_ereg_search_setpos()
mb_eregi()
mb_eregi_replace()
mb_get_info()
mb_http_input()
mb_http_output()
mb_internal_encoding()
mb_language()
mb_output_handler()
mb_parse_str()
mb_preferred_mime_name()
mb_regex_encoding()
mb_regex_set_options()
mb_send_mail()
mb_split()
mb_strcut()
mb_strimwidth()
mb_strlen()
mb_strpos()
mb_strrpos()
mb_strtolower()
mb_strtoupper()
mb_strwidth()
mb_substitute_character()
mb_substr()
mb_substr_count()
mcal_append_event()
mcal_close()
mcal_create_calendar()
mcal_date_compare()
mcal_date_valid()
mcal_day_of_week()
mcal_day_of_year()
mcal_days_in_month()
mcal_delete_calendar()
mcal_delete_event()
mcal_event_add_attribute()
mcal_event_init()
mcal_event_set_alarm()
mcal_event_set_category()
mcal_event_set_class()
mcal_event_set_description()
mcal_event_set_end()
mcal_event_set_recur_daily()
mcal_event_set_recur_monthly_mday()
mcal_event_set_recur_monthly_wday()
mcal_event_set_recur_none()
mcal_event_set_recur_weekly()
mcal_event_set_recur_yearly()
mcal_event_set_start()
mcal_event_set_title()
mcal_expunge()
mcal_fetch_current_stream_event()
mcal_fetch_event()
mcal_is_leap_year()
mcal_list_alarms()
mcal_list_events()
mcal_next_recurrence()
mcal_open()
mcal_popen()
mcal_rename_calendar()
mcal_reopen()
mcal_snooze()
mcal_store_event()
mcal_time_valid()
mcal_week_of_year()
mcrypt_cbc()
mcrypt_cfb()
mcrypt_create_iv()
mcrypt_decrypt()
mcrypt_ecb()
mcrypt_enc_get_algorithms_name()
mcrypt_enc_get_block_size()
mcrypt_enc_get_iv_size()
mcrypt_enc_get_key_size()
mcrypt_enc_get_modes_name()
mcrypt_enc_get_supported_key_sizes()
mcrypt_enc_is_block_algorithm()
mcrypt_enc_is_block_algorithm_mode()
mcrypt_enc_is_block_mode()
mcrypt_enc_self_test()
mcrypt_encrypt()
mcrypt_generic()
mcrypt_generic_deinit()
mcrypt_generic_end()
mcrypt_generic_init()
mcrypt_get_block_size()
mcrypt_get_cipher_name()
mcrypt_get_iv_size()
mcrypt_get_key_size()
mcrypt_list_algorithms()
mcrypt_list_modes()
mcrypt_module_close()
mcrypt_module_get_algo_block_size()
mcrypt_module_get_algo_key_size()
mcrypt_module_get_supported_key_sizes()
mcrypt_module_is_block_algorithm()
mcrypt_module_is_block_algorithm_mode()
mcrypt_module_is_block_mode()
mcrypt_module_open()
mcrypt_module_self_test()
mcrypt_ofb()
mcve_adduser()
mcve_adduserarg()
mcve_bt()
mcve_checkstatus()
mcve_chkpwd()
mcve_chngpwd()
mcve_completeauthorizations()
mcve_connect()
mcve_connectionerror()
mcve_deleteresponse()
mcve_deletetrans()
mcve_deleteusersetup()
mcve_deluser()
mcve_destroyconn()
mcve_destroyengine()
mcve_disableuser()
mcve_edituser()
mcve_enableuser()
mcve_force()
mcve_getcell()
mcve_getcellbynum()
mcve_getcommadelimited()
mcve_getheader()
mcve_getuserarg()
mcve_getuserparam()
mcve_gft()
mcve_gl()
mcve_gut()
mcve_initconn()
mcve_initengine()
mcve_initusersetup()
mcve_iscommadelimited()
mcve_liststats()
mcve_listusers()
mcve_maxconntimeout()
mcve_monitor()
mcve_numcolumns()
mcve_numrows()
mcve_override()
mcve_parsecommadelimited()
mcve_ping()
mcve_preauth()
mcve_preauthcompletion()
mcve_qc()
mcve_responseparam()
mcve_return()
mcve_returncode()
mcve_returnstatus()
mcve_sale()
mcve_setblocking()
mcve_setdropfile()
mcve_setip()
mcve_setssl()
mcve_setssl_files()
mcve_settimeout()
mcve_settle()
mcve_text_avs()
mcve_text_code()
mcve_text_cv()
mcve_transactionauth()
mcve_transactionavs()
mcve_transactionbatch()
mcve_transactioncv()
mcve_transactionid()
mcve_transactionitem()
mcve_transactionssent()
mcve_transactiontext()
mcve_transinqueue()
mcve_transnew()
mcve_transparam()
mcve_transsend()
mcve_ub()
mcve_uwait()
mcve_verifyconnection()
mcve_verifysslcert()
mcve_void()
md5()
md5_file()
mdecrypt_generic()
memory_get_usage()
metaphone()
method_exists()
mhash()
mhash_count()
mhash_get_block_size()
mhash_get_hash_name()
mhash_keygen_s2k()
microtime()
mime_content_type()
min()
ming_setcubicthreshold()
ming_setscale()
ming_useswfversion()
mkdir()
mktime()
money_format()
move_uploaded_file()
msession_connect()
msession_count()
msession_create()
msession_destroy()
msession_disconnect()
msession_find()
msession_get()
msession_get_array()
msession_getdata()
msession_inc()
msession_list()
msession_listvar()
msession_lock()
msession_plugin()
msession_randstr()
msession_set()
msession_set_array()
msession_setdata()
msession_timeout()
msession_uniq()
msession_unlock()
msg_get_queue()
msg_receive()
msg_remove_queue()
msg_send()
msg_set_queue()
msg_stat_queue()
msql()
msql_affected_rows()
msql_close()
msql_connect()
msql_create_db()
msql_createdb()
msql_data_seek()
msql_dbname()
msql_drop_db()
msql_dropdb()
msql_error()
msql_fetch_array()
msql_fetch_field()
msql_fetch_object()
msql_fetch_row()
msql_field_seek()
msql_fieldflags()
msql_fieldlen()
msql_fieldname()
msql_fieldtable()
msql_fieldtype()
msql_free_result()
msql_freeresult()
msql_list_dbs()
msql_list_fields()
msql_list_tables()
msql_listdbs()
msql_listfields()
msql_listtables()
msql_num_fields()
msql_num_rows()
msql_numfields()
msql_numrows()
msql_pconnect()
msql_query()
msql_regcase()
msql_result()
msql_select_db()
msql_selectdb()
msql_tablename()
mssql_bind()
mssql_close()
mssql_connect()
mssql_data_seek()
mssql_execute()
mssql_fetch_array()
mssql_fetch_assoc()
mssql_fetch_batch()
mssql_fetch_field()
mssql_fetch_object()
mssql_fetch_row()
mssql_field_length()
mssql_field_name()
mssql_field_seek()
mssql_field_type()
mssql_free_result()
mssql_free_statement()
mssql_get_last_message()
mssql_guid_string()
mssql_init()
mssql_min_error_severity()
mssql_min_message_severity()
mssql_next_result()
mssql_num_fields()
mssql_num_rows()
mssql_pconnect()
mssql_query()
mssql_result()
mssql_rows_affected()
mssql_select_db()
mt_getrandmax()
mt_rand()
mt_srand()
muscat_close()
muscat_get()
muscat_give()
muscat_setup()
muscat_setup_net()
mysql_affected_rows()
mysql_change_user()
mysql_client_encoding()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_db_name()
mysql_db_query()
mysql_drop_db()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_field()
mysql_fetch_lengths()
mysql_fetch_object()
mysql_fetch_row()
mysql_field_flags()
mysql_field_len()
mysql_field_name()
mysql_field_seek()
mysql_field_table()
mysql_field_type()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_insert_id()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_pconnect()
mysql_ping()
mysql_query()
mysql_real_escape_string()
mysql_result()
mysql_select_db()
mysql_stat()
mysql_tablename()
mysql_thread_id()
mysql_unbuffered_query()
mysqli_affected_rows()
mysqli_autocommit()
mysqli_bind_param()
mysqli_bind_result()
mysqli_change_user()
mysqli_character_set_name()
mysqli_close()
mysqli_commit()
mysqli_connect()
mysqli_data_seek()
mysqli_debug()
mysqli_disable_reads_from_master()
mysqli_disable_rpl_parse()
mysqli_dump_debug_info()
mysqli_enable_reads_from_master()
mysqli_enable_rpl_parse()
mysqli_errno()
mysqli_error()
mysqli_execute()
mysqli_fetch()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_field()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_fetch_lengths()
mysqli_fetch_object()
mysqli_fetch_row()
mysqli_field_count()
mysqli_field_seek()
mysqli_field_tell()
mysqli_free_result()
mysqli_get_client_info()
mysqli_get_host_info()
mysqli_get_proto_info()
mysqli_get_server_info()
mysqli_get_server_version()
mysqli_info()
mysqli_init()
mysqli_insert_id()
mysqli_kill()
mysqli_master_query()
mysqli_num_fields()
mysqli_num_rows()
mysqli_options()
mysqli_param_count()
mysqli_ping()
mysqli_prepare()
mysqli_prepare_result()
mysqli_profiler()
mysqli_query()
mysqli_read_query_result()
mysqli_real_connect()
mysqli_real_escape_string()
mysqli_real_query()
mysqli_reload()
mysqli_rollback()
mysqli_rpl_parse_enabled()
mysqli_rpl_probe()
mysqli_rpl_query_type()
mysqli_select_db()
mysqli_send_long_data()
mysqli_send_query()
mysqli_slave_query()
mysqli_ssl_set()
mysqli_stat()
mysqli_stmt_affected_rows()
mysqli_stmt_close()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_thread_id()
mysqli_thread_safe()
mysqli_use_result()
mysqli_warning_count()

N

natcasesort()
natsort()
ncurses_addch()
ncurses_addchnstr()
ncurses_addchstr()
ncurses_addnstr()
ncurses_addstr()
ncurses_assume_default_colors()
ncurses_attroff()
ncurses_attron()
ncurses_attrset()
ncurses_baudrate()
ncurses_beep()
ncurses_bkgd()
ncurses_bkgdset()
ncurses_border()
ncurses_bottom_panel()
ncurses_can_change_color()
ncurses_cbreak()
ncurses_clear()
ncurses_clrtobot()
ncurses_clrtoeol()
ncurses_color_content()
ncurses_color_set()
ncurses_curs_set()
ncurses_def_prog_mode()
ncurses_def_shell_mode()
ncurses_define_key()
ncurses_del_panel()
ncurses_delay_output()
ncurses_delch()
ncurses_deleteln()
ncurses_delwin()
ncurses_doupdate()
ncurses_echo()
ncurses_echochar()
ncurses_end()
ncurses_erase()
ncurses_erasechar()
ncurses_filter()
ncurses_flash()
ncurses_flushinp()
ncurses_getch()
ncurses_getmaxyx()
ncurses_getmouse()
ncurses_getyx()
ncurses_halfdelay()
ncurses_has_colors()
ncurses_has_ic()
ncurses_has_il()
ncurses_has_key()
ncurses_hide_panel()
ncurses_hline()
ncurses_inch()
ncurses_init()
ncurses_init_color()
ncurses_init_pair()
ncurses_insch()
ncurses_insdelln()
ncurses_insertln()
ncurses_insstr()
ncurses_instr()
ncurses_isendwin()
ncurses_keyok()
ncurses_keypad()
ncurses_killchar()
ncurses_longname()
ncurses_meta()
ncurses_mouse_trafo()
ncurses_mouseinterval()
ncurses_mousemask()
ncurses_move()
ncurses_move_panel()
ncurses_mvaddch()
ncurses_mvaddchnstr()
ncurses_mvaddchstr()
ncurses_mvaddnstr()
ncurses_mvaddstr()
ncurses_mvcur()
ncurses_mvdelch()
ncurses_mvgetch()
ncurses_mvhline()
ncurses_mvinch()
ncurses_mvvline()
ncurses_mvwaddstr()
ncurses_napms()
ncurses_new_panel()
ncurses_newpad()
ncurses_newwin()
ncurses_nl()
ncurses_nocbreak()
ncurses_noecho()
ncurses_nonl()
ncurses_noqiflush()
ncurses_noraw()
ncurses_pair_content()
ncurses_panel_above()
ncurses_panel_below()
ncurses_panel_window()
ncurses_pnoutrefresh()
ncurses_prefresh()
ncurses_putp()
ncurses_qiflush()
ncurses_raw()
ncurses_refresh()
ncurses_replace_panel()
ncurses_reset_prog_mode()
ncurses_reset_shell_mode()
ncurses_resetty()
ncurses_savetty()
ncurses_scr_dump()
ncurses_scr_init()
ncurses_scr_restore()
ncurses_scr_set()
ncurses_scrl()
ncurses_show_panel()
ncurses_slk_attr()
ncurses_slk_attroff()
ncurses_slk_attron()
ncurses_slk_attrset()
ncurses_slk_clear()
ncurses_slk_color()
ncurses_slk_init()
ncurses_slk_noutrefresh()
ncurses_slk_refresh()
ncurses_slk_restore()
ncurses_slk_set()
ncurses_slk_touch()
ncurses_standend()
ncurses_standout()
ncurses_start_color()
ncurses_termattrs()
ncurses_termname()
ncurses_timeout()
ncurses_top_panel()
ncurses_typeahead()
ncurses_ungetch()
ncurses_ungetmouse()
ncurses_update_panels()
ncurses_use_default_colors()
ncurses_use_env()
ncurses_use_extended_names()
ncurses_vidattr()
ncurses_vline()
ncurses_waddch()
ncurses_waddstr()
ncurses_wattroff()
ncurses_wattron()
ncurses_wattrset()
ncurses_wborder()
ncurses_wclear()
ncurses_wcolor_set()
ncurses_werase()
ncurses_wgetch()
ncurses_whline()
ncurses_wmouse_trafo()
ncurses_wmove()
ncurses_wnoutrefresh()
ncurses_wrefresh()
ncurses_wstandend()
ncurses_wstandout()
ncurses_wvline()
next()
ngettext()
nl2br()
nl_langinfo()
notes_body()
notes_copy_db()
notes_create_db()
notes_create_note()
notes_drop_db()
notes_find_note()
notes_header_info()
notes_list_msgs()
notes_mark_read()
notes_mark_unread()
notes_nav_create()
notes_search()
notes_unread()
notes_version()
nsapi_request_headers()
nsapi_response_headers()
nsapi_virtual()
number_format()

O

ob_clean()
ob_end_clean()
ob_end_flush()
ob_flush()
ob_get_clean()
ob_get_contents()
ob_get_flush()
ob_get_length()
ob_get_level()
ob_get_status()
ob_gzhandler()
ob_iconv_handler()
ob_implicit_flush()
ob_list_handlers()
ob_start()
ob_tidyhandler()
ocibindbyname()
ocicancel()
ocicloselob()
ocicollappend()
ocicollassign()
ocicollassignelem()
ocicollgetelem()
ocicollmax()
ocicollsize()
ocicolltrim()
ocicolumnisnull()
ocicolumnname()
ocicolumnprecision()
ocicolumnscale()
ocicolumnsize()
ocicolumntype()
ocicolumntyperaw()
ocicommit()
ocidefinebyname()
ocierror()
ociexecute()
ocifetch()
ocifetchinto()
ocifetchstatement()
ocifreecollection()
ocifreecursor()
ocifreedesc()
ocifreestatement()
ociinternaldebug()
ociloadlob()
ocilogoff()
ocilogon()
ocinewcollection()
ocinewcursor()
ocinewdescriptor()
ocinlogon()
ocinumcols()
ociparse()
ociplogon()
ociresult()
ocirollback()
ocirowcount()
ocisavelob()
ocisavelobfile()
ociserverversion()
ocisetprefetch()
ocistatementtype()
ociwritelobtofile()
ociwritetemporarylob()
octdec()
odbc_autocommit()
odbc_binmode()
odbc_close()
odbc_close_all()
odbc_columnprivileges()
odbc_columns()
odbc_commit()
odbc_connect()
odbc_cursor()
odbc_data_source()
odbc_do()
odbc_error()
odbc_errormsg()
odbc_exec()
odbc_execute()
odbc_fetch_array()
odbc_fetch_into()
odbc_fetch_object()
odbc_fetch_row()
odbc_field_len()
odbc_field_name()
odbc_field_num()
odbc_field_precision()
odbc_field_scale()
odbc_field_type()
odbc_foreignkeys()
odbc_free_result()
odbc_gettypeinfo()
odbc_longreadlen()
odbc_next_result()
odbc_num_fields()
odbc_num_rows()
odbc_pconnect()
odbc_prepare()
odbc_primarykeys()
odbc_procedurecolumns()
odbc_procedures()
odbc_result()
odbc_result_all()
odbc_rollback()
odbc_setoption()
odbc_specialcolumns()
odbc_statistics()
odbc_tableprivileges()
odbc_tables()
opendir()
openlog()
openssl_csr_export()
openssl_csr_export_to_file()
openssl_csr_new()
openssl_csr_sign()
openssl_error_string()
openssl_free_key()
openssl_get_privatekey()
openssl_get_publickey()
openssl_open()
openssl_pkcs7_decrypt()
openssl_pkcs7_encrypt()
openssl_pkcs7_sign()
openssl_pkcs7_verify()
openssl_pkey_export()
openssl_pkey_export_to_file()
openssl_pkey_get_private()
openssl_pkey_get_public()
openssl_pkey_new()
openssl_private_decrypt()
openssl_private_encrypt()
openssl_public_decrypt()
openssl_public_encrypt()
openssl_seal()
openssl_sign()
openssl_verify()
openssl_x509_check_private_key()
openssl_x509_checkpurpose()
openssl_x509_export()
openssl_x509_export_to_file()
openssl_x509_free()
openssl_x509_parse()
openssl_x509_read()
ora_bind()
ora_close()
ora_columnname()
ora_columnsize()
ora_columntype()
ora_commit()
ora_commitoff()
ora_commiton()
ora_do()
ora_error()
ora_errorcode()
ora_exec()
ora_fetch()
ora_fetch_into()
ora_getcolumn()
ora_logoff()
ora_logon()
ora_numcols()
ora_numrows()
ora_open()
ora_parse()
ora_plogon()
ora_rollback()
ord()
output_add_rewrite_var()
output_reset_rewrite_vars()
overload()
ovrimos_close()
ovrimos_commit()
ovrimos_connect()
ovrimos_cursor()
ovrimos_exec()
ovrimos_execute()
ovrimos_fetch_into()
ovrimos_fetch_row()
ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_num()
ovrimos_field_type()
ovrimos_free_result()
ovrimos_longreadlen()
ovrimos_num_fields()
ovrimos_num_rows()
ovrimos_prepare()
ovrimos_result()
ovrimos_result_all()
ovrimos_rollback()

P

pack()
parse_ini_file()
parse_str()
parse_url()
passthru()
pathinfo()
pattern modifiers()
pattern syntax()
pclose()
pcntl_exec()
pcntl_fork()
pcntl_signal()
pcntl_waitpid()
pcntl_wexitstatus()
pcntl_wifexited()
pcntl_wifsignaled()
pcntl_wifstopped()
pcntl_wstopsig()
pcntl_wtermsig()
pdf_add_annotation()
pdf_add_bookmark()
pdf_add_launchlink()
pdf_add_locallink()
pdf_add_note()
pdf_add_outline()
pdf_add_pdflink()
pdf_add_thumbnail()
pdf_add_weblink()
pdf_arc()
pdf_arcn()
pdf_attach_file()
pdf_begin_page()
pdf_begin_pattern()
pdf_begin_template()
pdf_circle()
pdf_clip()
pdf_close()
pdf_close_image()
pdf_close_pdi()
pdf_close_pdi_page()
pdf_closepath()
pdf_closepath_fill_stroke()
pdf_closepath_stroke()
pdf_concat()
pdf_continue_text()
pdf_curveto()
pdf_delete()
pdf_end_page()
pdf_end_pattern()
pdf_end_template()
pdf_endpath()
pdf_fill()
pdf_fill_stroke()
pdf_findfont()
pdf_get_buffer()
pdf_get_font()
pdf_get_fontname()
pdf_get_fontsize()
pdf_get_image_height()
pdf_get_image_width()
pdf_get_majorversion()
pdf_get_minorversion()
pdf_get_parameter()
pdf_get_pdi_parameter()
pdf_get_pdi_value()
pdf_get_value()
pdf_initgraphics()
pdf_lineto()
pdf_makespotcolor()
pdf_moveto()
pdf_new()
pdf_open()
pdf_open_ccitt()
pdf_open_file()
pdf_open_gif()
pdf_open_image()
pdf_open_image_file()
pdf_open_jpeg()
pdf_open_memory_image()
pdf_open_pdi()
pdf_open_pdi_page()
pdf_open_png()
pdf_open_tiff()
pdf_place_image()
pdf_place_pdi_page()
pdf_rect()
pdf_restore()
pdf_rotate()
pdf_save()
pdf_scale()
pdf_set_border_color()
pdf_set_border_dash()
pdf_set_border_style()
pdf_set_char_spacing()
pdf_set_duration()
pdf_set_font()
pdf_set_horiz_scaling()
pdf_set_info()
pdf_set_info_author()
pdf_set_info_creator()
pdf_set_info_keywords()
pdf_set_info_subject()
pdf_set_info_title()
pdf_set_leading()
pdf_set_parameter()
pdf_set_text_matrix()
pdf_set_text_pos()
pdf_set_text_rendering()
pdf_set_text_rise()
pdf_set_value()
pdf_set_word_spacing()
pdf_setcolor()
pdf_setdash()
pdf_setflat()
pdf_setfont()
pdf_setgray()
pdf_setgray_fill()
pdf_setgray_stroke()
pdf_setlinecap()
pdf_setlinejoin()
pdf_setlinewidth()
pdf_setmatrix()
pdf_setmiterlimit()
pdf_setpolydash()
pdf_setrgbcolor()
pdf_setrgbcolor_fill()
pdf_setrgbcolor_stroke()
pdf_show()
pdf_show_boxed()
pdf_show_xy()
pdf_skew()
pdf_stringwidth()
pdf_stroke()
pdf_translate()
pfpro_cleanup()
pfpro_init()
pfpro_process()
pfpro_process_raw()
pfpro_version()
pfsockopen()
pg_affected_rows()
pg_cancel_query()
pg_client_encoding()
pg_close()
pg_connect()
pg_connection_busy()
pg_connection_reset()
pg_connection_status()
pg_convert()
pg_copy_from()
pg_copy_to()
pg_dbname()
pg_delete()
pg_end_copy()
pg_escape_bytea()
pg_escape_string()
pg_fetch_all()
pg_fetch_array()
pg_fetch_assoc()
pg_fetch_object()
pg_fetch_result()
pg_fetch_row()
pg_field_is_null()
pg_field_name()
pg_field_num()
pg_field_prtlen()
pg_field_size()
pg_field_type()
pg_free_result()
pg_get_notify()
pg_get_pid()
pg_get_result()
pg_host()
pg_insert()
pg_last_error()
pg_last_notice()
pg_last_oid()
pg_lo_close()
pg_lo_create()
pg_lo_export()
pg_lo_import()
pg_lo_open()
pg_lo_read()
pg_lo_read_all()
pg_lo_seek()
pg_lo_tell()
pg_lo_unlink()
pg_lo_write()
pg_meta_data()
pg_num_fields()
pg_num_rows()
pg_options()
pg_pconnect()
pg_ping()
pg_port()
pg_put_line()
pg_query()
pg_result_error()
pg_result_seek()
pg_result_status()
pg_select()
pg_send_query()
pg_set_client_encoding()
pg_trace()
pg_tty()
pg_unescape_bytea()
pg_untrace()
pg_update()
php_ini_scanned_files()
php_logo_guid()
php_sapi_name()
php_uname()
phpcredits()
phpinfo()
phpversion()
pi()
png2wbmp()
popen()
pos()
posix_ctermid()
posix_get_last_error()
posix_getcwd()
posix_getegid()
posix_geteuid()
posix_getgid()
posix_getgrgid()
posix_getgrnam()
posix_getgroups()
posix_getlogin()
posix_getpgid()
posix_getpgrp()
posix_getpid()
posix_getppid()
posix_getpwnam()
posix_getpwuid()
posix_getrlimit()
posix_getsid()
posix_getuid()
posix_isatty()
posix_kill()
posix_mkfifo()
posix_setegid()
posix_seteuid()
posix_setgid()
posix_setpgid()
posix_setsid()
posix_setuid()
posix_strerror()
posix_times()
posix_ttyname()
posix_uname()
pow()
preg_grep()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()
prev()
print()
print_r()
printer_abort()
printer_close()
printer_create_brush()
printer_create_dc()
printer_create_font()
printer_create_pen()
printer_delete_brush()
printer_delete_dc()
printer_delete_font()
printer_delete_pen()
printer_draw_bmp()
printer_draw_chord()
printer_draw_elipse()
printer_draw_line()
printer_draw_pie()
printer_draw_rectangle()
printer_draw_roundrect()
printer_draw_text()
printer_end_doc()
printer_end_page()
printer_get_option()
printer_list()
printer_logical_fontheight()
printer_open()
printer_select_brush()
printer_select_font()
printer_select_pen()
printer_set_option()
printer_start_doc()
printer_start_page()
printer_write()
printf()
proc_close()
proc_get_status()
proc_nice()
proc_open()
proc_terminate()
pspell_add_to_personal()
pspell_add_to_session()
pspell_check()
pspell_clear_session()
pspell_config_create()
pspell_config_ignore()
pspell_config_mode()
pspell_config_personal()
pspell_config_repl()
pspell_config_runtogether()
pspell_config_save_repl()
pspell_new()
pspell_new_config()
pspell_new_personal()
pspell_save_wordlist()
pspell_store_replacement()
pspell_suggest()
putenv()

Q

qdom_error()
qdom_tree()
quoted_printable_decode()
quotemeta()

R

rad2deg()
rand()
range()
rawurldecode()
rawurlencode()
read_exif_data()
readdir()
readfile()
readgzfile()
readline()
readline_add_history()
readline_clear_history()
readline_completion_function()
readline_info()
readline_list_history()
readline_read_history()
readline_write_history()
readlink()
realpath()
recode()
recode_file()
recode_string()
register_shutdown_function()
register_tick_function()
rename()
reset()
restore_error_handler()
restore_include_path()
rewind()
rewinddir()
rmdir()
round()
rsort()
rtrim()

S

scandir()
sem_acquire()
sem_get()
sem_release()
sem_remove()
serialize()
sesam_affected_rows()
sesam_commit()
sesam_connect()
sesam_diagnostic()
sesam_disconnect()
sesam_errormsg()
sesam_execimm()
sesam_fetch_array()
sesam_fetch_result()
sesam_fetch_row()
sesam_field_array()
sesam_field_name()
sesam_free_result()
sesam_num_fields()
sesam_query()
sesam_rollback()
sesam_seek_row()
sesam_settransaction()
session_cache_expire()
session_cache_limiter()
session_decode()
session_destroy()
session_encode()
session_get_cookie_params()
session_id()
session_is_registered()
session_module_name()
session_name()
session_regenerate_id()
session_register()
session_save_path()
session_set_cookie_params()
session_set_save_handler()
session_start()
session_unregister()
session_unset()
session_write_close()
set_error_handler()
set_file_buffer()
set_include_path()
set_magic_quotes_runtime()
set_time_limit()
setcookie()
setlocale()
settype()
sha1()
sha1_file()
shell_exec()
shm_attach()
shm_detach()
shm_get_var()
shm_put_var()
shm_remove()
shm_remove_var()
shmop_close()
shmop_delete()
shmop_open()
shmop_read()
shmop_size()
shmop_write()
show_source()
shuffle()
similar_text()
simplexml_element->asxml()
simplexml_element->attributes()
simplexml_element->children()
simplexml_element->xpath()
simplexml_load_dom()
simplexml_load_file()
simplexml_load_string()
sin()
sinh()
sizeof()
sleep()
snmp_get_quick_print()
snmp_set_quick_print()
snmpget()
snmprealwalk()
snmpset()
snmpwalk()
snmpwalkoid()
socket_accept()
socket_bind()
socket_clear_error()
socket_close()
socket_connect()
socket_create()
socket_create_listen()
socket_create_pair()
socket_get_option()
socket_get_status()
socket_getpeername()
socket_getsockname()
socket_iovec_add()
socket_iovec_alloc()
socket_iovec_delete()
socket_iovec_fetch()
socket_iovec_free()
socket_iovec_set()
socket_last_error()
socket_listen()
socket_read()
socket_readv()
socket_recv()
socket_recvfrom()
socket_recvmsg()
socket_select()
socket_send()
socket_sendmsg()
socket_sendto()
socket_set_block()
socket_set_blocking()
socket_set_nonblock()
socket_set_option()
socket_set_timeout()
socket_shutdown()
socket_strerror()
socket_write()
socket_writev()
sort()
soundex()
split()
spliti()
sprintf()
sql_regcase()
sqlite_array_query()
sqlite_busy_timeout()
sqlite_changes()
sqlite_close()
sqlite_column()
sqlite_create_aggregate()
sqlite_create_function()
sqlite_current()
sqlite_error_string()
sqlite_escape_string()
sqlite_fetch_array()
sqlite_fetch_single()
sqlite_fetch_string()
sqlite_field_name()
sqlite_has_more()
sqlite_last_error()
sqlite_last_insert_rowid()
sqlite_libencoding()
sqlite_libversion()
sqlite_next()
sqlite_num_fields()
sqlite_num_rows()
sqlite_open()
sqlite_popen()
sqlite_query()
sqlite_rewind()
sqlite_seek()
sqlite_udf_decode_binary()
sqlite_udf_encode_binary()
sqlite_unbuffered_query()
sqrt()
srand()
sscanf()
stat()
str_ireplace()
str_pad()
str_repeat()
str_replace()
str_rot13()
str_shuffle()
str_split()
str_word_count()
strcasecmp()
strchr()
strcmp()
strcoll()
strcspn()
stream_context_create()
stream_context_get_options()
stream_context_set_option()
stream_context_set_params()
stream_copy_to_stream()
stream_filter_append()
stream_filter_prepend()
stream_filter_register()
stream_get_contents()
stream_get_filters()
stream_get_line()
stream_get_meta_data()
stream_get_transports()
stream_get_wrappers()
stream_register_wrapper()
stream_select()
stream_set_blocking()
stream_set_timeout()
stream_set_write_buffer()
stream_socket_accept()
stream_socket_client()
stream_socket_get_name()
stream_socket_recvfrom()
stream_socket_sendto()
stream_socket_server()
stream_wrapper_register()
strftime()
strip_tags()
stripcslashes()
stripos()
stripslashes()
stristr()
strlen()
strnatcasecmp()
strnatcmp()
strncasecmp()
strncmp()
strpos()
strrchr()
strrev()
strripos()
strrpos()
strspn()
strstr()
strtok()
strtolower()
strtotime()
strtoupper()
strtr()
strval()
substr()
substr_compare()
substr_count()
substr_replace()
swf_actiongeturl()
swf_actiongotoframe()
swf_actiongotolabel()
swf_actionnextframe()
swf_actionplay()
swf_actionprevframe()
swf_actionsettarget()
swf_actionstop()
swf_actiontogglequality()
swf_actionwaitforframe()
swf_addbuttonrecord()
swf_addcolor()
swf_closefile()
swf_definebitmap()
swf_definefont()
swf_defineline()
swf_definepoly()
swf_definerect()
swf_definetext()
swf_endbutton()
swf_enddoaction()
swf_endshape()
swf_endsymbol()
swf_fontsize()
swf_fontslant()
swf_fonttracking()
swf_getbitmapinfo()
swf_getfontinfo()
swf_getframe()
swf_labelframe()
swf_lookat()
swf_modifyobject()
swf_mulcolor()
swf_nextid()
swf_oncondition()
swf_openfile()
swf_ortho()
swf_ortho2()
swf_perspective()
swf_placeobject()
swf_polarview()
swf_popmatrix()
swf_posround()
swf_pushmatrix()
swf_removeobject()
swf_rotate()
swf_scale()
swf_setfont()
swf_setframe()
swf_shapearc()
swf_shapecurveto()
swf_shapecurveto3()
swf_shapefillbitmapclip()
swf_shapefillbitmaptile()
swf_shapefilloff()
swf_shapefillsolid()
swf_shapelinesolid()
swf_shapelineto()
swf_shapemoveto()
swf_showframe()
swf_startbutton()
swf_startdoaction()
swf_startshape()
swf_startsymbol()
swf_textwidth()
swf_translate()
swf_viewport()
swfaction()
swfbitmap()
swfbitmap->getheight()
swfbitmap->getwidth()
swfbutton()
swfbutton->addaction()
swfbutton->addshape()
swfbutton->setaction()
swfbutton->setdown()
swfbutton->sethit()
swfbutton->setover()
swfbutton->setup()
swfbutton_keypress()
swfdisplayitem()
swfdisplayitem->addcolor()
swfdisplayitem->move()
swfdisplayitem->moveto()
swfdisplayitem->multcolor()
swfdisplayitem->remove()
swfdisplayitem->rotate()
swfdisplayitem->rotateto()
swfdisplayitem->scale()
swfdisplayitem->scaleto()
swfdisplayitem->setdepth()
swfdisplayitem->setname()
swfdisplayitem->setratio()
swfdisplayitem->skewx()
swfdisplayitem->skewxto()
swfdisplayitem->skewy()
swfdisplayitem->skewyto()
swffill()
swffill->moveto()
swffill->rotateto()
swffill->scaleto()
swffill->skewxto()
swffill->skewyto()
swffont()
swffont->getwidth()
swfgradient()
swfgradient->addentry()
swfmorph()
swfmorph->getshape1()
swfmorph->getshape2()
swfmovie()
swfmovie->add()
swfmovie->nextframe()
swfmovie->output()
swfmovie->remove()
swfmovie->save()
swfmovie->setbackground()
swfmovie->setdimension()
swfmovie->setframes()
swfmovie->setrate()
swfmovie->streammp3()
swfshape()
swfshape->addfill()
swfshape->drawcurve()
swfshape->drawcurveto()
swfshape->drawline()
swfshape->drawlineto()
swfshape->movepen()
swfshape->movepento()
swfshape->setleftfill()
swfshape->setline()
swfshape->setrightfill()
swfsprite()
swfsprite->add()
swfsprite->nextframe()
swfsprite->remove()
swfsprite->setframes()
swftext()
swftext->addstring()
swftext->getwidth()
swftext->moveto()
swftext->setcolor()
swftext->setfont()
swftext->setheight()
swftext->setspacing()
swftextfield()
swftextfield->addstring()
swftextfield->align()
swftextfield->setbounds()
swftextfield->setcolor()
swftextfield->setfont()
swftextfield->setheight()
swftextfield->setindentation()
swftextfield->setleftmargin()
swftextfield->setlinespacing()
swftextfield->setmargins()
swftextfield->setname()
swftextfield->setrightmargin()
sybase_affected_rows()
sybase_close()
sybase_connect()
sybase_data_seek()
sybase_deadlock_retry_count()
sybase_fetch_array()
sybase_fetch_assoc()
sybase_fetch_field()
sybase_fetch_object()
sybase_fetch_row()
sybase_field_seek()
sybase_free_result()
sybase_get_last_message()
sybase_min_client_severity()
sybase_min_error_severity()
sybase_min_message_severity()
sybase_min_server_severity()
sybase_num_fields()
sybase_num_rows()
sybase_pconnect()
sybase_query()
sybase_result()
sybase_select_db()
sybase_set_message_handler()
sybase_unbuffered_query()
symlink()
syslog()
system()

T

tan()
tanh()
tempnam()
textdomain()
tidy_access_count()
tidy_clean_repair()
tidy_config_count()
tidy_diagnose()
tidy_error_count()
tidy_get_body()
tidy_get_config()
tidy_get_error_buffer()
tidy_get_head()
tidy_get_html()
tidy_get_html_ver()
tidy_get_output()
tidy_get_release()
tidy_get_root()
tidy_get_status()
tidy_getopt()
tidy_is_xhtml()
tidy_load_config()
tidy_node->attributes()
tidy_node->children()
tidy_node->get_attr()
tidy_node->get_nodes()
tidy_node->has_children()
tidy_node->has_siblings()
tidy_node->is_asp()
tidy_node->is_comment()
tidy_node->is_html()
tidy_node->is_jsp()
tidy_node->is_jste()
tidy_node->is_text()
tidy_node->is_xhtml()
tidy_node->is_xml()
tidy_node->next()
tidy_node->prev()
tidy_node->tidy_node()
tidy_parse_file()
tidy_parse_string()
tidy_repair_file()
tidy_repair_string()
tidy_reset_config()
tidy_save_config()
tidy_set_encoding()
tidy_setopt()
tidy_warning_count()
time()
tmpfile()
token_get_all()
token_name()
touch()
trigger_error()
trim()

U

uasort()
ucfirst()
ucwords()
udm_add_search_limit()
udm_alloc_agent()
udm_api_version()
udm_cat_list()
udm_cat_path()
udm_check_charset()
udm_check_stored()
udm_clear_search_limits()
udm_close_stored()
udm_crc32()
udm_errno()
udm_error()
udm_find()
udm_free_agent()
udm_free_ispell_data()
udm_free_res()
udm_get_doc_count()
udm_get_res_field()
udm_get_res_param()
udm_load_ispell_data()
udm_open_stored()
udm_set_agent_param()
uksort()
umask()
uniqid()
unixtojd()
unlink()
unpack()
unregister_tick_function()
unserialize()
unset()
urldecode()
urlencode()
user_error()
usleep()
usort()
utf8_decode()
utf8_encode()

V

var_dump()
var_export()
variant()
version_compare()
virtual()
vpopmail_add_alias_domain()
vpopmail_add_alias_domain_ex()
vpopmail_add_domain()
vpopmail_add_domain_ex()
vpopmail_add_user()
vpopmail_alias_add()
vpopmail_alias_del()
vpopmail_alias_del_domain()
vpopmail_alias_get()
vpopmail_alias_get_all()
vpopmail_auth_user()
vpopmail_del_domain()
vpopmail_del_domain_ex()
vpopmail_del_user()
vpopmail_error()
vpopmail_passwd()
vpopmail_set_user_quota()
vprintf()
vsprintf()

W

w32api_deftype()
w32api_init_dtype()
w32api_invoke_function()
w32api_register_function()
w32api_set_call_method()
wddx_add_vars()
wddx_deserialize()
wddx_packet_end()
wddx_packet_start()
wddx_serialize_value()
wddx_serialize_vars()
wordwrap()

X

xml_error_string()
xml_get_current_byte_index()
xml_get_current_column_number()
xml_get_current_line_number()
xml_get_error_code()
xml_parse()
xml_parse_into_struct()
xml_parser_create()
xml_parser_create_ns()
xml_parser_free()
xml_parser_get_option()
xml_parser_set_option()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_object()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
xmlrpc_decode()
xmlrpc_decode_request()
xmlrpc_encode()
xmlrpc_encode_request()
xmlrpc_get_type()
xmlrpc_parse_method_descriptions()
xmlrpc_server_add_introspection_data()
xmlrpc_server_call_method()
xmlrpc_server_create()
xmlrpc_server_destroy()
xmlrpc_server_register_introspection_callback()
xmlrpc_server_register_method()
xmlrpc_set_type()
xpath_eval()
xpath_eval_expression()
xpath_new_context()
xptr_eval()
xptr_new_context()
xslt_create()
xslt_errno()
xslt_error()
xslt_free()
xslt_process()
xslt_set_base()
xslt_set_encoding()
xslt_set_error_handler()
xslt_set_log()
xslt_set_sax_handler()
xslt_set_sax_handlers()
xslt_set_scheme_handler()
xslt_set_scheme_handlers()

Y

yaz_addinfo()
yaz_ccl_conf()
yaz_ccl_parse()
yaz_close()
yaz_connect()
yaz_database()
yaz_element()
yaz_errno()
yaz_error()
yaz_es_result()
yaz_get_option()
yaz_hits()
yaz_itemorder()
yaz_present()
yaz_range()
yaz_record()
yaz_scan()
yaz_scan_result()
yaz_schema()
yaz_search()
yaz_set_option()
yaz_sort()
yaz_syntax()
yaz_wait()
yp_all()
yp_cat()
yp_err_string()
yp_errno()
yp_first()
yp_get_default_domain()
yp_master()
yp_match()
yp_next()
yp_order()

Z

zend_logo_guid()
zend_version()
zip_close()
zip_entry_close()
zip_entry_compressedsize()
zip_entry_compressionmethod()
zip_entry_filesize()
zip_entry_name()
zip_entry_open()
zip_entry_read()
zip_open()
zip_read()
zlib_get_coding_type()

Zurück | Zum Anfang | Nach vorne
Funktions-Index | Nach oben | Fehlendes


Fehlendes

PHP Handbuch
Zurück Nach vorne

Anhang R. Fehlendes

Zurück | Zum Anfang | Nach vorne
Funktions-Index | Nach oben | Windows HTML Hilfe


PHP Handbuch

Copyright

Copyright © 1997 - 2004 by the PHP Documentation Group. Dieses Material darf nur gemäß den Regeln und Bedingungen der Open Publication Licence Version v1.0 oder neuer, (die aktuellste Version ist gegenwärtig unter http://www.opencontent.org/openpub/ verfügbar), verteilt werden.

Verbreitung von substantiell modifizierten Versionen dieses Dokuments ist ohne die explizite Erlaubnis des Copyright-Inhabers untersagt.

Verbreitung dieser Arbeit oder abgeleiteter Arbeiten in jeglicher Standard- (Papier-) Buchform ist ohne vorherige Erlaubnis durch den Copyright-Inhaber untersagt.

Die Mitglieder der PHP-Dokumentationsgruppe sind auf dem Titelblatt dieses Handbuchs aufgeführt. Falls Sie diese Gruppe kontaktieren möchten, schreiben Sie eine email an phpdoc@lists.php.net.

Das Kapitel 'Extending PHP 4.0' ist © 2000 by Zend Technologies, Ltd. Dieses Material darf nur gemäß den Regeln und Bedingungen der Open Publication Licence Version v1.0 oder neuer, (die aktuellste Version ist gegenwärtig unter http://www.opencontent.org/openpub/ verfügbar), verteilt werden.

Eine Kopie der Open Publication License wird zusammen mit diesem Handbuch verteilt.

Zum Anfang


Über diese Ausgabe

PHP Handbuch
Zurück Nach vorne

Kapitel 57. Über diese Ausgabe

Die Version des Handbuchs im Windows HTML Help Format wendet sich an Entwickler, die das Handbuch inklusive der Kommentare immer griffbreit haben wollen und trotzdem nicht auf das Laden einer Webseite warten wollen. Diese Ausgabe bietet den kompletten Inhalt des Handbuchs plus sämtliche Kommentare und einige guten Features des Formates, der Scripts, die wir zum Erstellen verwenden, sowie die Möglichkeit von "Skins".

Diese Distribution des PHP Handbuchs enthält viele Dateien, unter anderem die "Haupt"-Datei php_manual_de.chm. Um diese anzusehen, doppelklicken Sie darauf (vermutlich haben Sie das schon). Die Kommentare sind in php_manual_notes.chm. Sie benötigen nur eine Kopie dieser Datei, egal, in wievielen Sprachen Sie das Manual verwenden wollen. Sie benötigen jeweils nur die Datei php_manual_SPRACHE.chm im selben Verzeichnis wie die Datei php_manual_notes.chm. Sie sehen auch eine Datei php_manual_en.chw in diesem Verzeichnis. Diese Datei wird angelegt, wenn Sie das erste mal den Index-Button betätigen und enthält den Index der Handbuchseiten.

Für alle, die an den technischen Details der Microsoft HTML Hilfe interessiert sind: http://www.helpware.net/ ist eine gute Ausgangsposition. Weitere Informationen, wie der Stand der Windows HTML Hilfe in den Microsoft Hilfeformaten in der Vergangenheit, finden Sie in einem WinWriters Artikel.

Zurück | Zum Anfang | Nach vorne
Windows HTML Hilfe | Nach oben | Using PHP Manual CHM Edition


CHM Edition Credits

PHP Handbuch
Zurück

Kapitel 63. CHM Edition Credits

Diese erweiterte Version des PHP Handbuchs wäre, wenn die folgenden Personen nicht bei der Erstellung geholfen hätten, niemals möglich gewesen (keine bestimmte Reihenfolge):

  • Holger Eggert, der zwei Standarddesigns erstellte und viele sinnvolle Tipps gab.

  • Gonzalo De la Pena Andreu, der viele Vorschläge machte, wie man eine benutzerdefinierte Oberfläche realisieren könnte.

  • Olexandr Vynnychenko gab zahllose Kommentare ab und testete.

  • Brendan Ferguson, der einige Optimierungen und Verbesserungen zum HTML und Javascript hinter den Seiten beisteuerte.

  • Sandor Hojtsy, der die Handbuch Applikation programmierte.

  • Nicht zu vergessen auch jeder, der Vorschläge über die Mailingliste und die Umfrage abgab.

Zurück | Zum Anfang
CSS classes | Nach oben


Integrating the PHP Manual

PHP Handbuch
Zurück Nach vorne

Kapitel 61. Integrating the PHP Manual

Anmerkung: The information provided here is mainly aimed at IDE authors, or advanced users who would like to integrate this CHM file to their favorite IDEs or other production environment components.

There are several editors out there with support for CHM integration, but you may need to know a few things about what the CHM contains to successfully integrate the manual into your environment.

The CHM is built using XSL style sheets from XML sources. This is unique currently in the PHP Manual family, as all other versions are generated using DSSSL style sheets. This also means, that non-intentional rendering differences may come up. A special conversion script is run on the XSLT output, adding several cute features, and packing up the manual with the preferences files and skin examples.

If you never worked with CHMs, you can think of them as compressed files with OS supported access for files inside and some added search and index support. However CHMs can only be viewed using the HTML Help Viewer, you can directly access files inside them using a special URL prefix, the CHM file name and the file you request from inside. As all the help content is stored in HTML files, you can show pages of the CHM in Internet Explorer.

Assume that you placed your php_manual_en.chm to c:\phpmanual the index file in the manual (which you see the first time) can be accessed with the following URL: mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. Here mk:@MSITStore: is the special "protocol", C:\phpmanual\php_manual_en.chm is the CHM with it's full path. The /_index.html part is the path to the index file inside the CHM and :: is just what you need to put between the CHM path and this file path.

Anmerkung: All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at http://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconhh1start.asp.

Zurück | Zum Anfang | Nach vorne
Presentational Specialities | Nach oben | Skin development


The Full Text Search

PHP Handbuch
Zurück Nach vorne

Kapitel 59. The Full Text Search

Inhaltsverzeichnis
General searching rules
Searching for words or phrases
Defining search terms
Using nested expressions when searching
Manual Content and User Note Separation

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.

General searching rules

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.

  • You may search for any combination of letters (a-z) and numbers (0-9). You cannot search for single letters (a, b, c, etc.) and common words, like: an, and, as, at, be, but, by, do, for, from, have, he, in, it, not, of, on, or, she, that, the, there, they, this, to, we, which, with, you.

  • Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), and hyphen (-) are ignored during a search.

  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.

Anmerkung: If you are searching for a file name with an extension, you should group the entire string in double quotes, ("filename.ext"). Otherwise, the period will break the file name into two separate terms. The default operation between terms is AND, so you will create the logical equivalent to "filename AND ext."

Zurück | Zum Anfang | Nach vorne
Keyboard Shortcuts | Nach oben | Searching for words or phrases


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics containing the word "html" along with the words "smtp" and "mail" close together, or containing "html" along with the words "pop3" and "mail" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.

  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT (pop3 OR smtp)" finds topics containing the word "mail" without either of the words "pop3" or "smtp".

  • You cannot nest expressions more than five levels deep.

Zurück | Zum Anfang | Nach vorne
Defining search terms | Nach oben | Manual Content and User Note Separation


Manual Content and User Note Separation

The manual content and the user notes are separated to php_manual_LANG.chm and php_manual_notes.chm. There were several resons to do this, including:

  • This way you can update the user notes and the manual independently as you need.

  • You can have more than one language of the manual, while only need to have one notes file. All the CHM files need to be in the same directory, and all translations need to share the same preferences if you would not like to have more then one notes file.

  • You can bookmark manual pages with notes, or just a notes part of a page separately.

  • You can "turn off" user note display and user note search results by simply deleting php_manual_notes.chm, moving it out of the directory or renaming it.

All these benefits lead us to provide the manual the way you can see it right now. This distribution had the effect on the full text search that you get search results from the manual content and from the user notes as separate ones. The "Location" column shows the source of the result, also enabling you to "add precedence" to manual content results with ordering the results by "Location". User note page titles are also prefixed with "N:" to make them easily distinguishable in the favorites list (there's no location info in the favorites list).

Zurück | Zum Anfang | Nach vorne
Using nested expressions when searching | Nach oben | Specialities of this Edition


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Tabelle 59-2. Search operators

Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Anmerkung: The |, &, and ! characters can also be used in place of OR AND and NOT respectively. This may not work if you use a very old version of the viewer.

Zurück | Zum Anfang | Nach vorne
Searching for words or phrases | Nach oben | Using nested expressions when searching


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Tabelle 59-1. Word and phrase searches

Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase "new operator" or new operator

Topics that contain the literal phrase "new operator" and all its grammatical variations.

Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.

Wildcard expressions esc* or HT??

Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term.

Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Anmerkung: Select the Match similar words check box to include minor grammatical variations for the phrase you search. This feature only locates variations of the word with common suffixes. For example, a search on the word "add" will find "added," but it will not find "additive". This option is independent of other options or syntax. If you do a titles-only search, variations in titles will be matched. If you use quotes (or any other query operator) any variation of the word can appear; for example, "stemmed search" will also match "stemming search".

Zurück | Zum Anfang | Nach vorne
The Full Text Search | Nach oben | Defining search terms


Skin development

PHP Handbuch
Zurück Nach vorne

Kapitel 62. Skin development

Inhaltsverzeichnis
Page Display Process
Page Elements
CSS classes

This edition of the PHP Manual allows users to choose from skins to display the contents, as well as develop custom skins to meet some special needs. We decided to support skins because we realized that one skin cannot satisfy everybodies needs in a such heavily used edition.

We included two skins by default inside the CHM. These cannot be modified or removed, so if you have the CHM, you have these two skins inside. The Low skin is optimized for small window display, the High skin is a variation of the Low one with some graphics added to spice it up.

A skin must have at least two files, a skin loader JavaScript file and a CSS file. The two inline skins have these files inside the CHM. The skin loader JS should at least load in the CSS file and display the page contents to the viewer. Theoretically there are two kinds of skins: CSS skins and Full skins. CSS skins only modify the CSS and does not amend the page layout. Full skins also modify the page layout. We have included sample skins for both the CSS skin type and the Full skin type ("greenlinks" and "headernostalgia" respectively).

Warnung

Note that though the current skin development methods are quite final, there may be heavy changes in used CSS classes or page elements while we refine the skin development ideas. As this edition is currently in development stage, the information described herein is not to be considered completely stable.

Page Display Process

If you are going to develop your own skin, you should know how one page is loaded and displayed to the user, and how a skin fits in this process. For these paragraphs, we assume that you have put your CHM into c:\phpmanual, so it's accessible as c:\phpmanual\php_manual_LANG.chm (where LANG is the language code), and you would like to see the function page of "echo", which is function.echo.html inside the CHM. See the sections about integration for more information on CHM contents.

  • First of all the HTML content is loaded in from function.echo.html from inside the CHM.

  • At the top of this file, there is a HTML <script> tag, which loads in the _script.js file from the CHM. This file contains all the JS code needed to move on with the process. Most importantly this JS defines many variables (like where the CHM is, or what is the actual page viewed) and many functions to print out the context menu or handle online functions.

  • At last _script.js loads in the preferences file from outside the CHM (c:\phpmanual\php_manual_prefs.js in our example). This JS file defines the preference variables, and calls back prefHandler() which is also defined in _script.js.

  • That function loads in the skin JS file as the preferences dictate. The skin JS file should load in the needed CSS file, and define a displayPage() function, which displays the page if called.

  • The HTML file (function.echo.html in this example) also contains a function call to load in the user notes, which simply puts the notes into this HTML file using DHTML to be displayed as if they were here before...

  • The HTML file also contains a body onload attribute which calls the skin-defined displayPage() function to show the page to the user. This is the last function called, it should present the page in it's complete form to the user.

Every action is synchronized with calling back a function in the previously loaded file when the JS is in memory. The notes loading and skin JS loading is only synchronized with the page's onload event (which as the Microsoft documentation says only fires if the page is completely loaded).

This load and callback chain may seem to be too complicated, but so far this seemed to be the best way to do as many things as possible parallel, while also synchronize some calls.

As you can see your skin JavaScript file is loaded in by _script.js and it's displayPage() function is called by the body onload event.

Zurück | Zum Anfang | Nach vorne
Integrating the PHP Manual | Nach oben | Page Elements


CSS classes

We cannot provide accurate documentation currently on useable CSS classes, as some of the DocBook XSL sheets classes are not used and some classes are added. Please see the sample CSS files included for first time reference.

Zurück | Zum Anfang | Nach vorne
Page Elements | Nach oben | CHM Edition Credits


Page Elements

The PHP Manual pages are all HTML files with several HTML tags in them for both presentational and divisional purposes. The HTML pages contain divisions to be used for skinning purposes and misc divisions added by the DocBook XSL sheets.

A HTML page can be either a function reference page or another kind of page (like a feature description). Skins should get ready to skin these two kinds of pages separately most of the time (depending on the actual design).

The pages are structured using <div> tags with appropriate IDs to ease the skin writers work. A page consists of these parts:

  • <div id="pageContent"></div> contains all the page contents. This begins right after <body> and ends just before </body>. This division is hidden by default, you need to show it after you are ready with the page rewriting process.

  • <div id="pageHeaders"></div> contains the page header parts. This includes the text only main title (in a <span id="pageTitle"></span>) and function properties, in case this is a function page (contained in <span id="funcPurpose"></span>, <span id="funcAvail"></span> and <span id="funcUsage"></span>). In case one of these three is not available, the current page is not a function page.

  • <div id="pageText"></div> contains the majority of the page contents, including examples, manual notes, warnings, etc. This also includes see also parts for now, as we still cannot differentiate between see also and normal text parts (may be a thing to change in the future).

  • <div id="pageNotes"></div> contains the user notes (itself loaded in from another HTML file by JS). It contains a heading, and then a <div> without ID for every user note and spans in that divs for every element of a user note (with "email", "date" and "text" IDs respectively).

  • <div id="pageNav"></div> contains the
navigation table, which is further divided into spans (<span
id="navPrev"></span>, <span
id="navPath"></span>, <span
id="navNext"></span>, <span
id="navOnline"></span>, <span
id="navThisOnline"></span> and <span
id="navReportBug"></span>), where navThisOnline
and navReportBug is inside navOnline.

If you would like to rewrite the page, you should first read in the parts you need from the page to JS variables, then clear the contents of pageContent (or just the part you would like to rewrite), write in the new content and show the pageContent div for the user. If you would not like to make any structural changes, you can simply display the pageContent div and only specify a special style sheet in your skin JS file (see the "greenlinks" skin for an example).

You can find a "Full skin" developed to show you how to make skins built on top of this structure. The skin name is "headernostalgia". It rewrites the header part and removes the footer navigational table.

Zurück | Zum Anfang | Nach vorne
Skin development | Nach oben | CSS classes


Specialities of this Edition

PHP Handbuch
Zurück Nach vorne

Kapitel 60. Specialities of this Edition

Inhaltsverzeichnis
User Preferences
Presentational Specialities

The Windows HTML Help Edition of the PHP Manual overperforms the presentational and interactive capabilities offered by other editions (including the online manual). This was possible because currently CHMs can only be viewed on Windows using Internet explorer, so we can develop for one browser family and one operating system. Viewers for other OSes may be developed in the future by third parties.

User Preferences

Most of the interactive features of this manual are provided by the viewer application (including full text search, index, favorites list), but we extended this list with PHP Manual specific tools. All these can be adjusted to your needs using a simple desktop application named php_manual_prefs.exe. If you run this program you can see three groups of settings: Online Functions, Context Menu, and Skin. All your settings are stored in php_manual_prefs.js.

Online functions enable you to have elements connected to websites. The two ones you can see on all manual pages are "This page online" and "Report a bug". As you can figure out the first one shows you the same page in the online manual, the second one opens a page from http://bugs.php.net/ and prefills some bug data for you. You need to select a mirror site to use for "php.net sensitive" online functions. We recommend choosing a close mirror site to get the best speed. Other components that may be limited by this online functions setting include context menu items opening new websites ("Google search selection" for example). Custom designs may also include elements restricted by this setting.

The context menu settings enables you to choose which context menu you prefer. This application provides you with an option to define your own context menu adding elements to it from a predefined set. You can have this custom context menu for the right click of your mouse, and have the original menu for CTRL+right click, or the opposite way. Three special types of custom context menu items exist:

Tabelle 60-1. Context menu items

Type | Examples | Comments
Page Jump | Function Reference, Function Index | These items jump to a specific page in the CHM. Page Jump options are not restricted to point inside the CHM though. They can point to websites or other resources. Page jump options with a protocol part in the URL open in new window.
Function Call | Print page, Select all, Copy selection to clipboard, Google Search Selection | These are "function calls" for internally defined context menu functions. The last two examples have the speciality that they only show up in the menu if you rightclicked on a selection. Currently there is no way to extend the context menu with skin defined functions.
Special display | Google SearchBox, AlltheWeb SearchBox | These are displayed as HTML forms, where you can enter search keywords, press ENTER, and receive a new window with the search issued in the appropriate search engine. Currently there is no way to extend the set of specially displayed context menu items.
Possible context menu elements and their "abstract implementations" are stored in context.ini. You have the ability to add possible page jump options there, but there is no way currently to extend the context menu system with user (skin) defined functions. The possible mirror sites are listed in mirrors.ini. Feel free to suggest more bundled context menu items to us at php-doc-chm@lists.php.net.

The skins setting enables you to choose from the two bundled default skins, or from any user defined skins. The Low skin is optimized to display correctly at any small size, the High skin is optimized for your viewing pleasure. Other skins may be developed according to our skins development guide. The recommended place for skins on the file system is the skins/SKINNAME subfolder of the PHP Manual directory. Though this is not required, some skins may define other rules (not recommended). We included sample skins for you to see examples of how to develop skins for the PHP Manual.

You have three buttons to choose from at the bottom. The Apply button applies your changes without exiting, the OK button applies and closes the application, the Cancel button does not modify your settings and closes the program.

Zurück | Zum Anfang | Nach vorne
Manual Content and User Note Separation | Nach oben | Presentational Specialities


Presentational Specialities

This edition of the PHP Manual is highly optimized for screen presentation. Skins may be developed to better support printing, as this was not the goal of the included skins. This approach allowed us to make many modifications to the presentation of different parts of the manual.

The first thing you'll notice is that all examples are color coded, using the PHP function show_source(). The actual colors used are defined by CSS classes. Examples also have links to PHP functions used in them to provide quick access to reference material. All code examples have a "copy to clipboard" link by the side of them with which you can copy the text contents of the example to the clipboard.

External links are marked with a special » sign, and open in a new browser window. We also included the "path to this page" information on all pages for you to easily identify where you are and navigate as needed.

Other parts of the manual are quite similar to the online ones by default, though custom skins can modify many elements on the pages.

Zurück | Zum Anfang | Nach vorne
Specialities of this Edition | Nach oben | Integrating the PHP Manual


Using PHP Manual CHM Edition

PHP Handbuch
Zurück Nach vorne

Kapitel 58. Using PHP Manual CHM Edition

Inhaltsverzeichnis
The HTML Help Toolbar
The Navigation Pane
Keyboard Shortcuts

When you double click on a CHM, a HTML Help Viewer window opens with three panes. On the left side of the window is the Navigation pane. It contains four navigational tabs: the Contents, Index, Search and Favorites tabs. On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic on startup. The help pages are all separate HTML files, your Internet Explorer displays the pages in the Topic pane. The third pane is the toolbar, which is located below the help window title bar. You can adjust the horizontal layout with dragging the vertical border between the Navigation pane and the Topic pane.

Note, that when you open the CHM the first time, it may appear in a strange position and size. From then, Windows remembers the window position, size and the last opened tab. All these including your favorites are stored in a file named hh.dat. If you move your file to another directory, all these remembered settings will be lost (including your favorites listing!). If you replace your CHM file with a new one, with the same name, this is not a problem though. The file names and path values are stored in hh.dat.

The HTML Help Toolbar

The HTML Help Toolbar contains the following icons, when you view the PHP Manual:

  • Hide/Show - Hides/shows the navigation pane.

  • Locate - Locates a topic in the contents tab (in case you reached a topic with search, index or favorites, and would like to see where it is in the table of contents tree view).

  • Back - Goes back in the history.

  • Forward - Goes forward in the history.

  • Refresh - Reloads the current page.

  • Home - Opens the startup page of the CHM.

  • Print - Opens the print dialog box.

  • Options - Provides a dropdown with more options.

Using this toolbar is really easy, many of the toolbar icons are strongly related to their Internet Explorer equivalents.

Zurück | Zum Anfang | Nach vorne
Über diese Ausgabe | Nach oben | The Navigation Pane


Keyboard Shortcuts

There are many keyboard shortcuts you can use to increase your productivity. Many users find it more appropriate to use these keyboard shortcuts to access topics, instead of clicking.

Tabelle 58-1. General Help Viewer Shortcuts

To | Press
Close the Help Viewer | ALT+F4
Display the Options menu | ALT+O
Hide or show the Navigation pane | ALT+O, and then T
Print a topic | ALT+O, and then P
Move back to the previous topic | ALT+LEFT ARROW
Move forward to the next topic (provided you have viewed it just previously) | ALT+RIGHT ARROW
Turn on or off search highlighting. | ALT+O, and then O
Return to the help file home page | ALT+O, and then H
Switch between the Navigation pane and the Topic pane | F6
Scroll through all the links in a topic or through all the options on a Navigation pane tab | TAB
Display context (right click) menu [see the User Preferences section] | SHIFT+F10

Tabelle 58-2. Contents Tab Shortcuts

To | Press
Display the Contents tab | ALT+C
Open and close a book or folder | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic | DOWN ARROW and UP ARROW
Display the selected topic | ENTER

Tabelle 58-3. Index Tab Shortcuts

To | Press
Display the Index tab | ALT+N
Type a keyword to search for | ALT+W, and then type the word
Select a keyword in the list | UP ARROW and DOWN ARROW
Display the associated topic | ENTER or ALT+D

Tabelle 58-4. Search Tab shortcuts

To | Press
Display the Search tab | ALT+S
Type a keyword to search for | ALT+W, and then type the word
Start a search | ALT+L
Select a topic in the results list | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Search for a keyword in the result list of a prior search | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run" | ALT+M
Only search through topic titles | ALT+R

Tabelle 58-5. Favorites Tab Shortcuts

To | Press
Display the Favorites tab | ALT+I
Add the currently displayed topic to the Favorites list | ALT+A
Select a topic in the Favorites list | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Remove the selected topic from the list | ALT+R

Tabelle 58-6. Topic Pane Shortcuts

To | Press
Index Lookup | Select the words you would like to look up and press F1
Find on page | CTRL+F, and then adjust options
Refresh page | F5

Zurück | Zum Anfang | Nach vorne
The Navigation Pane | Nach oben | The Full Text Search


The Navigation Pane

The Navigation Pane contains four navigational tabs: the Contents, Index, Search and Favorites tabs. These all provide different methods to access a topic in the help file.

  • The contents tab reveals a tree like table of contents, where you can navigate to the desired topic by opening and closing parts of the tree. You can even access the deepest sections using this TOC. If you right click on an item here and choose "Print...", you'll have the option to print the selected topic or the selected topic and all subtopics. However printing is not the initial goal of this representation of the manual (the PDF version is suitable for printing).

  • The index tab lists a huge number of "keywords" (actually manual page titles). You can pick one, or start to type a keyword, see the list adjusting to your input, and then click on a topic, or press enter if the selected topic is the one you would like to see.

  • The search tab shows one of the most powerful features of the HTML Help Viewer, the full text search (also known as FTS). Here you can type in your search expression, optionally connecting words with AND/OR/NEAR/NOT. Before you click 'List topics', you can also set some options at the bottom. After the search results are displayed, you'll realize that manual text and user note results are separated. To sort out the two types, click on the 'Location' column header. Now from the search results list, you can pick a topic, and see it's page. The keywords you searched for are highlighted on the page.

  • The favorites tab enables you to store your most used topics in a list, easily accessible. Here you can see the list, add the current topic to it, remove one, or display a selected item. You can also specify your own title for the favorite, by typing it into the 'Current topic:' box. The user note page titles are prepended with a 'N:' string so you can distinguish them from normal manual pages in the favorites listing.

Zurück | Zum Anfang | Nach vorne
Using PHP Manual CHM Edition | Nach oben | Keyboard Shortcuts


Windows HTML Hilfe

PHP Handbuch
Zurück Nach vorne

X. Windows HTML Hilfe

Inhaltsverzeichnis
57. Über diese Ausgabe
58. Using PHP Manual CHM Edition
59. The Full Text Search
60. Specialities of this Edition
61. Integrating the PHP Manual
62. Skin development
63. CHM Edition Credits

Zurück | Zum Anfang | Nach vorne
Fehlendes |  | Über diese Ausgabe


break

Break bricht die Ausführung der aktuellen for, foreach while, do..while Schleife oder einer switch Anweisungssequenz ab.

Einem break kann optional ein nummerisches Argument angehängt werden, das die Anzahl der abzubrechenden Befehlssequenzen enthält.

<?php
$arr = array('eins', 'zwei', 'drei', 'vier', 'stop', 'fünf');
while (list ( , $val) = each ($arr)) {
    if ($val == 'stop') {
        break;  /* Sie könnten hier auch 'break 1;' schreiben. */
    }
    echo "$val<br />\n";

/* Benutzung des optionalen Argumentes. */

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

Zurück | Zum Anfang | Nach vorne
foreach | Nach oben | continue


continue

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

Anmerkung: Beachten Sie, dass in PHP die switch Anweisung als Schleifenstruktur zum Zweck von continue angesehen wird.

Bei continue können Sie ein optionales nummerisches Argument mitgeben, das angibt, wie viele Ebenen von enhaltenen Schleifen übersprungen werden sollen.

<?php
while (list ($key, $value) = each ($arr)) {
    if (!($key % 2)) { // überspringe ungerade Werte
        continue;
    }
    tue_was_mit_ungerade ($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Außen<br />\n";
    while (1) {
        echo "&nbsp;&nbsp;Mitte<br />\n";
        while (1) {
            echo "&nbsp;&nbsp;Innen<br />\n";
            continue 3;
        }
        echo "Das wird nie ausgegeben.<br />\n";
    }
    echo "Das hier auch nicht.<br />\n";
}
?>

Lassen Sie das Semikolon nach continue weg, kann dies zu verwirrenden Ergebnissen führen. Es folgt ein Beispiel wie Sie es nicht machen sollten.

<?php
  for ($i = 0; $i < 5; ++$i) {
      if ($i == 2)
          continue
      print "$i\n";
  }
?>

Sie könnten erwarten, dass das Ergebnis wie folgt aussieht,

0
1
3
4

aber tatsächlich sieht die Ausgabe so aus,

2

weil der Rückgabewert von print() int(1) ist und das wird als das oben angesprochene optinale Argument gewertet.

Zurück | Zum Anfang | Nach vorne
break | Nach oben | switch


declare

Das Sprachkonstrukt declare wird dazu verwendet, um Ausführungsdirektiven für einen Codeblock anzugeben. Die Schreibweise von declare ist der anderer Kontrollstrukturen ähnlich:

declare (Direktive) Anweisung

Die Direktive gibt Ihnen die Möglichkeit, das Verhalten des declare-Blocks zu bestimmen. Zur Zeit wird nur eine Direktive unterstützt: die ticks (Weiter unten finden Sie mehr Informationen zu den ticks).

Der Anweisungsteil des declare-Blocks wird ausgeführt - wie genau diese Ausführung passiert und welche Nebeneffekte während der Ausführung auftreten, hängt von der Direktive ab, die Sie im directive-Block angegeben haben.

Das declare Konstrukt kann auch im globalen Geltungsbereich benutzt werden und gilt dann für den folgenden Code.

<?php
// bewirkt das Gleiche:

// sie können declare so benutzen:
declare(ticks=1) {
    // hier folgt Ihr ganzes Skript
}

// oder wie hier:
declare(ticks=1);
// hier folgt Ihr ganzes Skript
?>

Ticks

Ein tick ist ein Ereigniss, das bei jedem N-ten Autreten der low-level Anweisungen innerhalb des declare Blocks, die vom Parser ausgeführt werden, auftritt. Der Wert von N wird durch die Angabe von ticks=N innerhalb des declare-Blocks in dem directive Abschnitt bestimmt.

Das Ereignis/die Ereignisse, die bei jedem tick eintreten, legen Sie mit der Funktion register_tick_function() fest. Weitere Einzelheiten können Sie dem Beispiel unten entnehmen. Beachten Sie, dass mehr als ein Ereigniss für jeden tick eintreten kann.

Beispiel 11-1. Profil eines Bereichs von PHP Code

<?php
// Funktion, die bei Aufruf die Zeit aufzeichnet
function profile($dump = FALSE)
{
    static $profile;

    // Rückgabe der gespeicherten Zeit aus profile, danach löschen
    if ($dump) {
        $temp = $profile;
        unset ($profile);
        return ($temp);
    }

    $profile[] = microtime ();
}

// Einen tick handler bestimmen
register_tick_function("profile");

// Funktion vor dem declare-Block initialisieren
profile();

// Ausführen eines Code-Blocks, jede 2te Anweisung löst einen tick aus

declare(ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text(md5($x), md5($x*$x)), "<br />;";
    }
}

// Ausgabe der gespeicherten Daten aus dem Profiler
print_r(profile (TRUE));
?>
Dieses Beispiel 'profiliert' den PHP Code der im 'declare'-Block steht, indem die Zeit festgehalten wird, zu der jede zweite low-level Anweisung im Codeblock ausgeführt wird. Diese Information können Sie dazu benutzen, langsame Bereiche innerhalb bestimmter Codesegmente zu identifizieren. Das gleiche Ziel können Sie auch mit anderen Methoden erreichen: die Benutzung von ticks ist bequemer und einfacher zu implementieren.

Ticks sind gut für Debugging, einfaches Multitasking, Hintergrund I/O und viele andere Aufgaben geeignet.

Siehe auch register_tick_function() und unregister_tick_function().

Zurück | Zum Anfang | Nach vorne
switch | Nach oben | return


do..while

do..while-Schleifen sind den while -Schleifen sehr ähnlich, außer dass der Wahrheitsgehalt des Ausdrucks erst am Ende jedes Durchlaufs geprüft wird, statt am Anfang. Der Hauptunterschied zu gewöhnlichen while-Schleifen ist der, dass die Schleife bei do..while in jeden Fall einmal durchlaufen wird (die Bedingung wird erst am Ende eines Durchlaufs geprüft).Bei while-Schleifen hingegen kann es durchaus passieren, dass die Schleife nie durchlaufen wird (die Bedingung wird immer am Anfang eines Durchlaufs überprüft. Wird diese Bedingung von Anfang an als FALSE ausgewertet endet die Ausführung der Schleife sofort).

Es gibt nur eine Syntax für do..while-Schleifen:

<?php
$i = 0;
do {
    echo $i;
} while ($i>0);
?>

Die obige Schleife wird genau einmal durchlaufen, da nach der ersten Wiederholung die Erfüllung der Bedingung geprüft wird. Diese Bedingung ist aber nicht erfüllt ($i ist nicht größer als 0), wird als FALSE ausgewertet, und die Schleifenausführung beendet.

Erfahrene C-Anwender kennen auch die Möglichkeit, Programm-Blöcke mit do..while (0) einzuschliessen und dann die break Anweisung zu benutzen. Der folgende Programm-Ausschnitt zeigt diese Möglichkeit:

do {
    if ($i < 5) {
        echo "i ist nicht groß genug";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
    echo "i ist ok";

    /* mach was mit i */

} while (0);

Es ist nicht weiter tragisch, wenn Sie dieses Beispiel nicht oder nur zum Teil verstehen. Sie können auch ohne dieses 'Feature' effektive PHP-Programme und Skripte schreiben.

Zurück | Zum Anfang | Nach vorne
while | Nach oben | for


else

Häufig möchten Sie eine Anweisung auszuführen, wenn eine bestimmte Bedingung erfüllt ist und eine andere Anweisung, falls sie nicht erfüllt ist. Dafür gibt es else. else erweitert eine if-Anweisung um die Ausführung von Anweisungen, sobald der Ausdruck der if-Anweisung als FALSE ausgewertet wird. Der folgende Code wird z.B. a ist größer als b ausgeben, wenn $a größer als $b ist, anderenfalls a ist NICHT größer als b:

<?php
if ($a > $b) {
    print "a ist größer als b";
} else {
    print "a ist NICHT größer als b";
}
?>

Die else-Anweisung wird nur ausgeführt, wenn der if-Ausdruck als FALSE ausgewertet wurde und wenn bei vorhandenen elseif-Ausdrücken diese ebenfalls FALSE sind (siehe elseif).

Zurück | Zum Anfang | Nach vorne
Kontroll-Strukturen | Nach oben | elseif


elseif

Wie der Name schon sagt ist elseif eine Verbindung von if und else. Wie else erweitert sie eine if-Anweisung um die Ausführung anderer Anweisungen, sobald die normale if-Bedingung als FALSE ausgewertet wird. Anders als bei else wird die Ausführung dieser alternativen Anweisungen nur durchgeführt, wenn die bei elseif angegebene alternative Bedingung als TRUE ausgewertet wird. Der folgende Code wird z.B. a ist größer als b, a ist gleich b oder a ist kleiner als b ausgeben:

<?php
if ($a > $b) {
    echo "a ist größer als b";
} elseif ($a == $b) {
    echo "a ist gleich b";
} else {
    echo "a ist kleiner als b";
}
?>

Es kann mehrere elseif-Anweisungen innerhalb einer if-Anweisung geben. Die erste elseif-Bedingung (falls vorhanden), die TRUE ist, wird ausgeführt. In PHP kann man auch 'else if' schreiben (zwei Wörter). Das Verhalten ist identisch zu 'elseif' (ein Wort). Die Bedeutung der Syntax ist leicht unterschiedlich (falls Sie mit C vertraut sind, das ist das gleiche Verhalten) aber der Grundtenor ist der, dass beide Schreibweisen, bezogen auf das Ergebnis, sich exakt gleich verhalten.

Die elseif-Anweisung wird nur ausgeführt, wenn die vorausgehende if-Bedingung sowie jede vorherige elseif-Bedingung als FALSE ausgewertet wird und die aktuelle elseif-Bedingung TRUE ist.

Zurück | Zum Anfang | Nach vorne
else | Nach oben | Alternative Syntax für Kontroll-Strukturen


for

Die for-Schleifen sind die komplexesten Schleifen in PHP. Sie funktionieren wie ihr Gegenstück in C. Die Syntax einer for-Schleife sieht wie folgt aus:

for (ausdr1; ausdr2; ausdr3) Anweisung

Der erste Ausdruck (ausdr1) wird beim Schleifenbeginn (ohne jegliche Vorbedingung) geprüft bzw. ausgeführt.

Zu Beginn jedes Durchlaufs wird nun ausdr2 geprüft. Wenn dieser TRUE ist, fährt die Schleife mit der Ausführung der nachfolgenden Anweisung(en) fort. Ist das Ergebnis FALSE, wird die Schleife beendet.

Am Ende jedes Durchlaufs wird ausdr3 geprüft (ausgeführt).

Jeder Ausdruck kann leer sein. Ist ausdr2 leer, wird die Schleife endlos oft durchlaufen (PHP wertet diesen, wie in C, implizit als TRUE). Das ist gar nicht so sinnlos, wie Sie vielleicht zunächst glauben, weil man häufig eine Schleife erst durch eine bedingte break -Anweisung statt durch eine unwahr werdende for-Bedingung beenden möchte.

Beachten Sie die folgenden Beispiele. Alle geben Zahlen von 1 bis 10 aus:

<?php
/* Beispiel 1 */

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

/* Beispiel 2 */

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

/* Beispiel 3 */

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

/* Beispiel 4 */

for ($i = 1; $i <= 10; echo $i, $i++);
?>

Selbstverständlich sieht das erste (oder vielleicht das vierte) Beispiel am besten aus, aber Sie werden noch feststellen, dass es oftmals ganz nützlich sein kann, leere Parameter in for-Schleifen zu verwenden.

PHP unterstützt auch bei for-Schleifen die alternative "Doppelpunkt-Syntax".

for (ausdr1; ausdr2; ausdr3): Anweisung; ...; endfor;

Andere Sprachen haben für das Durchlaufen eines Hashs oder Arrays eine foreach-Anweisung. PHP 3 hat dies nicht; im Gegensatz zu PHP 4 (vgl. foreach). In PHP 3 können Sie für diesen Zweck while mit der list()- und each()-Funktion kombinieren. Beispiele finden Sie in der Dokumentation zu diesen Funktionen.

Zurück | Zum Anfang | Nach vorne
do..while | Nach oben | foreach


foreach

PHP 4 (nicht PHP 3) enthält ein foreach Konstrukt, genau wie Perl und einige andere Sprachen. Diese ermöglicht es, auf einfache Weise ein Array zu durchlaufen. foreach funktioniert nur in Verbindung mit Arrays. Wenn Sie versuchen foreach mit Variablen eines anderen Datentyps oder nicht initialisierten Variablen zu benutzen, gibt PHP einen Fehler aus. Es gibt zwei Syntaxformen; die zweite ist eine unbedeutende, aber sinnvolle Erweiterung der ersten Syntax:

foreach (array_expression as $value) Anweisung
foreach (array_expression as $key => $value) Anweisung

Die erste Form durchläuft das array_expression-Array. Bei jedem Durchgang wird der Wert des aktuellen Elements $value zugewiesen und der interne Array-Zeiger um eins erhöht. Dadurch wird beim nächsten Durchgang automatisch das nächste Element ausgewertet.

Die zweite Form arbeitet genauso, außer dass bei jedem Durchlauf auch der aktuelle Schlüssel der Variablen $key zugewiesen wird.

Anmerkung: Sobald foreach zum ersten Mal ausgeführt wird, wird der interne Arrayzeiger automatisch auf das erste Element des Arrays gesetzt. Das bedeutet, dass Sie vor einem Durchlauf von foreach reset() nicht aufrufen müssen.

Anmerkung: Beachten Sie auch, dass foreach mit einer Kopie des angegebenen Arrays arbeitet, nicht mit dem Array selbst. Deshalb wird auch der Arrayzeiger nicht wie bei dem each()-Konstrukt verändert und Veränderungen an ausgegebenen Arrayelementen haben keine Auswirkung auf das originale Array. Trotzdem wird der interne Arrayzeiger des originalen Arrays bei der Verarbeitung bewegt. Angenommen, die foreach-Schleife ist komplett abgearbeitet, wird der interne Arrayzeiger (des originalen Arrays) auf das letzte Element zeigen.

Anmerkung: Bei foreach ist es nicht möglich Fehlermeldungen durch den Gebrauch von '@' zu unterdrücken ist

Beachten Sie, dass die folgenden Beispiele in ihrer Funktionalität identisch sind:

<?php
$arr = array("eins", "zwei", "drei");
reset ($arr);
while (list(, $value) = each ($arr)) {
    echo "Wert:  $value<br />\n";
}

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

Auch hier funktioniert alles gleich:

<?php
$arr = array("eins", "zwei", "drei");
reset ($arr);
while (list($key, $value) = each ($arr)) {
    echo "Schlüssel: $key; Wert: $value<br />\n";
}

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

Noch einige Beispiele, die die Anwendung verdeutlichen:

<?php
/* foreach Beispiel 1: Nur der Wert */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {
   echo "Aktueller Wert von \$a: $v.\n";
}

/* foreach Beispiel 2:
Wert (mit Ausgabe des Arrayschlüssels zur Veranschaulichung) */

$a = array(1, 2, 3, 17);

$i = 0; /* nur zu Veranschaulichung */

foreach($a as $v) {
    echo "\$a[$i] => $v.\n";
    $i++;
}

/* foreach Beispiel 3: Schlüssel und Wert */

$a = array(
    "eins" => 1,
    "zwei" => 2,
    "drei" => 3,
    "siebzehn" => 17
);

foreach($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}

/* foreach Beispiel 4: multidimensionale Arrays */

$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}

/* foreach Beispiel 5: dynamische Arrays */

foreach (array(1, 2, 3, 4, 5) as $v) {
    echo "$v\n";
}
?>

Zurück | Zum Anfang | Nach vorne
for | Nach oben | break


switch

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

Anmerkung: Beachten Sie bitte, dass im Unterschied zu anderen Programmiersprachen die continue Anweisung auch bei switch ihre Gültigkeit hat und ähnlich wie break funktioniert. Falls Sie switch innerhalb einer Schleife verwenden und mit dem nächsten Durchlauf der äußeren Schleife beginnen möchten, verwenden Sie continue 2.

Das folgende Beispiele zeigt Ihnen zwei verschiedene Möglichkeiten auf, das Gleiche zu erreichen. Einmal werden if und elseif Anweisungen benutzt, das andere Mal eine switch-Anweisung:

<?php
if ($i == 0) {
    echo "i ist gleich 0";
} elseif ($i == 1) {
    echo "i ist gleich 1";
} elseif ($i == 2) {
    echo "i ist gleich 2";
}

switch ($i) {
case 0:
    echo "i ist gleich 0";
    break;
case 1:
    echo "i ist gleich 1";
    break;
case 2:
    echo "i ist gleich 2";
    break;
}
?>

Es ist wichtig, die Ausführung einer switch-Anweisung zu verstehen, um Fehler zu vermeiden. Die switch-Anweisung wird Zeile für Zeile (also Anweisung für Anweisung) abgearbeitet. Zu Beginn wird kein Code ausgeführt. Erst wenn bei einem case-Teil eine Entsprechung zum switch-Ausdruck vorliegt, werden die darin enthaltenen Anweisungen von PHP ausgeführt. PHP fährt dann mit der Abarbeitung des restlichen Codes innerhalb des switch-Blocks fort oder bis zum ersten Auftreten einer break-Anweisung. Ohne break am Ende eines case-Teils werden also noch die folgenden case-Blöcke ausgeführt. Zum Beispiel:

<?php
switch ($i) {
case 0:
    echo "i ist gleich 0";
case 1:
    echo "i ist gleich 1";
case 2:
    echo "i ist gleich 2";
}
?>

Wenn hier $i gleich 0 ist, würde PHP alle echo Anweisungen ausführen! Ist $i gleich 1, werden die letzten beiden echo Anweisungen ausgeführt. Nur wenn $i = 2 ist, erhalten Sie das erwartete Ergebnis: die Ausgabe von "i ist gleich 2". Deshalb ist es wichtig break-Anweisungen zu setzen (abgesehen von bestimmten Fällen, in denen Sie diese mit Absicht weglassen).

Bei einer switch-Anweisung wird die Bedingung also nur einmal überprüft und das Ergebnis mit jeder case-Anweisung verglichen. Bei einer elseif-Anweisung wird die Bedingung neu geprüft. Ist ihre Bedingung komplizierter als ein einfacher Vergleich und/oder in einer umfangreichen Schleife eingebettet, kann eine switch-Anweisung schneller sein.

Der Anweisungsteil von case kann auch leer sein. Dann wird die Kontrolle einfach an den nächsten case-Teil übergeben.

<?php
switch ($i) {
case 0:
case 1:
case 2:
    echo "i ist kleiner als 3 aber nicht negativ";
    break;
case 3:
    echo "i ist gleich 3";
}
?>

Ein Spezialfall ist default. Dieser Fall trifft auf alles zu, was nicht von den voranstehenden case-Ausdrücken erfasst wurde und sollte als letzte case Anweisung angegeben werden. Zum Beispiel:

<?php
switch ($i) {
case 0:
    echo "i ist gleich 0";
    break;
case 1:
    echo "i ist gleich 1";
    break;
case 2:
    echo "i ist gleich 2";
    break;
default:
    echo "i ist weder 0, 1 noch 2";
}
?>

Der case-Ausdruck kann eine Prüfung einfacher Typen sein, also von Integer- oder Fließkomma-Zahlen oder von Strings/Zeichenketten. Arrays oder Objekte können nicht benutzt werden, es sei denn, sie wurden in einfache Typen umgewandelt.

Die alternative Syntax der Kontrollstrukturen gilt auch für switch-Sequenzen. Mehr Informationen dazu erhalten Sie unter Alternative Syntax für Kontroll-Strukturen.

<?php
switch ($i):
case 0:
    echo "i ist gleich 0";
    break;
case 1:
    echo "i ist gleich 1";
    break;
case 2:
    echo "i ist gleich 2";
    break;
default:
    echo "i ist weder 0, 1 noch 2";
endswitch;
?>

Zurück | Zum Anfang | Nach vorne
continue | Nach oben | declare


while

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

while (ausdr) Anweisung

Die Bedeutung einer while-Anweisung ist einfach. Sie weist PHP an, einen in ihr eingebetteten Befehl so lange zu wiederholen, wie die while-Bedingung als TRUE ausgewertet wird. Der Wert der Bedingung wird immer am Anfang der Schleife geprüft. Wird der Wert während der Ausführung der Anweisungen innerhalb der while-Schleife verändert, endet die Ausführung dieses Anweisungsblocks erst mit dem Ende der Iteration (Jeder Schleifendurchlauf ist eine Iteration). Falls die while-Bedingung bereits beim ersten Mal FALSE ist, werden die Anweisungen der while-Schleife nicht ein einziges Mal durchlaufen.

Wie bei der if-Anweisung können Sie mehrere Anweisungen innerhalb der gleichen while-Schleife angeben, indem Sie dieses mit geschweiften Klammern umschließen oder die alternative Syntax verwenden:

while (ausdr): Anweisung ... endwhile;

Die folgenden Beispiele sind identisch; beide geben Zahlen von 1 bis 10 aus:

/* Beispiel 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* es wird erst $i ausgegeben, bevor der Wert erhöht wird
                  (Post-Inkrement) */
}

/* Beispiel 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;

Zurück | Zum Anfang | Nach vorne
Alternative Syntax für Kontroll-Strukturen | Nach oben | do..while


include

PHP Handbuch
Zurück Kapitel 11. Kontroll-Strukturen Nach vorne

include()

Die include() Anweisung bindet die angegebene Datei ein und wertet diese aus.

Die untenstehende Dokumentation gilt ebenso für require(). Diese beiden Konstrukte sind in jeder Hinsicht gleichwertig mit der einen Ausnahme: der Umgang mit Fehlern. include() erzeugt ein Warning während require() in einem Fatal Error endet. Mit anderen Worten, verwenden Sie require(), wenn Sie möchten, dass eine fehlende Datei die Ausführung ihres Skripts beendet. include() verhält sich anders, ihr Skript wird weiterhin ausgeführt. Stellen Sie außerdem sicher, dass Sie einen gültigen include_path gesetzt haben.

Wenn eine Datei eingebunden wird, erbt der enthaltene Code den Geltungsbereich von Variablen der Zeile in der die Anweisung steht. Ab dieser Zeile stehen alle verfügbaren Variablen in der aufgerufenen Datei im aufrufenden Skript zur Verfügung.

Beispiel 11-3. Grundlegendes include() Beispiel

vars.php
<?php

$color = 'grün';
$fruit = 'Apfel';

?>

test.php
<?php

echo "Ein $color $fruit"; // A

include 'vars.php';

echo "Ein $color $fruit"; // Ein grüner Apfel

?>

Steht include im aufrufenden Skript innerhalb einer Funktion, verhält sich der gesamte Code der aufgerufenen Datei genau so, als ob Sie diesen Code innerhalb dieser Funktion definiert hätten. Aus diesem Grund hat dieser Code den Geltungsbereich der Variablen dieser Funktion.

Beispiel 11-4. Include innerhalb einer Funktion

<?php

function foo()
{
global $color;

    include 'vars.php';

    echo "Ein $color $fruit";
}

/* vars.php ist im Geltungsbereich von foo(),  *
* d.h. $fruit steht außerhalb dieses Bereichs *
* NICHT zur Verfügung. $color schon, da wir   *
* diese Variable als global definiert haben  */

foo();                    // Ein grüner Apfel
echo "Ein $color $fruit";   // Ein grüner

?>

Beim Einbinden einer Datei wechselt der Parser vom PHP-Modus zu Beginn der Zieldatei in den HTML-Modus und kehrt am Ende der eingebunden Datei wieder in den PHP-Modus zurück. Deshalb muss jeglicher Code innerhalb der eingebundenen Datei, der als PHP-Code ausgeführt werden soll, von gültigen PHP-Start- und Ende-Tags eingefaßt sein.

Wenn "URL fopen wrappers" in PHP aktiviert sind (in der Standardkonfiguration ist das der Fall) können Sie als Pfad der einzubindenden Datei auch eine URL (via HTTP oder anderen unterstützen Wrappern - eine Liste der unterstützen Protokolle finden Sie unter Anhang J) statt einer lokalen Pfadangabe angeben. Falls der Zielserver die Zieldatei als PHP-Code interpretiert, können Sie an die einzubindende Datei Variablen in einem Request-String übergeben, genauso wie bei HTTP GET. Streng genommen ist das nicht das Gleiche, wie diese Datei einzubinden und diesem den Geltungsbereich des Vater-Skripts zu vererben; das Skript wird auf dem Remote-Server ausgeführt und danach wird das Ergebnis in das lokale Skript eingebunden.

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Beispiel 11-5. include() über HTTP

<?php

/* Dieses Beispiel geht davon aus, dass www.example.com so konfiguriert     *
* ist, dass .php-Dateien geparst werden und keine .txt Dateien. Also meint *
* 'Funkt' hier, dass die Variablen $foo und $bar innerhalb der             *
* angeforderten Datei zur Verfügung stehen                                 */

// Funkt nicht; file.txt wird von www.example.com nicht als PHP geparst

include 'http://www.example.com/file.txt?foo=1&bar=2';

// Funkt nicht; schaut nach einer lokalen Datei namens
// 'file.php?foo=1&bar=2' im lokalen Dateisystem

include 'file.php?foo=1&bar=2';

// Funkt
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // Funkt
include 'file.php';  // Funkt

?>
Siehe auch Zugriff auf entfernte Dateien, fopen() und file() für verwandte Informationen.

Da include() und require() spezielle Sprachkonstrukte sind, müssen Sie diese innerhalb einer bedingten Anweisung in einen Anweisungsblock setzen.

Beispiel 11-6. include() und bedingte Blöcke

<?php

// Das ist FALSCH und führt nicht zum gewünschten Ergebnis.

if ($bedingung)
    include $datei;
else
    include $andere_datei;

// Das ist KORREKT.
if ($bedingung) {
    include $datei;
} else {
    include $andere_datei;
}

?>

Der Umgang mit Returns: Es ist möglich eine return() -Anweisung innerhalb einer eingebunden Datei anzugeben, um die Ausführung innerhalb dieser Datei abzubrechen und zum aufrufenden Skript zurück zu kehren. Ebenso ist die Rückgabe von Werten aus einer eingebunden Datei möglich. Sie können den Wert eines include-Aufrufs auf die gleiche Art und Weise nutzen, wie Sie es bei einer Funktion machen würden.

Anmerkung: In PHP 3 darf eine return-Anweisung nicht innerhalb eines Blocks auftreten, es sei denn, es ist ein Funktionsblock. In diesem Fall gilt return() für diese Funktion und nicht für die ganze Datei.

Beispiel 11-7. include() und die return() Anweisung

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // gibt 'PHP' aus

$bar = include 'noreturn.php';

echo $bar; // gibt 1 aus

?>

$bar hat den Wert 1, weil include erfolgreich war. Beachten Sie die Unterschiede in den obigen Beispielen. Das erste nutzt return() innerhalb der eingebundenen Datei im Gegensatz zum zweiten Beispiel. Weitere Möglichkeiten Dateien in Variablen "einzubinden" bieten ihnen die Funktionen fopen() und file() oder include() im Zusammenspiel mit den Funktionen zur Ausgabesteuerung.

Anmerkung: Because this is a language construct and not a function, it cannot be called using variable functions

Siehe auch require(), require_once(),
include_once(), readfile(),
virtual()und
include_path.


include_once

PHP Handbuch
Zurück Kapitel 11. Kontroll-Strukturen Nach vorne

include_once()

Die Anweisung include_once() schließt zur Ausführungszeit die angegebene Datei ein und wertet diese aus. Dies ist ähnlich der include()-Anweisung; mit dem Unterschied, dass einmal eingebundener Code nicht nochmals eingebunden wird. Wie der Name vermuten lässt, wird die Datei nur ein einziges Mal eingebunden.

include_once() sollten Sie in den Fällen benutzen, wenn die gleiche Datei in einem bestimmten Bereich mehrmals eingebunden und interpretiert werden soll und Sie sicher stellen wollen, dass diese Datei nur exakt einmal eingebunden wird, um Probleme mit Wiederholungen von Funktionsdefinitionen und Wertzuweisungen an Variablen zu vermeiden, usw.

Weitere Beispiele zu require_once() und include_once() können Sie dem PEAR-Code entnehmen, welcher im aktuellsten PHP-Source-Code enthalten ist.

Anmerkung: include_once() steht ab PHP 4.01pl2 zur Verfügung.

Anmerkung: Beachten Sie, dass auf auf einem Betriebssystem, das nicht zwischen Groß- und Kleinschreibung unterschiedet (wie z.B. Windows) das Verhalten von include_once() und require_once() nicht unbedingt ihren Erwartungen entspricht.

Beispiel 11-9. include_once() unterscheidet nicht zwischen Groß-/Kleinschreibung unter Windows

<?php
include_once("a.php"); // bindet a.php ein
include_once("A.php"); // bindet a.php auf Windows nochmal ein!
?>

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Siehe auch include(),
require(), require_once(),
get_required_files(),
get_included_files(), readfile()
und virtual().

Zurück | Zum Anfang | Nach vorne
require_once() | Nach oben | Funktionen


require

PHP Handbuch
Zurück Kapitel 11. Kontroll-Strukturen Nach vorne

require()

Die require() Anweisung bindet die angegebene Datei ein und wertet diese aus.

require() bindet die angegebene Datei ein und führt diese aus. Genaue Informationen wie die Einbindung funktioniert ist in der Dokumentation für include() beschrieben.

require() und include() sind in jeder Hinsicht gleichwertig mit der einen Ausnahme: der Umgang mit Fehlern. include() erzeugt ein Warning während require() in einem Fatal Error endet. Mit anderen Worten: scheuen Sie sich nicht, require() zu benutzen, wenn Sie möchten, dass eine fehlende Datei die Ausführung ihres Skripts beendet. include() verhält sich anders, ihr Skript wird weiterhin ausgeführt. Stellen Sie außerdem sicher, dass Sie einen gültigen include_path gesetzt haben.

Beispiel 11-2. Grundlegende require() Beispiele

<?php

require 'prepend.php';

require $somefile;

require ('somefile.txt');

?>

Weitere Beispiele finden Sie in der Dokumentation zu include().

Anmerkung: Für frühere Versionen als PHP 4.0.2 gilt folgendes: require() wird immer versuchen die Zieldatei zu lesen, selbst wenn die Zeile in der die Anweisung steht, nie ausgeführt wird. Eine bedingte Anweisung hat keine Auswirkungen auf require(). Wenn jedoch die Zeile in der require() steht, nie ausgeführt wird, wird auch der Code der Zieldatei nie ausgeführt werden. Ähnliches gilt für Schleifenstrukturen, diese beeinflussen das Verhalten von require() nicht. Obwohl der Code, der in der Zieldatei enthalten ist, zur Schleife gehört, wird require() selbst nur einmal ausgeführt.

Anmerkung: Because this is a language construct and not a function, it cannot be called using variable functions

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Siehe auch include(), require_once(),
include_once(), eval(),
file(), readfile(),
virtual() und include_path.

Zurück | Zum Anfang | Nach vorne
return | Nach oben | include()


require_once

PHP Handbuch
Zurück Kapitel 11. Kontroll-Strukturen Nach vorne

require_once()

Die require_once() Anweisung bindet eine Datei ein und wertet diese zur Laufzeit des Skripts aus. Das Verhalten ist ähnlich der require() Anweisung mit dem einzigen Unterschied, dass einmal eingebundener Code aus einer Datei nicht nocht einmal eingebunden wird. Lesen Sie die Dokumentation zu require() um mehr Informationen über die Arbeitsweise dieser Anweisung zu erhalten.

require_once() sollten Sie in den Fällen benutzen, wenn die gleiche Datei in einem bestimmten Bereich mehrmals eingebunden und interpretiert werden soll und Sie sicher stellen wollen, dass diese Datei nur exakt einmal eingebunden wird, um Probleme mit Wiederholungen bei Funktions-Definitionen und Wertzuweisungen zu Variablen zu vermeiden, usw.

Weitere Beispiele zu require_once() und include_once() können Sie dem PEAR-Code entnehmen, welcher im aktuellsten PHP-Sourcecode enthalten ist.

Anmerkung: require_once() steht ab PHP 4.01pl2 zur Verfügung.

Anmerkung: Beachten Sie, dass auf auf einem Betriebssystem, das nicht zwischen Groß- und Kleinschreibung unterschiedet (wie z.B. Windows) das Verhalten von require_once() und include_once() nicht unbedingt ihren Erwartungen entspricht.

Beispiel 11-8. require_once() unterscheidet nicht zwischen Groß-/Kleinschreibung unter Windows

<?php
require_once("a.php"); // bindet a.php ein
require_once("A.php"); // bindet a.php auf Windows nochmal ein!
?>

Warnung

Windows PHP Versionen, kleiner als PHP 4.3, erlauben den Zugriff auf Remote-Dateien mit dieser Funktion nicht, selbst wenn allow_url_fopen aktiviert ist.

Siehe auch: require(),
include(), include_once(),
get_required_files(),
get_included_files(),
readfile()
und virtual().


old_function

Der Befehl old_function erlaubt es, eine Funktion genauso wie bei PHP/FI2 zu definieren (nur "function" wird durch "old_function" ersetzt.

Dieser Befehl sollte nur vom PHP/FI2->PHP3-Konverter genutzt werden.

Warnung

Funktionen, die durch old_function definiert werden, können nicht von PHP selbst aufgerufen werden. Das heißt unter anderem, dass sie nicht in Funktionen wie usort (), array_walk() und register_shutdown_function() benutzt werden können. Dieses Manko können Sie umgehen, indem Sie eine Adapterfunktion (in normalem PHP3) schreiben, welche die old_function aufruft.

Zurück | Zum Anfang | Nach vorne
Rückgabewerte | Nach oben | Variablenfunktionen


extends

Oft braucht man Klassen mit in einer anderen Klasse ähnlichen Variablen und Funktionen. So ist es eine gute Vorgehensweise, eine in allen Ihren Projekten verwendbare Oberklasse zu definieren, und diese dann den Bedürfnissen Ihrer einzelnen Projekte anzupassen. Um dies zu erleichtern, können Klassen andere Klassen erweitern. Die erweiterte bzw. abgeleitete Klasse verfügt über alle Variablen und Funktionen der Basisklasse (dies wird 'Vererbung' genannt, obwohl niemand gestorben ist), und was Sie in der erweiterten Definition hinzufügen. Es ist nicht möglich, etwas von einer Klasse wegzunehmen, d.h. Sie können keine existierenden Variablen oder Funktionen 'wegdefinieren'. Eine Unterklasse ist immer von einer einzigen Oberklasse abhängig, d.h. Mehrfachvererbung wird nicht unterstützt. Klassen werden mittels dem Schlüsselwort 'extends' erweitert.

class Named_Cart extends Cart
{
    var $owner;

    function set_owner ($name)
    {
        $this->owner = $name;
    }
}

Hier wird die Klasse Named_Cart definiert, die über alle Variablen und Funktionen von Cart, plus der Variable $owner und der Funktion set_owner() verfügt. Sie können einen bestimmten Einkaufswagen (Named_Cart) auf dem üblichen Weg erstellen, und nun auch den Besitzer (owner) bestimmen und erfragen. Sie können noch immer die normalen Cart Funktionen an Named_Cart anwenden:

$ncart = new Named_Cart;    // Erstellt einen bestimmten Einkaufwagen
$ncart->set_owner("kris");  // den Besitzer festlegen
print $ncart->owner;        // den Besitzer ausgeben
$ncart->add_item("10", 1);  // (vererbte Funktionalität von Cart)

Dies wird auch eine "Eltern-Kind" Beziehung genannt. Sie erstellen eine Klasse ("Eltern"), und erstellen mittels extends eine neue Klasse, die auf der "Eltern"-Klasse basiert: die "Kind"-Klasse. Sie können auch diese neue Unterklasse verwenden und eine neue, auf dieser Klasse basierenden Klasse erstellen.

Anmerkung: Bevor Sie Klassen verwenden können, müssen Sie diese definieren. Wenn Sie wollen, dass Named_Cart die Klasse Cart erweitert, müssen Sie Cart erst definieren. Wenn Sie eine andere Klasse, z.B. Yellow_named_cart erstellen wollen, welche auf Named_Cart basiert, müssen Sie zuerst Named_Cart definieren. Kurz gesagt ist die Reihenfolge, in der die Klassen definiert werden, sehr wichtig.

Zurück | Zum Anfang | Nach vorne
Klassen und Objekte | Nach oben | Konstruktoren


::

Achtung

Die folgende Beschreibung ist nur für PHP 4 gültig.

Manchmal ist es hilfreich, auf Funktionen in Basisklassen bzw. auf Funktionen in Klassen zuzugreifen, die noch keine Instanzen haben. Dafür wird der :: Operator verwendet.

class A
{
    function example()
    {
        echo "I am the original function A::example().<br>\n";
    }
}

class B extends A
{
    function example()
    {
        echo "I am the redefined function B::example().<br>\n";
        A::example();
    }
}

// Es gibt kein Objekt der Klasse A.
// Dies wird folgendes ausgeben
//   I am the original function A::example().<br>
A::example();

// Erstellt ein Objekt der Klasse B.
$b = new B;

// Dies wird folgendes ausgeben
//   I am the redefined function B::example().<br>
//   I am the original function A::example().<br>
$b->example();

Das obige Beispiel ruft die Funktion example() der Klasse A auf. Nachdem noch kein Objekt der Klasse A existiert, können wir nicht $a->example() oder ähnliches schreiben. Stattdessen rufen wir example() als 'Klassenfunktion' auf, d.h. als Funktion der Klasse selbst, und nicht irgendein Objekt dieser Klasse.

Es gibt Klassenfunktionen, aber keine Klassenvariablen. Tatsächlich gibt es zur Zeit des Aufrufs kein Objekt. Deshalb darf eine Klassenfunktion keine Objektvariablen benutzen (aber sie kann lokale und globale Variablen verwenden), und sie darf $this ebenfalls nicht benutzen.

In dem obigen Beispiel definiert Klasse B die Funktion example() neu. Die ursprüngliche Definition in Klasse A ist überschattet und nicht länger verfügbar, außer Sie verweisen mittels des ::-Operators speziell auf example() in Klasse A. Schreiben Sie A::example(), um dies zu tun (Tatsächlich sollten Sie parent::example() schreiben, wie im nächsten Abschnitt beschrieben).

In diesem Kontext besteht ein Objekt, das Objektvariablen haben kann. Deshalb können Sie auch $this und Objektvariablen verwenden, wenn sie von innerhalb einer Objektfunktion verwendet werden.

Zurück | Zum Anfang | Nach vorne
Konstruktoren | Nach oben | parent


parent

Wahrscheinlich wollen Sie auch Code schreiben, der sich auch auf Variablen und Funktionen in Basisklassen bezieht. Dies gilt speziell dann, wenn Ihre abgeleitete Klasse eine Verfeinerung oder Spezialisierung von Code in Ihrer Basisklasse ist.

Anstatt in Ihrem Code den wörtlichen Namen der Basisklasse zu verwenden, sollten Sie den speziellen Namen parent verwenden, welcher sich auf den in der Deklaration Ihrer Klasse mittels extends gegebenen Namen Ihrer Basisklasse bezieht. So vermeiden Sie die mehrfache Verwendung des Namens der Basisklasse. Sollte sich Ihr Vererbungsbaum während der Implementation ändern, brauchen Sie nur mehr die extends Deklaration Ihrer Klasse zu ändern.

class A
{
    function example()
    {
        echo "I am A::example() and provide basic functionality.<br>\n";
    }
}

class B extends A
{
    function example()
    {
        echo "I am B::example() and provide additional functionality.<br>\n";
        parent::example();
    }
}

$b = new B;

// Dies ruft B::example() auf, welches wiederum A::example() aufruft.
$b->example();

Zurück | Zum Anfang | Nach vorne
:: | Nach oben | Objekte serialisieren - Objekte in Sessions


Konstruktoren

Achtung

In PHP 3 und PHP 4 verhalten sich die Konstruktoren unterschiedlich. Die PHP 4 Semantik wird dringend empfohlen.

Konstruktoren sind Funktionen innerhalb einer Klasse, die automatisch aufgerufen wird, sobald Sie mittels new eine neue Instanz erstellen. In PHP 3 wird eine Funktion zum Konstruktor, wenn sie den gleichen Namen wie die Klasse hat. In PHP 4 wird eine Funktion zum Konstruktor, wenn sie den gleichen Namen wie die Klasse hat, in der sie definiert ist. Der Unterschied ist subtil, aber entscheidend (siehe unten).

// Funktioniert sowohl in PHP 3, als auch in PHP 4.
class Auto_Cart extends Cart
{
    function Auto_Cart()
    {
        $this->add_item ("10", 1);
    }
}

Die Klasse Auto_Cart entspricht der Klasse Cart und hat einen Konstruktor, der Cart bereits mit einem Artikel der Nummer "10" initialisiert, sobald ein neuer Auto_Cart mittels "new" erstellt wird. Konstruktoren können Argumente übernehmen, die optional sein können, was sie sehr praktisch macht. Um eine Klasse auch ohne Parameter verwenden zu können, sollten alle Parameter für Konstruktoren optional sein, indem sie mit Standardwerten ausgestattet werden.

// Funktioniert sowohl in PHP 3, als auch in PHP 4.
class Constructor_Cart extends Cart
{
    function Constructor_Cart($item = "10", $num = 1)
    {
        $this->add_item ($item, $num);
    }
}

// Kaufe das gleiche alte Zeug ein.

$default_cart = new Constructor_Cart;

// Kaufe etwas anderes...

$different_cart = new Constructor_Cart("20", 17);

Sie können auch den Operator @ verwenden, um Fehlermeldungen innerhalb des Konstruktors zu unterdrücken, z.B. @new.

Achtung

In PHP 3 haben abgeleitete Klassen und Konstruktoren ein paar Einschränkungen. Sie sollten das folgende Beispiel sorgfältig lesen, um diese Einschränkungen zu verstehen.

class A
{
    function A()
    {
      echo "I am the constructor of A.<br>\n";
    }
}

class B extends A
{
    function C()
    {
        echo "I am a regular function.<br>\n";
    }
}

// In PHP 3 wurde kein Konstruktor aufgerufen.
$b = new B;

In PHP 3 wird bei dem obigen Beispiel kein Konstruktor aufgerufen. Die Regel in PHP 3 besagt: 'Ein Konstruktor ist eine Funktion mit dem selben Namen wie die Klasse'. Der Name der Klasse ist B, und nachdem in Klasse B keine Funktion namens B() existiert, passiert nichts.

Dies ist in PHP 4 mit der Einführung einer anderen Regel behoben: Wenn eine Klasse keinen Konstruktor hat, wird der Konstruktor der Basisklasse aufgerufen, so dieser existiert. Das obige Beispiel hätte in PHP 4 also 'I am the constructor of A.<br>' ausgegeben.

class A
{
    function A()
    {
        echo "I am the constructor of A.<br>\n";
    }

    function B()
    {
        echo "I am a regular function named B in class A.<br>\n";
        echo "I am not a constructor in A.<br>\n";
    }
}

class B extends A
{
    function C()
    {
        echo "I am a regular function.<br>\n";
    }
}

// Dies ruft B() als Konstruktor auf.
$b = new B;

In PHP 3 wird die Funktion B() in der Klasse A plötzlich zum Konstruktor in Klasse B, auch wenn dies nie beabsichtigt war. Die Regel in PHP 3 lautet: 'Ein Konstruktor ist eine Funktion mit dem gleichen Namen wie die Klasse'. PHP 3 kümmert sich nicht darum, ob die Funktion in Klasse B definiert, oder ob sie nur vererbt wurde.

Dies ist in PHP 4 mit einer modifizierten Regel behoben: 'Ein Konstruktor ist eine Funktion mit dem selben Namen wie die Klasse, in der sie definiert wurde'. So hätte die Klasse B in dem obigen Beispiel keinen eigenen Konstruktor, und würde der Konstruktor der Basisklasse aufgerufen, welcher 'I am the constructor of A.<br>' ausgeben würde.

Achtung

Weder PHP 3, noch PHP 4 rufen vom Konstruktor der abgeleiteten Klasse aus automatisch Konstruktoren der Basisklasse auf. Wenn angebracht, ist der Aufruf von Konstruktoren aufwärts Ihre Aufgabe.

Anmerkung: In PHP 3 und PHP 4 gibt es keine Destruktoren. Stattdessen können Sie register_shutdown_function() verwenden, um die meisten Effekte von Destruktoren zu simulieren.

Destruktoren sind Funktionen die automatisch aufgerufen werden, wenn ein Objekt entweder mittels unset(), oder durch Verlassen des Gültigkeitsbereiches zerstört wird. Es gibt in PHP keine Destruktoren.

Zurück | Zum Anfang | Nach vorne
extends | Nach oben | ::


Die "magischen" Funktionen __sleep und __wakeup

serialize() prüft, ob Ihre Klasse eine Funktion mit dem magischen Namen __sleep enthält. Wenn dem so ist, wird diese Funktion vor einer Serialisierung ausgeführt. Sie kann das Objekt aufräumen und soll ein Array mit den Namen aller Variablen des zu serialisierenden Objektes zurückgeben.

Die beabsichtigte Verwendung von __sleep ist, eventuelle Datenbankverbindungen des Objektes zu schließen, noch offene Daten zu committen, oder ähnliche Säuberungsaktionen durchzuführen. Weiters ist diese Funktion hilfreich, wenn Sie sehr große Objekte haben, die nicht komplett gespeichert werden müssen.

Umgekehrt prüft unserialize() die Existenz einer Funktion mit dem magischen Namen __wakeup. Ist diese vorhanden, kann sie Ressourcen des Objektes rekonstruieren.

Die vorgesehene Verwendung von __wakeup ist die Wiederherstellung von Datenbankverbindungen, welche während der Serialisierung verloren gegangen sein könnten, sowie andere Neuinitialisierungen.

Zurück | Zum Anfang | Nach vorne
Objekte serialisieren - Objekte in Sessions | Nach oben | Referenzen innherhalb des Konstruktors


empty("0")

The perhaps most controversial change in behavior has happened to the behavior of the empty(). A String containing only the character '0' (zero) is now considered empty while it wasn't in PHP 3.

This new behavior makes sense in web applications, with all input fields returning strings even if numeric input is requested, and with PHP's capabilities of automatic type conversion. But on the other hand it might break your code in a rather subtle way, leading to misbehavior that is hard to track down if you do not know about what to look for.

Zurück | Zum Anfang | Nach vorne
Initializers | Nach oben | Missing functions


Function TRUE/false return values

Most internal functions have been rewritten so they return TRUE when successful and FALSE when failing, as opposed to 0 and -1 in PHP/FI 2.0, respectively. The new behaviour allows for more logical code, like $fp = fopen("/your/file") or fail("darn!");. Because PHP/FI 2.0 had no clear rules for what functions should return when they failed, most such scripts will probably have to be checked manually after using the 2.0 to 3.0 convertor.

Beispiel D-9. Migration von 2.0: Rückgabewerte, alter Code

$fp = fopen($file, "r");
if ($fp == -1);
    echo("Konnte $file zum lesen nicht &ouml;ffnen&lt;br&gt;\n");
endif;

Beispiel D-10. Migration von 2.0: Rückgabewerte, neuer Code

$fp = @fopen($file, "r") or print("Konnte $file zum lesen nicht &ouml;ffnen<br>;\n");

Zurück | Zum Anfang | Nach vorne
Short-circuited boolean evaluation | Nach oben | Andere Inkompatibilitäten


Core vordefinierte Konstanten

Core vordefinierte Konstanten -- Diese Konstanten sind definiert in den PHP core, Zend, und SAPI Modulen

Beschreibung

Diese Konstanten wurden definiert vom PHP core. Diese beziehen sich auch auf die PHP, Zend engine, und SAPI Module.

PHP_VERSION (string)

PHP_OS (string)

DEFAULT_INCLUDE_PATH (string)

PEAR_INSTALL_DIR (string)

PEAR_EXTENSION_DIR (string)

PHP_EXTENSION_DIR (string)

PHP_BINDIR (string)

PHP_LIBDIR (string)

PHP_DATADIR (string)

PHP_SYSCONFDIR (string)

PHP_LOCALSTATEDIR (string)

PHP_CONFIG_FILE_PATH (string)

PHP_OUTPUT_HANDLER_START (integer)

PHP_OUTPUT_HANDLER_CONT (integer)

PHP_OUTPUT_HANDLER_END (integer)

E_ERROR (integer)

E_WARNING (integer)

E_PARSE (integer)

E_NOTICE (integer)

E_CORE_ERROR (integer)

E_CORE_WARNING (integer)

E_COMPILE_ERROR (integer)

E_COMPILE_WARNING (integer)

E_USER_ERROR (integer)

E_USER_WARNING (integer)

E_USER_NOTICE (integer)

E_ALL (integer)

Zurück | Zum Anfang | Nach vorne
Vordefinierte Konstanten | Nach oben | Automatisch vordefinierte Konstanten


Automatisch vordefinierte Konstanten

Automatisch vordefinierte Konstanten -- Automatisch definierte Konstanten in PHP

Beschreibung

Diese Konstanten sind in PHP automatisch definiert.

EXTR_OVERWRITE (integer)

EXTR_SKIP (integer)

EXTR_PREFIX_SAME (integer)

EXTR_PREFIX_ALL (integer)

EXTR_PREFIX_INVALID (integer)

EXTR_PREFIX_IF_EXISTS (integer)

EXTR_IF_EXISTS (integer)

SORT_ASC (integer)

SORT_DESC (integer)

SORT_REGULAR (integer)

SORT_NUMERIC (integer)

SORT_STRING (integer)

CASE_LOWER (integer)

CASE_UPPER (integer)

COUNT_NORMAL (integer)

COUNT_RECURSIVE (integer)

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

CONNECTION_ABORTED (integer)

CONNECTION_NORMAL (integer)

CONNECTION_TIMEOUT (integer)

INI_USER (integer)

INI_PERDIR (integer)

INI_SYSTEM (integer)

INI_ALL (integer)

M_E (float)

M_LOG2E (float)

M_LOG10E (float)

M_LN2 (float)

M_LN10 (float)

M_PI (float)

M_PI_2 (float)

M_PI_4 (float)

M_1_PI (float)

M_2_PI (float)

M_2_SQRTPI (float)

M_SQRT2 (float)

M_SQRT1_2 (float)

CRYPT_SALT_LENGTH (integer)

CRYPT_STD_DES (integer)

CRYPT_EXT_DES (integer)

CRYPT_MD5 (integer)

CRYPT_BLOWFISH (integer)

DIRECTORY_SEPARATOR (string)

SEEK_SET (integer)

SEEK_CUR (integer)

SEEK_END (integer)

LOCK_SH (integer)

LOCK_EX (integer)

LOCK_UN (integer)

LOCK_NB (integer)

HTML_SPECIALCHARS (integer)

HTML_ENTITIES (integer)

ENT_COMPAT (integer)

ENT_QUOTES (integer)

ENT_NOQUOTES (integer)

INFO_GENERAL (integer)

INFO_CREDITS (integer)

INFO_CONFIGURATION (integer)

INFO_MODULES (integer)

INFO_ENVIRONMENT (integer)

INFO_VARIABLES (integer)

INFO_LICENSE (integer)

INFO_ALL (integer)

CREDITS_GROUP (integer)

CREDITS_GENERAL (integer)

CREDITS_SAPI (integer)

CREDITS_MODULES (integer)

CREDITS_DOCS (integer)

CREDITS_FULLPAGE (integer)

CREDITS_QA (integer)

CREDITS_ALL (integer)

STR_PAD_LEFT (integer)

STR_PAD_RIGHT (integer)

STR_PAD_BOTH (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

CHAR_MAX (integer)

LC_CTYPE (integer)

LC_NUMERIC (integer)

LC_TIME (integer)

LC_COLLATE (integer)

LC_MONETARY (integer)

LC_ALL (integer)

LC_MESSAGES (integer)

ABDAY_1 (integer)

ABDAY_2 (integer)

ABDAY_3 (integer)

ABDAY_4 (integer)

ABDAY_5 (integer)

ABDAY_6 (integer)

ABDAY_7 (integer)

DAY_1 (integer)

DAY_2 (integer)

DAY_3 (integer)

DAY_4 (integer)

DAY_5 (integer)

DAY_6 (integer)

DAY_7 (integer)

ABMON_1 (integer)

ABMON_2 (integer)

ABMON_3 (integer)

ABMON_4 (integer)

ABMON_5 (integer)

ABMON_6 (integer)

ABMON_7 (integer)

ABMON_8 (integer)

ABMON_9 (integer)

ABMON_10 (integer)

ABMON_11 (integer)

ABMON_12 (integer)

MON_1 (integer)

MON_2 (integer)

MON_3 (integer)

MON_4 (integer)

MON_5 (integer)

MON_6 (integer)

MON_7 (integer)

MON_8 (integer)

MON_9 (integer)

MON_10 (integer)

MON_11 (integer)

MON_12 (integer)

AM_STR (integer)

PM_STR (integer)

D_T_FMT (integer)

D_FMT (integer)

T_FMT (integer)

T_FMT_AMPM (integer)

ERA (integer)

ERA_YEAR (integer)

ERA_D_T_FMT (integer)

ERA_D_FMT (integer)

ERA_T_FMT (integer)

ALT_DIGITS (integer)

INT_CURR_SYMBOL (integer)

CURRENCY_SYMBOL (integer)

CRNCYSTR (integer)

MON_DECIMAL_POINT (integer)

MON_THOUSANDS_SEP (integer)

MON_GROUPING (integer)

POSITIVE_SIGN (integer)

NEGATIVE_SIGN (integer)

INT_FRAC_DIGITS (integer)

FRAC_DIGITS (integer)

P_CS_PRECEDES (integer)

P_SEP_BY_SPACE (integer)

N_CS_PRECEDES (integer)

N_SEP_BY_SPACE (integer)

P_SIGN_POSN (integer)

N_SIGN_POSN (integer)

DECIMAL_POINT (integer)

RADIXCHAR (integer)

THOUSANDS_SEP (integer)

THOUSEP (integer)

GROUPING (integer)

YESEXPR (integer)

NOEXPR (integer)

YESSTR (integer)

NOSTR (integer)

CODESET (integer)

LOG_EMERG (integer)

LOG_ALERT (integer)

LOG_CRIT (integer)

LOG_ERR (integer)

LOG_WARNING (integer)

LOG_NOTICE (integer)

LOG_INFO (integer)

LOG_DEBUG (integer)

LOG_KERN (integer)

LOG_USER (integer)

LOG_MAIL (integer)

LOG_DAEMON (integer)

LOG_AUTH (integer)

LOG_SYSLOG (integer)

LOG_LPR (integer)

LOG_NEWS (integer)

LOG_UUCP (integer)

LOG_CRON (integer)

LOG_AUTHPRIV (integer)

LOG_LOCAL0 (integer)

LOG_LOCAL1 (integer)

LOG_LOCAL2 (integer)

LOG_LOCAL3 (integer)

LOG_LOCAL4 (integer)

LOG_LOCAL5 (integer)

LOG_LOCAL6 (integer)

LOG_LOCAL7 (integer)

LOG_PID (integer)

LOG_CONS (integer)

LOG_ODELAY (integer)

LOG_NDELAY (integer)

LOG_NOWAIT (integer)

LOG_PERROR (integer)

Zurück | Zum Anfang | Nach vorne
Core vordefinierte Konstanten | Nach oben | Liste von Ressourcentypen


Stream open options

Stream open options -- Affects the operation of stream factory functions

Description

One or more of these values can be combined using the OR operator.

IGNORE_PATH

This is the default option for streams; it requests that the include_path is not to be searched for the requested file.

USE_PATH

Requests that the include_path is to be searched for the requested file.

IGNORE_URL

Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.

IGNORE_URL_WIN

On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.

ENFORCE_SAFE_MODE

Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.

REPORT_ERRORS

If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.

STREAM_MUST_SEEK

This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Anmerkung: If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST

If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires.

The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream.

Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.

Zurück | Zum Anfang | Nach vorne
Streams Constants | Nach oben | FAQ: Frequently Asked Questions


php_register_url_stream_wrapper

(no version information, might be only in CVS)

php_register_url_stream_wrapper -- Registers a wrapper with the Streams API

Description

int php_register_url_stream_wrapper ( char * protocol, php_stream_wrapper * wrapper, TSRMLS_DC )

php_register_url_stream_wrapper() registers wrapper as the handler for the protocol specified by protocol.

Anmerkung: If you call this function from a loadable module, you *MUST* call php_unregister_url_stream_wrapper() in your module shutdown function, otherwise PHP will crash.

Zurück | Zum Anfang | Nach vorne
php_stream_passthru | Nach oben | php_unregister_url_stream_wrapper


php_stream_can_cast

(no version information, might be only in CVS)

php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket

Description

int php_stream_can_cast ( php_stream * stream, int castas)

This function is equivalent to calling php_stream_cast() with ret set to NULL and flags set to 0. It returns SUCCESS if the stream can be converted into the form requested, or FAILURE if the conversion cannot be performed.

Anmerkung: Although this function will not perform the conversion, some internal stream state *might* be changed by this call.

Anmerkung: You must explicitly compare the return value of this function with one of the constants, as described in php_stream_cast().

See also php_stream_cast() and php_stream_is().

Zurück | Zum Anfang | Nach vorne
php_stream_cast | Nach oben | php_stream_is_persistent


php_stream_cast

(no version information, might be only in CVS)

php_stream_cast -- Convert a stream into another form, such as a FILE* or socket

Description

int php_stream_cast ( php_stream * stream, int castas, void ** ret, int flags)

php_stream_cast() attempts to convert stream into a resource indicated by castas. If ret is NULL, the stream is queried to find out if such a conversion is possible, without actually performing the conversion (however, some internal stream state *might* be changed in this case). If flags is set to REPORT_ERRORS, an error message will be displayed is there is an error during conversion.

Anmerkung: This function returns SUCCESS for success or FAILURE for failure. Be warned that you must explicitly compare the return value with SUCCESS or FAILURE because of the underlying values of those constants. A simple boolean expression will not be interpreted as you intended.

Tabelle 43-1. Resource types for castas

Value | Meaning
PHP_STREAM_AS_STDIO | Requests an ANSI FILE* that represents the stream
PHP_STREAM_AS_FD | Requests a POSIX file descriptor that represents the stream
PHP_STREAM_AS_SOCKETD | Requests a network socket descriptor that represents the stream

In addition to the basic resource types above, the conversion process can be altered by using the following flags by using the OR operator to combine the resource type with one or more of the following values:

Tabelle 43-2. Resource types for castas

Value | Meaning
PHP_STREAM_CAST_TRY_HARD | Tries as hard as possible, at the expense of additional resources, to ensure that the conversion succeeds
PHP_STREAM_CAST_RELEASE | Informs the streams API that some other code (possibly a third party library) will be responsible for closing the underlying handle/resource. This causes the stream to be closed in such a way the underlying handle is preserved and returned in ret. If this function succeeds, stream should be considered closed and should no longer be used.

Anmerkung: If your system supports fopencookie() (systems using glibc 2 or later), the streams API will always be able to synthesize an ANSI FILE* pointer over any stream. While this is tremendously useful for passing any PHP stream to any third-party libraries, such behaviour is not portable. You are requested to consider the portability implications before distributing you extension. If the fopencookie synthesis is not desirable, you should query the stream to see if it naturally supports FILE* by using php_stream_is()

Anmerkung: If you ask a socket based stream for a FILE*, the streams API will use fdopen() to create it for you. Be warned that doing so may cause data that was buffered in the streams layer to be lost if you intermix streams API calls with ANSI stdio calls.

See also php_stream_is() and php_stream_can_cast().

Zurück | Zum Anfang | Nach vorne
php_stream_make_seekable | Nach oben | php_stream_can_cast


php_stream_close

(no version information, might be only in CVS)

php_stream_close -- Close a stream

Description

int php_stream_close ( php_stream * stream)

php_stream_close() safely closes stream and releases the resources associated with it. After stream has been closed, it's value is undefined and should not be used.

php_stream_close() returns 0 if the stream was closed or EOF to indicate an error. Regardless of the success of the call, stream is undefined and should not be used after a call to this function.

Zurück | Zum Anfang | Nach vorne
php_stream_gets | Nach oben | php_stream_flush


php_stream_closedir

(no version information, might be only in CVS)

php_stream_closedir -- Close a directory stream and release resources

Description

int php_stream_closedir ( php_stream * dirstream)

php_stream_closedir() closes a directory stream and releases resources associated with it. Returns 0 on success, but -1 on failure.

Zurück | Zum Anfang | Nach vorne
php_stream_rewinddir | Nach oben | Streams File API Reference


php_stream_copy_to_mem

(no version information, might be only in CVS)

php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer

Description

size_t php_stream_copy_to_mem ( php_stream * src, char ** buf, size_t maxlen, int persistent)

php_stream_copy_to_mem() allocates a buffer maxlen+1 bytes in length using pemalloc() (passing persistent). It then reads maxlen bytes from src and stores them in the allocated buffer.

The allocated buffer is returned in buf, and the number of bytes successfully read. You, the caller, are responsible for freeing the buffer by passing it and persistent to pefree().

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Anmerkung: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Zurück | Zum Anfang | Nach vorne
php_stream_copy_to_stream | Nach oben | php_stream_make_seekable


php_stream_copy_to_stream

(no version information, might be only in CVS)

php_stream_copy_to_stream -- Copy data from one stream to another

Description

size_t php_stream_copy_to_stream ( php_stream * src, php_stream * dest, size_t maxlen)

php_stream_copy_to_stream() attempts to read up to maxlen bytes of data from src and write them to dest, and returns the number of bytes that were successfully copied.

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Anmerkung: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Zurück | Zum Anfang | Nach vorne
php_stream_tell | Nach oben | php_stream_copy_to_mem


php_stream_eof

(no version information, might be only in CVS)

php_stream_eof -- Check for an end-of-file condition on a stream

Description

int php_stream_eof ( php_stream * stream)

php_stream_eof() checks for an end-of-file condition on stream.

php_stream_eof() returns the 1 to indicate EOF, 0 if there is no EOF and -1 to indicate an error.

Zurück | Zum Anfang | Nach vorne
php_stream_write | Nach oben | php_stream_getc


php_stream_filter_register_factory

(no version information, might be only in CVS)

php_stream_filter_register_factory -- Registers a filter factory with the Streams API

Description

int php_stream_filter_register_factory ( const char * filterpattern, php_stream_filter_factory * factory)

Use this function to register a filter factory with the name given by filterpattern. filterpattern can be either a normal string name (i.e. myfilter) or a global pattern (i.e. myfilterclass.*) to allow a single filter to perform different operations depending on the exact name of the filter invoked (i.e. myfilterclass.foo, myfilterclass.bar, etc...)

Anmerkung: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Zurück | Zum Anfang | Nach vorne
php_stream_open_wrapper_as_file | Nach oben | php_stream_filter_unregister_factory


php_stream_filter_unregister_factory

(no version information, might be only in CVS)

php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Description

int php_stream_filter_unregister_factory ( const char * filterpattern)

Deregisters the filterfactory specified by the filterpattern making it no longer available for use.

Anmerkung: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Zurück | Zum Anfang | Nach vorne
php_stream_filter_register_factory | Nach oben | Streams Dir API Reference


php_stream_flush

(no version information, might be only in CVS)

php_stream_flush -- Flush stream buffers to storage

Description

int php_stream_flush ( php_stream * stream)

php_stream_flush() causes any data held in write buffers in stream to be committed to the underlying storage.

php_stream_flush() returns 0 if the buffers were flushed, or if the buffers did not need to be flushed, but returns EOF to indicate an error.

Zurück | Zum Anfang | Nach vorne
php_stream_close | Nach oben | php_stream_seek


php_stream_fopen_from_file

(no version information, might be only in CVS)

php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream

Description

php_stream * php_stream_fopen_from_file ( FILE * file, char * mode)

php_stream_fopen_from_file() returns a stream based on the file. mode must be the same as the mode used to open file, otherwise strange errors may occur when trying to write when the mode of the stream is different from the mode on the file.

Zurück | Zum Anfang | Nach vorne
Streams File API Reference | Nach oben | php_stream_fopen_tmpfile


php_stream_fopen_temporary_file

(no version information, might be only in CVS)

php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Description

php_stream * php_stream_fopen_temporary_file ( const char * dir, const char * pfx, char ** opened)

php_stream_fopen_temporary_file() generates a temporary file name in the directory specified by dir and with a prefix of pfx. The generated file name is returns in the opened parameter, which you are responsible for cleaning up using efree(). A stream is opened on that generated filename in "w+b" mode. The file is NOT automatically deleted; you are responsible for unlinking or moving the file when you have finished with it.

Zurück | Zum Anfang | Nach vorne
php_stream_fopen_tmpfile | Nach oben | Streams Socket API Reference


php_stream_fopen_tmpfile

(no version information, might be only in CVS)

php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream

Description

php_stream * php_stream_fopen_tmpfile ( void )

php_stream_fopen_from_file() returns a stream based on a temporary file opened with a mode of "w+b". The temporary file will be deleted automatically when the stream is closed or the process terminates.

Zurück | Zum Anfang | Nach vorne
php_stream_fopen_from_file | Nach oben | php_stream_fopen_temporary_file


php_stream_getc

(no version information, might be only in CVS)

php_stream_getc -- Read a single byte from a stream

Description

int php_stream_getc ( php_stream * stream)

php_stream_getc() reads a single character from stream and returns it as an unsigned char cast as an int, or EOF if the end-of-file is reached, or an error occurred.

php_stream_getc() may block in the same way as php_stream_read() blocks.

The internal position of the stream is advanced by 1 if successful.

Zurück | Zum Anfang | Nach vorne
php_stream_eof | Nach oben | php_stream_gets


php_stream_gets

(no version information, might be only in CVS)

php_stream_gets -- Read a line of data from a stream into a buffer

Description

char * php_stream_gets ( php_stream * stream, char * buf, size_t maxlen)

php_stream_gets() reads up to count-1 bytes of data from stream and copies them into the buffer buf. Reading stops after an EOF or a newline. If a newline is read, it is stored in buf as part of the returned data. A NUL terminating character is stored as the last character in the buffer.

php_stream_read() returns buf when successful or NULL otherwise.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

This function may block in the same way as php_stream_read().

Zurück | Zum Anfang | Nach vorne
php_stream_getc | Nach oben | php_stream_close


php_stream_is

(no version information, might be only in CVS)

php_stream_is -- Determines if a stream is of a particular type

Description

int php_stream_is ( php_stream * stream, int istype)

php_stream_is() returns 1 if stream is of the type specified by istype, or 0 otherwise.

Tabelle 43-1. Values for istype

Value | Meaning
PHP_STREAM_IS_STDIO | The stream is implemented using the stdio implementation
PHP_STREAM_IS_SOCKET | The stream is implemented using the network socket implementation
PHP_STREAM_IS_USERSPACE | The stream is implemented using the userspace object implementation
PHP_STREAM_IS_MEMORY | The stream is implemented using the grow-on-demand memory stream implementation

Anmerkung: The PHP_STREAM_IS_XXX "constants" are actually defined as pointers to the underlying stream operations structure. If your extension (or some other extension) defines additional streams, it should also declare a PHP_STREAM_IS_XXX constant in it's header file that you can use as the basis of this comparison.

Anmerkung: This function is implemented as a simple (and fast) pointer comparison, and does not change the stream state in any way.

See also php_stream_cast() and php_stream_can_cast().

Zurück | Zum Anfang | Nach vorne
php_stream_is_persistent | Nach oben | php_stream_passthru


php_stream_is_persistent

(no version information, might be only in CVS)

php_stream_is_persistent -- Determines if a stream is a persistent stream

Description

int php_stream_is_persistent ( php_stream * stream)

php_stream_is_persistent() returns 1 if the stream is a persistent stream, 0 otherwise.

Zurück | Zum Anfang | Nach vorne
php_stream_can_cast | Nach oben | php_stream_is


php_stream_make_seekable

(no version information, might be only in CVS)

php_stream_make_seekable -- Convert a stream into a stream is seekable

Description

int php_stream_make_seekable ( php_stream * origstream, php_stream ** newstream, int flags)

php_stream_make_seekable() checks if origstream is seekable. If it is not, it will copy the data into a new temporary stream. If successful, newstream is always set to the stream that is valid to use, even if the original stream was seekable.

flags allows you to specify your preference for the seekable stream that is returned: use PHP_STREAM_NO_PREFERENCE to use the default seekable stream (which uses a dynamically expanding memory buffer, but switches to temporary file backed storage when the stream size becomes large), or use PHP_STREAM_PREFER_STDIO to use "regular" temporary file backed storage.

Tabelle 43-1. php_stream_make_seekable() return values

Value | Meaning
PHP_STREAM_UNCHANGED | Original stream was seekable anyway. newstream is set to the value of origstream.
PHP_STREAM_RELEASED | Original stream was not seekable and has been released. newstream is set to the new seekable stream. You should not access origstream anymore.
PHP_STREAM_FAILED | An error occurred while attempting conversion. newstream is set to NULL; origstream is still valid.
PHP_STREAM_CRITICAL | An error occurred while attempting conversion that has left origstream in an indeterminate state. newstream is set to NULL and it is highly recommended that you close origstream.

Anmerkung: If you need to seek and write to the stream, it does not make sense to use this function, because the stream it returns is not guaranteed to be bound to the same resource as the original stream.

Anmerkung: If you only need to seek forwards, there is no need to call this function, as the streams API will emulate forward seeks when the whence parameter is SEEK_CUR.

Anmerkung: If origstream is network based, this function will block until the whole contents have been downloaded.

Anmerkung: NEVER call this function with an origstream that is reference by a file pointer in a PHP script! This function may cause the underlying stream to be closed which could cause a crash when the script next accesses the file pointer!

Anmerkung: In many cases, this function can only succeed when origstream is a newly opened stream with no data buffered in the stream layer. For that reason, and because this function is complicated to use correctly, it is recommended that you use php_stream_open_wrapper() and pass in PHP_STREAM_MUST_SEEK in your options instead of calling this function directly.

Zurück | Zum Anfang | Nach vorne
php_stream_copy_to_mem | Nach oben | php_stream_cast


php_stream_open_wrapper

(no version information, might be only in CVS)

php_stream_open_wrapper -- Opens a stream on a file or URL

Description

php_stream * php_stream_open_wrapper ( char * path, char * mode, int options, char ** opened)

php_stream_open_wrapper() opens a stream on the file, URL or other wrapped resource specified by path. Depending on the value of mode, the stream may be opened for reading, writing, appending or combinations of those. See the table below for the different modes that can be used; in addition to the characters listed below, you may include the character 'b' either as the second or last character in the mode string. The presence of the 'b' character informs the relevant stream implementation to open the stream in a binary safe mode.

The 'b' character is ignored on all POSIX conforming systems which treat binary and text files in the same way. It is a good idea to specify the 'b' character whenever your stream is accessing data where the full 8 bits are important, so that your code will work when compiled on a system where the 'b' flag is important.

Any local files created by the streams API will have their initial permissions set according to the operating system defaults - under Unix based systems this means that the umask of the process will be used. Under Windows, the file will be owned by the creating process. Any remote files will be created according to the URL wrapper that was used to open the file, and the credentials supplied to the remote server.

r

Open text file for reading. The stream is positioned at the beginning of the file.

r+

Open text file for reading and writing. The stream is positioned at the beginning of the file.

w

Truncate the file to zero length or create text file for writing. The stream is positioned at the beginning of the file.

w+

Open text file for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.

a

Open for writing. The file is created if it does not exist. The stream is positioned at the end of the file.

a+

Open text file for reading and writing. The file is created if it does not exist. The stream is positioned at the end of the file.

options affects how the path/URL of the stream is interpreted, safe mode checks and actions taken if there is an error during opening of the stream. See Stream open options for more information about options.

If opened is not NULL, it will be set to a string containing the name of the actual file/resource that was opened. This is important when the options include USE_PATH, which causes the include_path to be searched for the file. You, the caller, are responsible for calling efree() on the filename returned in this parameter.

Anmerkung: If you specified STREAM_MUST_SEEK in options, the path returned in opened may not be the name of the actual stream that was returned to you. It will, however, be the name of the original resource from which the seekable stream was manufactured.

Zurück | Zum Anfang | Nach vorne
php_stream_stat | Nach oben | php_stream_read


php_stream_open_wrapper_as_file

(no version information, might be only in CVS)

php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*

Description

FILE * php_stream_open_wrapper_as_file ( char * path, char * mode, int options, char ** opened)

php_stream_open_wrapper_as_file() is exactly like php_stream_open_wrapper(), but converts the stream into an ANSI stdio FILE* and returns that instead of the stream. This is a convenient shortcut for extensions that pass FILE* to third-party libraries.

Zurück | Zum Anfang | Nach vorne
php_stream_open_wrapper_ex | Nach oben | php_stream_filter_register_factory


php_stream_open_wrapper_ex

(no version information, might be only in CVS)

php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context

Description

php_stream * php_stream_open_wrapper_ex ( char * path, char * mode, int options, char ** opened, php_stream_context * context)

php_stream_open_wrapper_ex() is exactly like php_stream_open_wrapper(), but allows you to specify a php_stream_context object using context. To find out more about stream contexts, see XXX

Zurück | Zum Anfang | Nach vorne
php_unregister_url_stream_wrapper | Nach oben | php_stream_open_wrapper_as_file


php_stream_opendir

(no version information, might be only in CVS)

php_stream_opendir -- Open a directory for file enumeration

Description

php_stream * php_stream_opendir ( char * path, php_stream_context * context)

php_stream_opendir() returns a stream that can be used to list the files that are contained in the directory specified by path. This function is functionally equivalent to POSIX opendir(). Although this function returns a php_stream object, it is not recommended to try to use the functions from the common API on these streams.

Zurück | Zum Anfang | Nach vorne
Streams Dir API Reference | Nach oben | php_stream_readdir


php_stream_passthru

(no version information, might be only in CVS)

php_stream_passthru -- Outputs all remaining data from a stream

Description

size_t php_stream_passthru ( php_stream * stream)

php_stream_passthru() outputs all remaining data from stream to the active output buffer and returns the number of bytes output. If buffering is disabled, the data is written straight to the output, which is the browser making the request in the case of PHP on a web server, or stdout for CLI based PHP. This function will use memory mapped files if possible to help improve performance.

Zurück | Zum Anfang | Nach vorne
php_stream_is | Nach oben | php_register_url_stream_wrapper


php_stream_read

(no version information, might be only in CVS)

php_stream_read -- Read a number of bytes from a stream into a buffer

Description

size_t php_stream_read ( php_stream * stream, char * buf, size_t count)

php_stream_read() reads up to count bytes of data from stream and copies them into the buffer buf.

php_stream_read() returns the number of bytes that were read successfully. There is no distinction between a failed read or an end-of-file condition - use php_stream_eof() to test for an EOF.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

If less than count bytes are available to be read, this call will block (or wait) until the required number are available, depending on the blocking status of the stream. By default, a stream is opened in blocking mode. When reading from regular files, the blocking mode will not usually make any difference: when the stream reaches the EOF php_stream_read() will return a value less than count, and 0 on subsequent reads.

Zurück | Zum Anfang | Nach vorne
php_stream_open_wrapper | Nach oben | php_stream_write


php_stream_readdir

(no version information, might be only in CVS)

php_stream_readdir -- Fetch the next directory entry from an opened dir

Description

php_stream_dirent * php_stream_readdir ( php_stream * dirstream, php_stream_dirent * ent)

php_stream_readdir() reads the next directory entry from dirstream and stores it into ent. If the function succeeds, the return value is ent. If the function fails, the return value is NULL. See php_stream_dirent for more details about the information returned for each directory entry.

Zurück | Zum Anfang | Nach vorne
php_stream_opendir | Nach oben | php_stream_rewinddir


php_stream_rewinddir

(no version information, might be only in CVS)

php_stream_rewinddir -- Rewind a directory stream to the first entry

Description

int php_stream_rewinddir ( php_stream * dirstream)

php_stream_rewinddir() rewinds a directory stream to the first entry. Returns 0 on success, but -1 on failure.

Zurück | Zum Anfang | Nach vorne
php_stream_readdir | Nach oben | php_stream_closedir


php_stream_seek

(no version information, might be only in CVS)

php_stream_seek -- Reposition a stream

Description

int php_stream_seek ( php_stream * stream, off_t offset, int whence)

php_stream_seek() repositions the internal position of stream. The new position is determined by adding the offset to the position indicated by whence. If whence is set to SEEK_SET, SEEK_CUR or SEEK_END the offset is relative to the start of the stream, the current position or the end of the stream, respectively.

php_stream_seek() returns 0 on success, but -1 if there was an error.

Anmerkung: Not all streams support seeking, although the streams API will emulate a seek if whence is set to SEEK_CUR and offset is positive, by calling php_stream_read() to read (and discard) offset bytes.

The emulation is only applied when the underlying stream implementation does not support seeking. If the stream is (for example) a file based stream that is wrapping a non-seekable pipe, the streams api will not apply emulation because the file based stream implements a seek operation; the seek will fail and an error result will be returned to the caller.

Zurück | Zum Anfang | Nach vorne
php_stream_flush | Nach oben | php_stream_tell


php_stream_sock_open_from_socket

(no version information, might be only in CVS)

php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream

Description

php_stream * php_stream_sock_open_from_socket ( int socket, int persistent)

php_stream_sock_open_from_socket() returns a stream based on the socket. persistent is a flag that controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Zurück | Zum Anfang | Nach vorne
Streams Socket API Reference | Nach oben | php_stream_sock_open_host


php_stream_sock_open_host

(no version information, might be only in CVS)

php_stream_sock_open_host -- Open a connection to a host and return a stream

Description

php_stream * php_stream_sock_open_host ( const char * host, unsigned short port, int socktype, struct timeval * timeout, int persistent)

php_stream_sock_open_host() establishes a connect to the specified host and port. socktype specifies the connection semantics that should apply to the connection. Values for socktype are system dependent, but will usually include (at a minimum) SOCK_STREAM for sequenced, reliable, two-way connection based streams (TCP), or SOCK_DGRAM for connectionless, unreliable messages of a fixed maximum length (UDP).

persistent is a flag the controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

If not NULL, timeout specifies a maximum time to allow for the connection to be made. If the connection attempt takes longer than the timeout value, the connection attempt is aborted and NULL is returned to indicate that the stream could not be opened.

Anmerkung: The timeout value does not include the time taken to perform a DNS lookup. The reason for this is because there is no portable way to implement a non-blocking DNS lookup.

The timeout only applies to the connection phase; if you need to set timeouts for subsequent read or write operations, you should use php_stream_sock_set_timeout() to configure the timeout duration for your stream once it has been opened.

The streams API places no restrictions on the values you use for socktype, but encourages you to consider the portability of values you choose before you release your extension.

Zurück | Zum Anfang | Nach vorne
php_stream_sock_open_from_socket | Nach oben | php_stream_sock_open_unix


php_stream_sock_open_unix

(no version information, might be only in CVS)

php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Description

php_stream * php_stream_sock_open_unix ( const char * path, int pathlen, int persistent, struct timeval * timeout)

php_stream_sock_open_unix() attempts to open the Unix domain socket specified by path. pathlen specifies the length of path. If timeout is not NULL, it specifies a timeout period for the connection attempt. persistent indicates if the stream should be opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Anmerkung: This function will not work under Windows, which does not implement Unix domain sockets. A possible exception to this rule is if your PHP binary was built using cygwin. You are encouraged to consider this aspect of the portability of your extension before it's release.

Anmerkung: This function treats path in a binary safe manner, suitable for use on systems with an abstract namespace (such as Linux), where the first character of path is a NUL character.

Zurück | Zum Anfang | Nach vorne
php_stream_sock_open_host | Nach oben | Streams Structures


php_stream_stat

(no version information, might be only in CVS)

php_stream_stat -- Gets the status for the underlying storage associated with a stream

Description

int php_stream_stat ( php_stream * stream, php_stream_statbuf * ssb)

php_stream_stat() examines the storage to which stream is bound, and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Zurück | Zum Anfang | Nach vorne
php_stream_stat_path | Nach oben | php_stream_open_wrapper


php_stream_stat_path

(no version information, might be only in CVS)

php_stream_stat_path -- Gets the status for a file or URL

Description

int php_stream_stat_path ( char * path, php_stream_statbuf * ssb)

php_stream_stat_path() examines the file or URL specified by path and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Zurück | Zum Anfang | Nach vorne
Streams Common API Reference | Nach oben | php_stream_stat


php_stream_tell

(no version information, might be only in CVS)

php_stream_tell -- Determine the position of a stream

Description

off_t php_stream_tell ( php_stream * stream)

php_stream_tell() returns the internal position of stream, relative to the start of the stream. If there is an error, -1 is returned.

Zurück | Zum Anfang | Nach vorne
php_stream_seek | Nach oben | php_stream_copy_to_stream


php_stream_write

(no version information, might be only in CVS)

php_stream_write -- Write a number of bytes from a buffer to a stream

Description

size_t php_stream_write ( php_stream * stream, const char * buf, size_t count)

php_stream_write() writes count bytes of data from buf into stream.

php_stream_write() returns the number of bytes that were written successfully. If there was an error, the number of bytes written will be less than count.

The internal position of the stream is advanced by the number of bytes that were written, so that subsequent writes will continue writing from that point.

Zurück | Zum Anfang | Nach vorne
php_stream_read | Nach oben | php_stream_eof


php_unregister_url_stream_wrapper

(no version information, might be only in CVS)

php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API

Description

int php_unregister_url_stream_wrapper ( char * protocol, TSRMLS_DC )

php_unregister_url_stream_wrapper() unregisters the wrapper associated with protocol.

Zurück | Zum Anfang | Nach vorne
php_register_url_stream_wrapper | Nach oben | php_stream_open_wrapper_ex


struct php_stream_dirent

struct php_stream_dirent -- Holds information about a single file during dir scanning

Description

php_stream_dirent
     char d_name[MAXPATHLEN]

d_name holds the name of the file, relative to the directory being scanned.

Zurück | Zum Anfang | Nach vorne
struct php_stream_statbuf | Nach oben | struct php_stream_ops


struct php_stream_filter

struct php_stream_filter -- Holds filter properties and pointer to operations

Description

struct _php_stream_filter {
            php_stream_filter_ops *fops;
            void *abstract; /* for use by filter implementation */
            php_stream_filter *next;
            php_stream_filter *prev;
            int is_persistent;

            /* link into stream and chain */
            php_stream_filter_chain *chain;

            /* buffered buckets */
            php_stream_bucket_brigade buffer;
        } php_stream_filter;

Zurück | Zum Anfang | Nach vorne
struct php_stream_wrapper_ops | Nach oben | struct php_stream_filter_ops


struct php_stream_filter_ops

struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Description

typedef struct _php_stream_filter_ops {
            php_stream_filter_status_t (*filter)(
                    php_stream *stream,
                    php_stream_filter *thisfilter,
                    php_stream_bucket_brigade *buckets_in,
                    php_stream_bucket_brigade *buckets_out,
                    size_t *bytes_consumed,
                    int flags
                    TSRMLS_DC);

            void (*dtor)(php_stream_filter *thisfilter TSRMLS_DC);

            const char *label;
} php_stream_filter_ops;

Zurück | Zum Anfang | Nach vorne
struct php_stream_filter | Nach oben | Streams Constants


struct php_stream_ops

struct php_stream_ops -- Holds member functions for a stream implementation

Description

typedef struct _php_stream_ops {
             /* all streams MUST implement these operations */
             size_t (*write)(php_stream *stream, const char *buf, size_t count TSRMLS_DC);
             size_t (*read)(php_stream *stream, char *buf, size_t count TSRMLS_DC);
             int (*close)(php_stream *stream, int close_handle TSRMLS_DC);
             int (*flush)(php_stream *stream TSRMLS_DC);

             const char *label; /* name describing this class of stream */

             /* these operations are optional, and may be set to NULL if the stream does not
              * support a particular operation */
            int (*seek)(php_stream *stream, off_t offset, int whence TSRMLS_DC);
            char *(*gets)(php_stream *stream, char *buf, size_t size TSRMLS_DC);
            int (*cast)(php_stream *stream, int castas, void **ret TSRMLS_DC);
            int (*stat)(php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC);
        } php_stream_ops;

Zurück | Zum Anfang | Nach vorne
struct php_stream_dirent | Nach oben | struct php_stream_wrapper


struct php_stream_statbuf

struct php_stream_statbuf -- Holds information about a file or URL

Description

php_stream_statbuf
     struct stat sb

sb is a regular, system defined, struct stat.

Zurück | Zum Anfang | Nach vorne
Streams Structures | Nach oben | struct php_stream_dirent


struct php_stream_wrapper

struct php_stream_wrapper -- Holds wrapper properties and pointer to operations

Description

struct _php_stream_wrapper  {
            php_stream_wrapper_ops *wops;   /* operations the wrapper can perform */
            void *abstract;                 /* context for the wrapper */
            int is_url;                     /* so that PG(allow_url_fopen) can be respected */

            /* support for wrappers to return (multiple) error messages to the stream opener */
            int err_count;
            char **err_stack;
        } php_stream_wrapper;

Zurück | Zum Anfang | Nach vorne
struct php_stream_ops | Nach oben | struct php_stream_wrapper_ops


struct php_stream_wrapper_ops

struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation

Description

typedef struct _php_stream_wrapper_ops {
            /* open/create a wrapped stream */
            php_stream *(*stream_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);
            /* close/destroy a wrapped stream */
            int (*stream_closer)(php_stream_wrapper *wrapper, php_stream *stream TSRMLS_DC);
            /* stat a wrapped stream */
            int (*stream_stat)(php_stream_wrapper *wrapper, php_stream *stream, php_stream_statbuf *ssb TSR$
            /* stat a URL */
            int (*url_stat)(php_stream_wrapper *wrapper, char *url, php_stream_statbuf *ssb TSRMLS_DC);
            /* open a "directory" stream */
            php_stream *(*dir_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);

            const char *label;

            /* Delete/Unlink a file */
            int (*unlink)(php_stream_wrapper *wrapper, char *url, int options, php_stream_context *context TSRMLS_DC);
        } php_stream_wrapper_ops;

Zurück | Zum Anfang | Nach vorne
struct php_stream_wrapper | Nach oben | struct php_stream_filter


Including Output in phpinfo

PHP Handbuch
Zurück Kapitel 36. Printing Information Nach vorne

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Beispiel 36-1 shows a source example and its output. To print the table footer, use php_info_print_table_end().

Beispiel 36-1. Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();

Zurück | Zum Anfang | Nach vorne
zend_error() | Nach oben | Execution Information


zend_error

PHP Handbuch
Zurück Kapitel 36. Printing Information Nach vorne

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.
zend_error(E_WARNING, "This function has been called with empty arguments");
Tabelle 36-1 shows a list of possible values (see Abbildung 36-1). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.

Tabelle 36-1. Zend's Predefined Error Messages.

Error | Description
E_ERROR | Signals an error and terminates execution of the script immediately .
E_WARNING | Signals a generic warning. Execution continues.
E_PARSE | Signals a parser error. Execution continues.
E_NOTICE | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR | Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR | Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING | Internal warning by the compiler; shouldn't be used by user-written modules.

Abbildung 36-1. Display of warning messages in the browser.

Zurück | Zum Anfang | Nach vorne
Printing Information | Nach oben | Including Output in phpinfo()


Creation of get_module

PHP Handbuch
Zurück Kapitel 31. Source Discussion Nach vorne

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod)
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Zurück | Zum Anfang | Nach vorne
Declaration of the Zend Module Block | Nach oben | Implementation of All Exported Functions